• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2013年08月25日

Learning Table

Learning Table

先週、ブログで報告したLearning Tableの表示問題の続き。

前回、IAMは0.000のままで、FLKCテーブルの一部に変な値が表示されるという不具合があったわけだが、この問題を解決するためにJAVAのソースから調べてみた。



Learning Table関連のソースを見てみると、ロガーパラメーターを指定している記述を発見。

    E1("E1"),    // IAM 16 bit
    E31("E31"), // IAM 32 bit
    E12("E12"), // Fine Learning Knock Correction*
    E41("E41"), // Fine Learning Knock Correction (4-byte)*
    E13("E13"), // AF Learning 1A 16 bit
    E14("E14"), // AF Learning 1B 16 bit
    E15("E15"), // AF Learning 1C 16 bit
    E16("E16"), // AF Learning 1D 16 bit
    E44("E44"), // AF Learning 1A 32 bit
    E45("E45"), // AF Learning 1B 32 bit
    E46("E46"), // AF Learning 1C 32 bit
    E47("E47"), // AF Learning 1D 32 bit
    E62("E62"), // AF Learning 2A 32 bit
    E63("E63"), // AF Learning 2B 32 bit
    E64("E64"), // AF Learning 2C 32 bit
    E65("E65"), // AF Learning 2D 32 bit
    P2("P2"),    // ECT
    P11("P11"), // IAT
    P17("P17"), // Battery Volts
    P24("P24"), // ATM
    P66("P66"), // AF Learning 3
    P115("P115"),   // Learned Throttle Closed Voltage
    P118("P118"),   // AF Learning 4
    P153("P153"),   // Whole Learning value in timing
    E173("E173");   // Fine Learning Knock Correction Table Start (4-byte)*


IAMは、てっきり基本パラメーターのP90を見ているものだと思っていたら、E31(4バイト)の方を参照していることが判明した。
確認のために作成した定義ファイルを見てみると、なんとアドレスが間違っているではないか!
先週ダッシュボード上で見た時は問題ないと思っていたが、たぶん1バイトの方を見ていたようだ。
とりあえずコピーミスなのでさっさと修正した。


次はFLKCの表示問題。
上記のように、FLKCの値はE173を参照していることになる。
しかし、E173なんてあったけ?それとも、定義を作るときに間違って削除しまったのか?
そんなことを考えながら、配布されている定義を確認してみたが、やはりE173というパラメーターはなかった。
もしかすると、これは例外的なモデル用かもしれないと思い、今度は別なソースファイルを見ていくと、次のような記述が見つかった。

* Define the start address of the FLKC table in RAM.
* Also isolate the FLKC extended parameter to use the data converter
* when building the FLKC table queries.
*/
    private final void setFlkcTableAddress(
    ParameterRow parameterRow,
    Parameter parameterId) {

    switch (parameterId) {
    case E1:
    if (flkcAddr == 0) {
    flkcAddr = getParameterAddr(parameterRow) + 0x02;
    }
    break;
    case E31:
    if (flkcAddr == 0) {
    flkcAddr = getParameterAddr(parameterRow) + 0x14;
    }

IAMのアドレスにプラス14したアドレスからFLKCの値を読むという構文だ。
つまり、IAMのアドレスが合っていれば、FLKCは正しく表示されるということになる。

以上のように、表示の不具合は、IAMのアドレス間違いが原因ということでした(苦笑)

ブログ一覧 | ECU関連 | クルマ
Posted at 2013/08/25 15:38:59

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

秋ですね~
彼ら快さん

続 旧→新 〜世代交代〜
まー.さんさん

ガチで泣きの1回!!お願いします( ...
hajikun2002さん

気になる車・・・(^^)698
よっさん63さん

先週の釣果🎣
風雅堂さん

今日の音楽 200918
kazoo zzさん

この記事へのコメント

2013年8月25日 16:02
難しい (○ ̄ ~  ̄○;)ウーン・・・
やっぱ私には解析は手が出せないようです。
コメントへの返答
2013年8月25日 18:10
今回は解析とは言えないです(^_^;)

いやはや恥ずかしい失敗ですね。
2013年8月25日 17:15
不具合をJAVAのソースから調べるなんてところは流石っす!
私なんかだととりあえずアドレス総チェックてとこですw
コメントへの返答
2013年8月25日 18:13
コピーミスがなければソースなんか見なかったんですけどね(^_^;)

でも、ちょっと勉強になりましたw
2013年8月25日 19:38
こんばんわ~。

これはIAMを見るときはLeaningViewとしてはE173を推奨するという
事なんでしょうかね~?

あと、0.5.6 LTV3 のFORUMにもE173に関する記述がありました。
まさにWildSpeedさんが調べた内容かもですね。
http://www.romraider.com/forum/viewtopic.php?f=14&t=9745
コメントへの返答
2013年8月25日 21:19
こんばんわ~

IAMは、E173ではなく、やはりE31になります。
E173は、FLKCの読み出しアドレスを指定しているパラメーターですが、一部のモデル用のようです。

今回は、ぴかすけさんのビルドバージョンのブログからヒントを得たようなもんですよ(^_^;)

2013年8月26日 12:32
う~ん、難しいをとおり越して無理(^_^;)

プログラムは地道な作業の賜物なんですね。

スマホじゃないですが、ラクラクecuって、
無いんでしょうか?(;´д`)
コメントへの返答
2013年8月26日 12:44
私の場合、仕事の延長みたいな感じなんですよねぇ(^_^;)

ラクラクECUとなると、HKSやPROVAあたりですかね。

おすすめアイテム

プロフィール

インプレッサ WRX STI spec Cに乗っています。 ECUチューンや解析をメインにやっています。
みんカラ新規会員登録

ユーザー内検索

<< 2020/9 >>

  12345
6789101112
13141516171819
20212223242526
27282930   

リンク・クリップ

RomRaider 
カテゴリ:ECU関連
2008/03/23 18:33:56
 
OpenECU 
カテゴリ:ECU関連
2007/12/29 23:44:52
 

愛車一覧

スバル インプレッサ WRX STI スバル インプレッサ WRX STI
ECUチューニングをメインにやっています。
スバル レガシィB4 スバル レガシィB4
OpenECUでECUチューンニングをやっていました。
ヘルプ利用規約サイトマップ
©2020 Carview Corporation All Rights Reserved.