追加情報
次のコードでは、シリアルポートから "hello"のみが送信されます。 これは、 StringLengthが文字列内でNULL文字を検出し、この文字を文字列の末尾として解釈するためです。
char send_data[15] = "hello\00world"
stringsize = StringLength (send_data); // stringsizeには5が代入される
ComWrt (comport, send_data, stringsize); // "hello"だけがシリアルポートに送信される
ヌル文字をシリアル通信データの終端文字として送信するためには,ヌル文字を追加する必要があります。ヌル文字は文字列に存在するので,送信する文字数をインクリメントします。
char send_data[15] = "hello";
stringsize = StringLength (send_data)++; // stringsizeには6が代入される
ComWrt (comport, send_data, stringsize); // "hello/0"がシリアルポートに送信される
LabWindows/CVIインストールディレクトリの
samples\rs232にあるサンプルプログラムのserial.prjで,
SendAscii関数と
ReadCallBackコールバック関数を添付ファイルと入れ替えることで,ヌル文字を終端文字として使用できます。ユーザが終端文字ももしくは終端バイトに"None"を選択した場合,ヌル文字の終端が使用されます。