よくあるご質問 | コンテック FAQ

  • 文字サイズ変更
  • S
  • M
  • L
  • No : 682
  • 公開日時 : 2007/05/10 18:20
  • 更新日時 : 2024/10/23 11:01
  • 印刷

デリミタで[CR+LF]を設定し、送受信したい。

API-SIO(98/PC)を使用しています。デリミタで[CR+LF]を設定し、送受信したい。

カテゴリー : 

回答

対象製品型式: API-SIO(98/PC)
 
関連情報:
CR+LF デリミタを指定して送る方法ですが
SIO のプログラムでは ヘルプファイルにある関数リファレンスをみていただけると
判ると思いますが 通常 1バイトのデリミタ指定しかできません。
デリミタモードで<CR>を送受信するときと <LF>を送受信するときは 以下のようになります。

<LF> のとき SIO_DELIMITER  |  0x0a
<CR> のとき SIO_DELIMITER  |  0x0d

<CR>+<LF>のときは、2バイトコードになりますので、以下のように
ソースプログラムを変更すれば、動作させることが可能です。

補足:
SIO_DELIMITER は、0x0100 と使用する為、上記 <LF> 設定では、
SIO_DELIMITER には、0x010a が セットされることになります。
0x0100 については、ヘルプ(API-SIO HELP)に記載あります。

1.デリミタモードで送受信するとき
---------------------------------------------------------------------
<送信時>
まず、データに<CR>を含めて送信データを作成します。


そのデータをデリミタモード<LF>で送信します。
そうすることで、デリミタ<CR><LF>で送ることができます。
---------------------------------------------------------------------
<受信時>
まず、受信データをデリミタモード<LF>で受信します。
すると、下図のような受信データが流れてきます。


デリミタ<CR><LF>の場合ですと、データ+<CR>が流れてきます。
その後、文字の一番後ろの<CR>コードをとれば、実データが検出できます。
---------------------------------------------------------------------

2.固定長モードで送受信するとき
-------------------------------------------------------------
<送信時>
データに<CR><LF>を含めて送信データを作成します。


この状態で デリミタ無しの固定長モード(SIO_LENGTH)で、送信することで
デリミタ<CR><LF>で送ることができます。
----------------------------------------------------------------------
<受信時>

受信データを固定長モード(SIO_LENGTH)で受信します。


この状態から、最後から2番目と最後の2コードが<CR><LF>なのかを判定して
それを取り除けば、実データが検出できます。
----------------------------------------------------------------------
 

アンケート:この情報は役に立ちましたか?

ご意見・ご感想をお寄せください ここからの技術的なお問合せにはご回答いたしかねます。技術的問い合わせにつきましては、Webフォームよりお願いいたします。
問合せ先 ⇒ https://www.contec.com/jp/support/technical-support/