- ベストアンサー
機器とRS232Cクロスケーブルでのデータのやり取りについて
現在仕事で、組み込み系のシステム開発をしております。今回、私が作ったシステムではないのですが通信のテストを頼まれました。内容は RS232Cのクロスケーブルで よくわかりませんが何らかの機器を制御する機械と 接続。 FF 03 ~ FF で終わる105バイトの バイナリデータを送信すると機器が何らかの(LEDがついたり)反応がある。 とのことでした。 ~の部分は何でもいいようです。 VC++にて「WriteFile」を使い BOOL WriteFile( HANDLE hFile, // シリアルポートへのハンドラ LPCVOID lpBuffer,// 送信バッファへのポインタ DWORD nNumberOfBytesToWrite, // 送信データ数 LPDWORD lpNumberOfBytesWritten,// 実際に送信したデータ数 LPOVERLAPPED lpOverlapped // 非同期I/O動作の場合のオーバーラップ構造体へのポインタ ); この関数の lpBuffer に "FF 03 00 00 00 00 00 ~ 00 00 00 00 FF" という文字列を入れて送信しました。 テストでパソコン同士を232Cクロスケーブルでつなぎ 送信したろころたしかに "FF 03 00 00 00 00 00 ~ 00 00 00 00 FF" が送られてきました。 しかしこれを機器に送信しても何の反応もありません。??? "FF030000000000 ~ 00000000FF" これもダメでした。 この場合"FF"をバイナリの1バイトと認識していないのでしょうか? クロスケーブルやポートに間違いはありません。 送信データ自体に問題があるような、、、。 何か私自身大きな勘違いをしているようなきはするのですが、具体的にどうなおしたらいいのかわかりません。どなたかおわかりになる方おいででしたらご教授お願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (6)
- terra5
- ベストアンサー率34% (574/1662)
- g_vikke
- ベストアンサー率16% (15/90)
- Pesuko
- ベストアンサー率30% (2017/6702)
- g_vikke
- ベストアンサー率16% (15/90)
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
- Aruku-20030515
- ベストアンサー率23% (362/1544)
お礼
ありがとうございました。 結局ハードに問題があったみたいです。 送信データは "\xFF\x03\x00\x00\x00\x00\x00 ~ \x00\x00\x00\x00\xFF" を採用させていただきました。 通信テストは結局あいまいにおわってしまいましたが、とても勉強になりました。 まことに理想的な回答で助かりました。 お休みのところありがとうございました。