Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ visca_check_completion(3X) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

viscalib(3X)

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 ヘッダファイル

関連事項

viscalib(3X)

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026