文字列の送受信関数平成20年7月26日 トラ技BIOSのUSB通信関数トラ技BIOSには以下の4つのUSB送受信関数が用意されています ・void trg_puts(const char *src) ・char *trg_getc() ・void trg_senddata(unsigned char *src,unsigned short len) ・void trg_recvdata(unsigned char *src,unsigned short len) このページでは、これらの関数の使いかたと注意事項を説明します。 文字列送信関数の説明trg_putsはキャラクタベースの送受信関数です。 trg_putsは、'\0'で終端された文字列を送信します。
この関数ではバイナリデータを扱えません。その理由は @ 改行コードが変換される からです。
trg_putsはトラ技BIOSの中でusbSendStr関数を呼び出します。usbSendStr関数はヌル文字を見つけるまでループしながらusbSendChar関数を呼び出します。usbSendChar関数は送信したい文字が'\n'である場合、再帰呼び出しを用いて'\r'を先に送信します。 つまり、"Hello\n"という文字列は、USBの上では"Hello\r\n"となって送信されます。
文字受信関数の説明trg_getcはキャラクタベースの1文字受信関数です。 C言語のgetc()に相当する働きをします。 この関数もバイナリデータを扱えません。その理由は @ 改行コードが変換される ('\r'を'\n'に変換する) からです。 trg_getc()を呼び出すと、 trg_getc → usbGetChar → svUSB_byteread という順序で最終的にはUSBの受信バッファから1文字取り出されます。 usbGetCharという関数は上記の@〜Cの処理を行うので、バイナリデータの受信ができません。
|
Copyright(C) 2008 NAITOU Ryuji. All rights reserved. 無断転載を禁ず