fwrite (serial)
(削除予定) バイナリ データをデバイスに書き込む
このオブジェクト関数 serial は将来のリリースで削除される予定です。代わりにオブジェクト関数 serialport を使用してください。コードの更新の詳細については、バージョン履歴を参照してください。
構文
fwrite(obj,A)
fwrite(obj,A,'precision')
fwrite(obj,A,'mode')
fwrite(obj,A,'precision','mode')
説明
fwrite(obj,A) はバイナリ データ A をシリアル ポート オブジェクト obj に接続しているデバイスに書き込みます。
fwrite(obj,A,' は precision')precision で指定された精度でバイナリ データを書き込みます。
precision は、各値の書き込むバイト数を制御し、それらのバイトを整数、浮動小数点、文字値のいずれかとして解釈します。precision が指定されていない場合、uchar (符号なし 8 ビット文字) が使用されます。precision でサポートされている値は、ヒントにリストされています。
fwrite(obj,A,' は、mode')mode で指定されたコマンド ライン アクセスを使用してバイナリ データを書き込みます。mode が sync の場合、A は同期を取りながら書き込まれ、コマンド ラインは停止します。mode が async の場合、A は非同期で書き込まれ、コマンド ラインは停止しません。mode が指定されていない場合、書き込み操作は同期を取りながら行われます。
fwrite(obj,A,' は、precision','mode')precision で指定される精度と mode で指定されるコマンド ライン アクセスを使用してバイナリ データを書き込みます。
ヒント
データをデバイスに書き込むには、関数 を使用してデバイスを fopenobj に接続しなければなりません。接続されたシリアル ポート オブジェクトでは、Status プロパティの値が open になります。obj がデバイスに接続されていないときに、書き込み操作を実行するとエラーが返されます。
ValuesSent プロパティ値は関数 fwrite が実行される度に、書き込まれた値の数ずつ増加します。
出力バッファーが書き込まれるすべてのデータを保持できない場合は、エラーが発生します。OutputBufferSize プロパティを使用すると出力バッファー サイズを指定できます。
シリアル オブジェクト上の FlowControl プロパティを hardware に設定していてもハードウェア接続が検出されない場合、fwrite はエラー メッセージを返します。この状態は、デバイスが接続されていない場合、または接続済みのデバイスがデータ受信の準備ができていることをアサートしていない場合に発生します。リモート デバイスのステータスおよびフロー制御設定をチェックして、ハードウェアのフロー制御が MATLAB® でエラーの発生の原因となっていないかどうかを確認してください。
メモ
データ受信の準備が整っていることをデバイスがアサートしているかどうかをチェックするには FlowControl を none に設定します。デバイスへの接続が確立されたら、PinStatus 構造体の ClearToSend をチェックします。ClearToSend が off の場合、リモート デバイス側に問題があります。ClearToSend が on の場合、データ受信の準備ができているハードウェア FlowControl デバイスがあるため、関数 fwrite を実行できます。
同期および非同期の書き込み操作
既定の設定では、データは同期を取ってデバイスに書き込まれ、操作が完了するまでコマンド ラインは停止されます。入力引数 mode を async に設定すると、非同期の処理が実行できます。非同期の書き込みは、以下のように実行されます。
BytesToOutputプロパティ値は出力バッファー中のバイト数を反映して連続的に更新されます。OutputEmptyFcnプロパティに対して設定されているコールバック関数は出力バッファーが空のときに実行されます。
TransferStatus プロパティを使用すると非同期の書き込み操作が進行中であるかどうかを判断できます。
fwrite を使用して書き込み操作を完了するための規則
以下の場合に、fwrite を使用したバイナリ書き込み操作が完了します。
指定したデータが書き込まれる
Timeoutプロパティで指定した時間が経過するメモ
Terminatorプロパティはバイナリ書き込み操作では使用されません。
サポートされる精度
次の表に、サポートされている precision の値を示します。
データ型 | 精度 | 解釈 |
|---|---|---|
文字 |
| 8 ビット符号なし文字 |
| 8 ビット符号付き文字 | |
| 8 ビット符号付きまたは符号なし文字 | |
整数 |
| 8 ビット整数 |
| 16 ビット整数 | |
| 32 ビット整数 | |
| 8 ビット符号なし整数 | |
| 16 ビット符号なし整数 | |
| 32 ビット符号なし整数 | |
| 16 ビット整数 | |
| 32 ビット整数 | |
| 32 または 64 ビット整数 | |
| 16 ビット符号なし整数 | |
| 32 ビット符号なし整数 | |
| 32 または 64 ビット符号なし整数 | |
浮動小数点 |
| 32 ビット浮動小数点 |
| 32 ビット浮動小数点 | |
| 32 ビット浮動小数点 | |
| 64 ビット浮動小数点 | |
| 64 ビット浮動小数点 |