Assembly: FVILdevice (in FVILdevice.dll) Version: 3.1.0.0 (3.1.0.5)
Syntax
C# |
---|
public virtual List<byte> SendData( List<byte> tx, uint option ) |
Visual Basic |
---|
Public Overridable Function SendData ( tx As List(Of Byte), option As UInteger ) As List(Of Byte) |
Parameters
- tx
- Type: System.Collections.Generic..::..List<(Of <(<'Byte>)>)>
送信データ
- option
- Type: System..::..UInt32
オプション
Return Value
Type: List<(Of <(<'Byte>)>)>カメラに対して送受信を行います。 カメラに SIO 機能が無ければ使用できません。 送受信するコマンドは、送り先のカメラに依存します。 詳しくはカメラメーカーから提供されるカメラ説明書をご参照ください。
カメラに対し、引数 tx に指定したデータを送信します。 正常に送信が完了した場合、カメラから受信完了のコマンドが返されます。 返されたコマンドは戻り値として返します。 option については後述します。
引数 tx の送信データには、先頭と終端につける記号(STX,ETX,CR/LF)が自動的に付加されます。 受信したデータは、先頭と終端の記号を破棄して返します。
カメラが接続されていなかった場合や電源が入っていなかった場合は、 5 秒後に SIO タイムアウト例外が発生します。
シリアル通信の速度は、カメラ設定ファイルで設定されている速度で行われます。 その他のパラメータは、データビット=8bit, ノンパリティ、ストップビット=1bit固定となります。
処理に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
25 | FVIL.ErrorCode.NOT_OPENED | デバイスがオープンされていません。 |
11 | FVIL.ErrorCode.INVALID_PARAMETER | 引数が間違っています。 |
24 | FVIL.ErrorCode.NOT_ENOUGH | メモリ確保領域が充分ではありません。 |
31234 | FVIL.Video.ErrorCode.SIO_NOT_OPENED | SIOがオープンされていません。 |
31078 | FVIL.Video.ErrorCode.SET_PARAMETER | パラメータの設定に失敗しました。 |
31079 | FVIL.Video.ErrorCode.GET_PARAMETER | パラメータの取得に失敗しました。 |
31235 | FVIL.Video.ErrorCode.SIO_TIMEOUT | SIOタイムアウトが発生しました。 |
Remarks
option 設定は、多くのカメラで 0 固定ですが、一部のカメラで値を設定しなければいけません。 本関数では、送信コマンドの先頭・終端の記号(STX,ETX,CR/LF)を付けて送信した場合、 カメラからの反応も同じ記号が付加されて戻ってくることを前提として作成されています。 カメラによっては異なっている場合があるため、戻ってくる情報の形を option に指定しなければいけません。
option は 32bit 整数で次のように格納します。
各ビットフィールドの指定には、CFviSendSioOption をご使用ください。 この構造体の Value に、 32bit 整数の生データが格納されます。 下表は、この構造体のプロパティと各ビットフィールドの対応表です。
ビット | プロパティ | 意味 |
---|---|---|
0~14 | input_byte | 受信バイト数 |
15 | enable_input_byte | 受信バイト数を有効にする |
16 | not_add_tx_code | 送信時の開始コード・終端コードを付加しない |
17 | not_add_rx_code | 受信コマンドに、終端コードが付いていない |
18~30 | (なし) | |
31 | add_checksum | 送信コマンドにチェックサムを付加する |
Examples
送信データに先頭・終端記号が付き、受信データが常に 4byte で先頭・終端記号が付加されない場合は 下記のように指定します。生の 32bit 整数データは 0x00028004 です。
ビット | 値 | 意味 |
---|---|---|
0~14 | 4 | 受信バイト数 |
15 | 1 | 受信バイト数を有効にする |
16 | 0 | 送信時の開始コード・終端コードを付加しない |
17 | 1 | 受信コマンドに、終端コードが付いていない |
31 | 0 | 送信コマンドにチェックサムを付加する |
Copy | |
---|---|
FVIL.Video.CFviSendSioOption option = new FVIL.Video.CFviSendSioOption(); option.input_byte = 4; option.enable_input_byte = 1; option.not_add_tx_code = 0; option.not_add_rx_code = 1; option.add_checksum = 0; System.Collections.Generic.List<System.Byte> rx = video.Sio.SendData( tx, option.Value ); |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |