VISCA(3X) — NEWS-OS Programmer’s Manual
名称
visca_send_message, visca_check_completion, visca_get_reply, visca_cancel_message − VISCA メッセージを操作するための関数
形式
#include <visca.h>
vs_midvisca_send_message( channel, adrs, msg, care )
intchannel;
intadrs;
vs_msgmsg;
intcare;
intvisca_check_completion( msgid )
vs_midmsgid;
intvisca_get_reply( repl, msgid, sync )
vs_msg∗repl;
vs_midmsgid;
intsync;
intvisca_cancel_message( msgid )
vs_midmsgid;
解説
visca_send_message は、 channel で示されるチャンネル番号に接続された adrs 番目の VISCA デバイスに msg を送ります。 care に TRUE をセットすると、後述の visca_check_completion(3X)、 visca_get_reply(3X)、 visca_cancel_message(3X) で、送ったメッセージに対する実行状態や結果を調べることができます。 FALSE をセットすると、リプライメッセージは、ライブラリーの内部で 捨てられます。 リターン値は、正常終了の場合、送ったメッセージに対する メッセージ ID が返され、 実行エラーが起こった場合 NULL が返ります。このとき、 外部変数 vs_error にエラー番号がセットされます。
visca_check_completion は、 msgid で示されるメッセージの実行が終了したかどうかデバイスに 問い合わせます。 メッセージが終了している場合は 0 、 メッセージの実行が終了していない場合は 1 、 実行エラーが起こった場合は、−1 、 VISCA デバイスの応答がなくタイムアウトした場合 −2 が 返されます。
visca_get_reply は、msgid で示されるメッセージに対する VISCA デバイスからのリプライ メッセージを取りだします。 sync を TRUE にするとメッセージの実行が終了するまで待ち、 FALSE にするとメッセージの実行の終了を待たずに終了します。 この関数を使用するためには、 visca_send_message(3X) の care を TRUE にする必要があります。 リターン値は、 visca_check_completion(3X) と同じ値が返ります。 リターン値に 0 が返ってきた場合、repl に VISCA デバイスからのリプライメッセージがセットされます。
visca_cancel_message は、 msgid で示されるメッセージをキャンセルします。 リターン値は、正常終了の場合 0、実行エラーが起こった場合、−1 が返ります。
構造体
vs_msg は、以下のような構造体になっています。
#include <visca.h>
typedef struct {
u_charformat_type;
u_charcategory;
u_charformat_info[5];
u_charbody[VS_MAXMSG];
} vs_msg;
format_type には、VISCA プロトコルのフォーマットタイプが 入ります。フォーマットタイプとして、以下に示すものが、 ヘッダファイルに定義されています。
#defineVS_COMMAND1 0x01
#defineVS_COMMAND20x02
#defineVS_COMMAND30x03
#defineVS_COMMAND40x04
#defineVS_INQUIRY0x09
#defineVS_COMP0x50
#defineVS_ERROR0x60
category には、VISCA プロトコルのカテゴリタイプが 入ります。フォーマットタイプとして、以下に示すものが、 ヘッダファイルに定義されています。
#defineVS_INTERFACE 0x00
#defineVS_CONTROL_S0x01
#defineVS_MEDIA_DEVICE 0x02
format_info には、VISCA プロトコルのフォーマット インフォメーションが入ります。これは、format_type の値によってセットする値が変わります。 format_type が VS_COMMAND2 の場合、 format_info に、VISCA デバイスのクロックタイムが入ります。 VS_COMMAND3 VS_COMMAND4 の場合、 format_info に、テープの指定位置が入ります。
body には、メッセージのボディデータが入ります。 ボディデータの最後は必ず VS_TERM で終わっている必要があります。 VS_TERM は以下のように定義されています。
#define VS_TERM0xff
なお、VISCA プロトコルの詳細は、VISCA 対応した各商品の VISCA コマンド表、または、VISCA DEVELOPER MANUAL をご覧ください。
関連ファイル
/usr/sony/lib/libvisca.a ライブラリ
/usr/sony/include/visca.h ヘッダファイル
関連事項
NEWS-OSRelease 4.2.1R