queryで先頭数バ​イトを読み込んでから​残りを読み込む方法

조회 수: 2 (최근 30일)
Daigo
Daigo 2019년 5월 7일
댓글: Yoshio 2019년 5월 8일
機器から出力されるフォーマットにLFが出力されないためqueryで読み込むとタイムアウトまで待つ必要があります。
機器メーカーによると出力の先頭にデータ長が出力されるため、先頭数バイトを読み込み、データ長を確認して
そのデータ長だけ読み込めば良いとのことです。
上記を実現する方法を教えてください。

채택된 답변

Yoshio
Yoshio 2019년 5월 7일
直接の回答にはならないかもしれませんし、勘違いかも知れませんが
ですので、EOSModeを{none}に設定すると、End-Of-String (EOS) が無視されるので、データを全て読み込めるかと思います。
なお、プロトコルや機器メーカーのAPI、データの定義の記載がないので、
「出力の先頭にデータ長が出力されるため、先頭数バイトを読み込み、データ長を確認して」
について、このままでは回答が難しいです。機器メーカーの説明書に情報がありませんか?
  댓글 수: 2
Daigo
Daigo 2019년 5월 8일
回答ありがとうございます
下記のようにすれば解決することが判明致しました。
s = serial('COM1');
fopen(s)
len = fread(s, 1);
dat = fread(s, len);
fclose(s)
Yoshio
Yoshio 2019년 5월 8일
ご報告ありがとうございます。
解決できて良かったです。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 ソフトウェア開発ツール에 대해 자세히 알아보기

태그

제품


릴리스

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!