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

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

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu ソフトウェア開発ツール finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!