パケット通信
C言語初心者です。
H8が乗っているコントローラとシリアル(RS232C)で繋がっている機器間で、
パケットを構成し通信したいのですが、そのパケットの快適な構成方法がわかりません。(コントローラ側のプログラムを作っています)
イメージとしては構造体を使用すると快適なのかな?と思うのですが、
よくわかりません。
機器側のパケットは仕様があり、
スタートコード(2)-データ長(1)-データ長チェックサム(1)-データ(n)-データチェックサム(1)
のような構成になっています。
( )はバイト数です。
バイナリデータでの通信です。
データの先頭にコマンドコードがあり、機器の制御をするような感じです。
例えばですが、
typedef struct
{
unsigned char start[2];----->スタートコード(固定)
unsigned char len;---------->データ長(変動)
unsigned char len_cs;------->データ長チェックサム(計算)
unsigned char data[SIZE];--->データの中身(変動)
unsigned char data_cs;------>データチェックサム(計算)
} packet;
というようなやり方で、固定データや変動するデータを構造体として
使用することはできるのでしょうか?
unsigned char cmd[] = {0x00,0x00,・・・・0x00}
のように強引にスタートコードからデータ、チェックサムを
配列で並べて送信すると機器はちゃんと動作します。
(チェックサムの計算も電卓で計算してから書いてます)
ただ、コマンドごとにこんなパケットを構成しないといけない
のは手間ですし、何かブサイクに思えます。
快適なパケット作成の方法があればぜひ教えて下さい。
よろしくお願いします。