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

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

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Tag

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!