2011/04/19

UDPデータ (Rev1.7ドラフト)

頭が痛いのでMacは触らずに仕様だけ考えるモード。
半分以上業務連絡的なポスト。


【GPS】
マップマッチングロジックを考えてたら、
やはり衛星のロストとか捕捉数が必要な気がしてきた。

捕捉中かどうかは、RMCメッセージでわかるんだろうけど、
これってRS-232Cでくるから、実際はメッセージはバラバラにくるんだよね?

まぁGPSのActive/Void、捕捉数は最後の該当メッセージのを貰えばいいのか。


捕捉数4以下の、座標が著しく跳ねたデータを除外するとか、
まぁある程度フィルタなり平均なりすればいいんだけど。

厳密にやるなら、衛星の位置を全部もらって、
天頂方向にしかない場合は、GPSのメリット値を下げないとダメだけど、
そこまでやっても、センサーによって色々違うしね。


【点火タイミング】
点火タイミングも撮っておくと、リタードが入ったときにわかるなとか。
夏専用だけど。

ODBのプロトコルみてると、
01 0e -> xx     Ignition timing advance Cyl #1 deg X*0.5-64

1バイトあればいいっぽいか。1番シリンダとかでてるけど、
別に気筒ごとに測ってるわけではないのねこれ。


【2次排気エアポンプ作動】
S2000は排ガス規制を誤魔化すに対応するために、
排気をもう1回吸気に持ってきてる。
これはコールドスタート時の1分だけなんだけど、
ECUから線出てたよーな気がするんですが。
手元に配線図ないんでちと不明。




そろそろハード側のI/Oが足りなくなってきそうですが。
そこはきっとエロい人が、並列ARMさんとかでなんとかしてくれそうな気がした。
==========================================================
- - - - - - 
Byte[8]            ID                     //ただし[7]は\0固定

- - - - - - 
unsigned short  エンジン回転数   //LSB=1rpm
unsigned short  車速           //LSB=0.01km/h  
Byte               スロットル開度    //LSB=1%    
Byte               燃料                 //LSB=1%  
Byte               空燃比              //LSB=0.1%  
Byte               電圧                 //LSB=0.1V
- - - - - - 
unsigned short  吸気圧              //LSB=0.1Kpa  (絶対圧)
unsigned short  吸気温度     //LSB=0.1℃
unsigned short  水温        //LSB=0.1℃
unsigned short  排気温度     //LSB=1℃
- - - - - - 
unsigned short  室温        //LSB=0.1℃
unsigned short  外気温       //LSB=0.1℃
unsigned short  O2センサー        //LSB=0.1V
unsigned short  方位        //LSB=0.1 磁北=0 東=90
- - - - - - 
Byte               緯度DDD                 //NMEA Format
Byte               緯度MM                   //NMEA Format
short              緯度.MMMM             //【N】MSB=0/【S】MSB=1
Byte               経度DD                   //NMEA Format
Byte               経度MM                  //NMEA Format
short              経度MMMM             //【E】MSB=0/【W】MSB=1
- - - - - - 
unsigned int     車速パルス       //LSB=1パルス(64パルス計算) 
- - - - - - 
unsigned short  タイヤ空気圧(FR)       //LSB=0.1Kgm/cm2
unsigned short  タイヤ空気圧(FL)       //LSB=0.1Kgm/cm2
unsigned short  タイヤ空気圧(RR)      //LSB=0.1Kgm/cm2
unsigned short  タイヤ空気圧(RL)      //LSB=0.1Kgm/cm2
- - - - - - 
Byte               タイヤ空気温度(FR)       //LSB=1℃
Byte               タイヤ空気温度(FL)       //LSB=1℃
Byte               タイヤ空気温度(RR)       //LSB=1℃
Byte               タイヤ空気温度(RL)       //LSB=1℃
Byte               TPMS電池残量(FR)       //0(空)-3(満)
Byte               TPMS電池残量(FL)       //0(空)-3(満)
Byte               TPMS電池残量(RR)       //0(空)-3(満)
Byte               TPMS電池残量(RL)       //0(空)-3(満)
- - - - - - 
Byte               ステータスBit        ///+0(LSB)  ライト
                                     ///+1         GPS捕捉
                                     ///+2         後退信号
                                     ///+3         サイドブレーキ 
                                     ///+4         可変バルブタイミング
Byte               GPSステータス     ///1=Active/0=Void     <<New

Byte               GPS衛星捕捉数   ///0-32(が上限だっけ)    <<New

Byte       2次排気エア作動  ///1=作動中,0=未作動    <<New
Byte       Reserved
Byte       Reserved1
Byte       Reserved2
Byte       Reserved3
- - - - - - 
unsigned short  Reserved 燃圧     //LSB=1Kpa  (絶対圧) (取得不可)
unsigned short Reserved 油圧     //LSB=1Kpa  (絶対圧) (取得不可)
unsigned short  Reserved 油温  //LSB=0.1℃  (取得不可)
=========================================================

Objective-Cに合わせて、ちょっとReservedを入れておこう。
2バイトでないと、怒られるしね。


某EDFC的なアレの仕様も入れておこうと思ったけど、
まず可動させないとねー。

TPMSは嫌がらせに残しておく。

よし、日付も変わって、頭痛が激痛に変わったので、寝ましょう。お休みなさいませ。






0 件のコメント:

コメントを投稿