2014年1月2日木曜日

XBeeAPIから送られてくるパケットを受信する

追記:上記関数内return(1);の前に"sRcvCount = 0;"を追加してください

この関数は
引数1:受信したパケット配列へのポインタ
引数2:受信したパケットのデータ数
引数3:チェックサムが有効か否か
戻り値:パケット受信が完了したか
という機能を持っています
他に定数"XBeeAPI_RCV_BUFF_SIZE"という整数が必要で
さらに下位関数として
int16_t Read(void);
が必要です
Read関数はシリアル受信バッファが空の場合には負の値を返すことにより、その旨を知らせます


この関数ではパケットの中身には関知しません
上位の関数で適切に処理する必要があります

また想定されるよりも大きなデータを受信することも想定していません
バッファオーバーフローのような危険性が有ることも理解しておく必要があります

この関数はデータ受信1バイトごとに呼び出すようなことは想定しておらず、少なくとも数十バイトから数百バイトの受信バッファが下位に存在することを要求しています
場合によっては数キロバイトのバッファが必要になるかもしれません
さらにこの関数自体で数百から数キロバイトのバッファを持つため、非常に冗長な関数となっています

0 件のコメント:

コメントを投稿