ACC4LVの深耕 その@

ACC4LVを深耕するため、オリジナルコードを書いてみることにしました。

まずシナリオですが、手元にあるRTC(I2C)とSDカードを使い、次のようなアプリケーションを検討しました。

実際に作成したコードは以下の通りです。
ここまで来るのに結構時間が掛かりました。使用できる関数はACC4LVで提供されるものだけにしているのですが思わぬエラーで躓いてしまいます。
デバッグ方法の確率が必要です。これにはそれなりの時間が必要ですね。
RTCは手元にDS3231しか有りません。ACC4LVで提供されているDS1307とはソース互換があるはずですが、さてどうなるか。


Exampleは動きました。時刻セットが出来ていませんが。csはpin4に変更しました。

時刻プリセット出来るように修正しました。動きました。

毎回SDファイルのOpen/Closeをするのが気になり、Loopの外に出したのですが、そうすると期待通りに動かないことが判りました。
ファイルの作成は出来ますが、何も書き込まれませんでした。このことから、関数がパックしてある意味が想像出来ます。

シリアル通信を追加してみました。


この場合、文字列はちゃんとHostPCにも返ってきます。

これができたら、双方向通信が出来るようにレタッチしてみたいところです。
また、何らかの実際のデータをロギングするように書き換えたいところです。

一つ判ったこととして、制御コマンドをU8_1バイトで送信するという考えは要検討です。ASCIICharにコマンド割り付けしてうまくゆかないか検討しました。とりあえず、TimeStampの再設定を実現したいです。ArduinoIDEでは実現出来ています。

時刻の再設定をPC側から出るように検討しました。PC側の時刻を再フォーマットして送信します。要求コマンドを“R”としボタンを押したら、Rコマンドと更新データを送ることにします。
これに伴ってArduino側のファームコードも修正します。

普段はタイムスタンプとデータをSDカードに書き込むと共にシリアル出力に出力します。
シリアルバッファに文字列が書き込まれたらその処理を実行します。

実際に時刻を更新することが出来る事は確認出来ました。しかし、ちょっと反応が良くありません。もう少し検討は必要ですね。


幾つか確認出来た不具合(1.0.0.21)

C:\Users\<user>\AppData\Local\Temp\xx.tmp\temp\temp.ino: In function 'void setup()':
temp:188: error: 'Default' was not declared in this scope
                 else if( Node973Out== Default)
exit status 1

単純にデフォルトをエレメントに連結すれば通ります。発生し得ない値と共にそのケースを“default”にすれば良いようです。
ACC4LVのコンソールを見ているだけではこのエラー解析は困難です。
パスを辿るとtemp.inoが見つかります。Arduino-Cに変換されたコードを読むことは出来ます。LVダイアログと見比べてどこで発生しているのか辺りを付けてゆくとヒントが見つかるかと思います。


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。