データ送信

Namespace: FVIL.Video
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 メンバ内容
25FVIL.ErrorCode.NOT_OPENEDデバイスがオープンされていません。
11FVIL.ErrorCode.INVALID_PARAMETER引数が間違っています。
24FVIL.ErrorCode.NOT_ENOUGHメモリ確保領域が充分ではありません。
31234FVIL.Video.ErrorCode.SIO_NOT_OPENEDSIOがオープンされていません。
31078FVIL.Video.ErrorCode.SET_PARAMETERパラメータの設定に失敗しました。
31079FVIL.Video.ErrorCode.GET_PARAMETERパラメータの取得に失敗しました。
31235FVIL.Video.ErrorCode.SIO_TIMEOUTSIOタイムアウトが発生しました。

Remarks

option 設定は、多くのカメラで 0 固定ですが、一部のカメラで値を設定しなければいけません。 本関数では、送信コマンドの先頭・終端の記号(STX,ETX,CR/LF)を付けて送信した場合、 カメラからの反応も同じ記号が付加されて戻ってくることを前提として作成されています。 カメラによっては異なっている場合があるため、戻ってくる情報の形を option に指定しなければいけません。

option は 32bit 整数で次のように格納します。

各ビットフィールドの指定には、CFviSendSioOption をご使用ください。 この構造体の Value に、 32bit 整数の生データが格納されます。 下表は、この構造体のプロパティと各ビットフィールドの対応表です。

ビットプロパティ意味
0~14input_byte受信バイト数
15enable_input_byte受信バイト数を有効にする
16not_add_tx_code送信時の開始コード・終端コードを付加しない
17not_add_rx_code受信コマンドに、終端コードが付いていない
18~30(なし)
31add_checksum送信コマンドにチェックサムを付加する

Examples

送信データに先頭・終端記号が付き、受信データが常に 4byte で先頭・終端記号が付加されない場合は 下記のように指定します。生の 32bit 整数データは 0x00028004 です。

ビット意味
0~144受信バイト数
151受信バイト数を有効にする
160送信時の開始コード・終端コードを付加しない
171受信コマンドに、終端コードが付いていない
310送信コマンドにチェックサムを付加する
Copy imageCopy
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

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also