2012年5月31日木曜日

グラフツクール

OBDのPID3、FuelSystemStatusの値が変な値で来ると、
ハードのエライ人を問い詰めていたら、
ビットで来ることを理解してなかったでござるの巻

軽く心のなかで2時間くらい土下座しつつ、
ソフト屋さんとしては、複合状態でもないのに、
ビットでくるとかはあんまり思わなかったりする。
というその場しのぎの言い訳をしつつ、修正。

ついでに放置していた、構造体を整理。
排気音とかO2センサーとか使わなさそうなのは削除。

UDP確認ツールを横画面に変更。


あとは、時系列で見られるように履歴のグラフ化を着手。
すげぇ面倒くさい。

WifiデータはCAN同様、必ず一定時間で来るわけではないので、
タイマーでリサンプリングして、
構造体データの配列に変換。

でもそのままだと描画クラスまで持って行けない。
(C言語は配列をそのまま渡せない)

NSMutableArray渡すのも、
メンバアクセスにオーバーヘッドがかかりすぎて好きじゃない。
折角固定配列で組んでるのに、IOメソッド通すとか意味が不明すぎる。

メインループで配列を持って、Viewクラスから見られるように、
小細工をする。成功。なるほどこういうもんか。理解。

とりあえず1Hzで600点のデータをバッファリング。10分間。
それをレンダリング。

描画に当然負荷がかかるだろうと考えて、
画面のContextを部分コピーとか、
色々考えてたんだけど、普通に1Hzで全データ更新しても、
それほど重くない。

CGImageRefでCurrentContect書いていくのは、
それほど負荷じゃないのか。なるほど。理解。

とりあえずデータ管理側は組み終わり、
仮画面に点描だけしてみる。さくさく。


最近仕事でも遊びでもグラフしか組んでない。
グラフ面倒だから嫌いなんだけどな。

0 件のコメント:

コメントを投稿