ドライバの作成と複数のモジュールからなるアプリ開発およびネットワークプログラミングについて解説する
これまでこの連載では、タスクやハンドラといった組み込み分野の基礎技術を取り上げてきました。
今回は連載のまとめとして、T-Engineの大きな強みの1つであるデバイスドライバ(以下ドライバ)を取り上げます。デジタル温度計のプログラムを通して、T-Engineでのドライバ開発と、ドライバを利用したアプリケーション開発をマスターしましょう。
この連載の想定環境であるTeaboardのボード上には、温度センサが実装されています。これを利用して現在の温度を測定し、7セグメントLEDに表示します。Teaboardにはイーサネットポートも付いているので、これを活用して「Web配信機能付きデジタル温度計」にしてみましょう。つまり、Teaboardをネットワークに接続しておけば、別の場所にあるPCからWebブラウザでTeaboardにアクセスすることで、現在の温度を表示させることができます。
今回使用するデバイスは、図1のとおりです。
次にソフト設計です。図2のように、Teaboard側は次の5個のモジュールで構成しました。
前回までは直接7セグメントLEDを制御していました。今回はアプリケーションから独立したLEDドライバを作成し、アプリケーションからドライバにライトする(書き込む)ことでLED表示を行います。
同じく温度センサのドライバも作成して、アプリケーションからドライバをリードする(読み出す)ことで温度を読み出せるようにします。
アプリケーション本体は、前回取り上げたマルチタスクの技法を用いて、3つのタスクで構成します。
今回はこの3つのタスクをプロセスとして1つにまとめて、安全なアプリケーションを構築します。
ネットワークについては、Teaboardに標準で付属しているTCP/IPマネージャというミドルウェアを使います。
LANドライバもTeaboardに標準で付属しています。TCP/IPマネージャ内部から呼び出されるので、アプリケーションから直接呼ぶことは通常ありません。
このように、バイナリレベルでモジュール化できるところがT-Engineの大きな特徴です。各モジュールは完全に独立して開発し、個別にロードやデバッグ、変更ができます。作成したモジュールを別の開発案件に再利用することも簡単です。
Copyright © ITmedia, Inc. All Rights Reserved.