VC(3) — NEWS-OS Programmer’s Manual
名称
vc − NWB-226 VTR コントローラ ライブラリ
形式
#include <newsvme/vvcrsreg.h>
cc [ flags ] files −lvc
解説
VTR コントローラ基本ライブラリの関数は、「9 ピン RS−422 コネクタプロトコル」に 準じた関数と、ユーザサポート関数、フリーズ機能の 3 つに分けられます。
引数
char ∗strings;/∗ 文字列 ∗/
int chan;/∗ チャネル番号 ∗/
int data;/∗ データ ∗/
int dir;/∗ fwd or rev ∗/
int error;/∗ エラー番号 ∗/
int exec;/∗ 実行要求フラグ ∗/
int fd;/∗ ファイルディスクリプタ ∗/
int in_out;/∗ in/out flag ∗/
int line;/∗ 行数 ∗/
int r_tc[4];/∗ タイムコードデータ要求コマンドの返答 ∗/
int r_tu[8]/∗ current time sense コマンド実行結果 ∗/
int rdata;/∗ タイマーモード データ ∗/
int s_dir;/∗ シフト方向 ∗/
int s_tc[4];/∗ 送信するコマンドに付加するタイムコード ∗/
int sdata[];/∗ ステータス データ ∗/
int switch;/∗ モード on/off ∗/
int ttype;/∗ タイムコードタイプ ∗/
struct vcio vcio;/∗ 構造体 vcio ∗/
stringschar display コマンドで表示させたい文字列を指定します。
chanオープンするチャネル番号(0 または 1)を指定します。
data「9 ピン RS−422 コネクタプロトコル」のコマンドで ユーザ側から与えるべきデータです。 各データの詳細については、「9 ピン RS−422 コネクタプロトコル」の説明書を ご覧ください。
dirfwd/rev の切り替えを行ないます。 0 の時 fwd、 1 の時 rev となります。
error関数を実行した結果得られるエラーコードです。
exec実行要求フラグです。
fdvtr_open 関数で得られたファイルディスクリプタです。
in_outin 点、out 点の切り替えを行ないます。 そのコマンドの機能を、IN POINT 用/OUT POINT 用に切り替えます。
line「9 ピン RS−422 コネクタプロトコル」のコマンド char display[1−8] の
ナンバーに対応しています。
r_tc[4]タイムコード要求コマンドの返答としてのデータが 以下のように得られます(10 進数)。
r_tc[0]フレーム (0〜29)
r_tc[1]秒 (0〜59)
r_tc[2]分 (0〜59)
r_tc[3]時 (0〜23)
r_tc[0] に返ってくるデータは、6, 7 ビット目にデータ (ドロップフレーム、カラーフレームモードビット) が付加される場合もあります( s_tc[4] 参照)。
r_tu[8]current time sense コマンドを実行した結果得られるデータです。
r_tu[0]〜r_tu[3] にはタイム データが、 r_tu[4]〜r_tu[7] にはユーザ ビット データが返されます。 data の指定方法によって、いずれか一方、または 両方のデータが返されます。
rdatatimer mode sense コマンドを実行した結果得られるデータです。
s_dirシフト方向を示します。 0 の時 +、1 の時 − です。
s_tc[4]要求コマンドに付加するタイムコードを指定します(10 進数)。
s_tc[0]フレーム (0〜29)
s_tc[1]秒 (0〜59)
s_tc[2]分 (0〜59)
s_tc[3]時 (0〜23)
フレーム数を指定するデータ s_tc[0] は、 6 ビット目がドロップフレーム モードビット、 7 ビット目がカラーフレームモードビットになっています。
ドロップフレームモード1
ノンドロップフレームモード0
カラーフレームモード1
ノンカラーフレームモード0
sdatastatus sense コマンドを実行した結果得られる データです。
switchモードの on/off を指定します。 0 の時 off、1 の時 on となります。
ttype使用しているタイムコードのタイプを指定します。 指定方法は、
VC_LTCLongitudinal Time Code
VC_VITCVertical Interval Time Code
VC_TIMER1Timer−1
VC_TIMER2Timer−2
の内いずれか一つです。
vcio構造体 vcio
「9 ピン RS−422 コネクタプロトコル」に準じた関数
∗ の付いた関数は引数 exec が 1 に固定されているものです。
vtr_amode(fd, switch, exec)auto mode on/off
vtr_autoed(fd, exec)auto edit mode
vtr_cdisp(fd, line, strings, exec)character display
vtr_ctsense(fd, data, r_tu, exec)current time sense ∗
vtr_cueup(fd, s_tc, exec)cue up with data
vtr_dpset(fd, in_out, s_tc, exec)in/out data preset
vtr_edit(fd, switch, exec)edit on/off
vtr_entry(fd, in_out, exec)in/out entry
vtr_epset(fd, data, exec)edit preset
vtr_hselect(fd, data, exec)head select
vtr_icheck(fd, exec)input check
vtr_indsense(fd, r_tc, exec)in data sense ∗
vtr_outdsense(fd, r_tc, exec)out data sense ∗
vtr_play(fd, exec)play
vtr_prev(fd, exec)preview
vtr_ptpset(fd, s_tc, exec)preroll time preset
vtr_rec(fd, exec)rec
vtr_review(fd, exec)review
vtr_roll(fd, exec)preroll
vtr_shift(fd, in_out, dir, exec)in/out +/- shift
vtr_shuttle(fd, dir, data, data, exec)shuttle fwd/rev
vtr_srselect(fd, data, exec)servo ref select
vtr_statsense(fd, data, sdata, exec)status sense ∗
vtr_stdby(fd, switch, exec)stanby on/off
vtr_stop(fd, exec)stop
vtr_taselect(fd, data, exec)tape/auto select
vtr_tcdsense(fd, data, r_tc, exec)tc gen data sense ∗
vtr_tcpset(fd, s_tc, exec)time code preset
vtr_tmselect(fd, data, exec)timer mode select
vtr_tmsense(fd, &r_data, exec)timer mode sense ∗
vtr_tpset(fd, s_tc, exec)timer−1 preset
vtr_trecpset(fd, data, exec)delta-t rec preset
vtr_treset(fd, exec)timer−1 reset
vtr_wind(fd, dir, exec)fwd/rew
ユーザサポート関数
vtr_close(fd)close library
vtr_fcancel(fd, e)freeze cancel
vtr_freeze(fd, ttype, s_tc, exec)freeze
vtr_gfstat(fd)get freeze status
vtr_load(fd)load and run firmware program
vtr_open(chan)open library
vtr_perror(error)print error message
エラー
正常終了した場合は 0 が、エラーの場合にはエラーコードが返されます。
システムのエラー
システムのエラーの場合はエラーコードとして −1 が返され グローバル変数 errno にエラー番号がセットされます。
[ENXIO]デバイスのマイナー番号が正しくない。
インターフェースボード NWB−226 が正しく装着されていない。
インターフェースボード NWB−224 が装着されていないのに vtr_freeze() または vtr_fcancel() コマンドを発行した。
ファームウェアプログラムが正しく動作していない。
[EBUSY]すでにオープンされているチャンネルを再び オープンしようとした。
他のプロセスによってロード、実行されている ファームウェアプログラムに対して、 リセット、 ラン、ロードなどの操作をしようとした。
[EINVAL]指定されたパラメータが正しくない。
アドレスの指定が正しくない。
[EIO]デバイスをオープンしたプロセスとは異なるプロセスがアクセスしようとした。
[EINPROGRESS]フリーズ要求が出されているチャネルに対して vtr_fcancel() 以外の コマンドを発行した。
[EFAULT]指定したパラメータのアドレスがおかしい。
基本ライブラリでのエラー
VTR コントロールインターフェースボード NWB−226 または VTR のエラーの場合は基本ライブラリの関数から下のような値が返されます。
VTR の ch-A に関するエラー [bit 0〜15]
bit 0〜7エラーデータ
bit 8〜10エラーの種類
bit 11〜15未使用
VTR の ch-B に関するエラー [bit 16〜31]
bit 16〜23エラーデータ
bit 24〜26エラーの種類
bit 27〜31未使用
エラーの種類
エラーが生じた場所を示すビットです。
bit 8,24VTR のエラー。
bit 9,25NWB−226 で検出されたエラー。
bit 10,26フリーズ実行時のエラー。
エラーデータ
エラーの種類を示すビットによって内容が異なります。
bit 8, 24 が立っているとき ( VTR のエラー)
各ビットの意味は、「9 ピン RS−422 コネクタプロトコル」の 説明書の NAK コマンドの項をご覧ください。
bit 9, 25 が立っているとき ( NWB−226 で検出されたエラー)
bit 0, 16未定義コマンド
bit 1, 17−
bit 2, 18チェックサムエラー
bit 3, 19−
bit 4, 20パリティエラー
bit 5, 21オーバーランエラー
bit 6, 22フレーミングエラー
bit 7, 23タイムアウト
bit 10, 26 が立っているとき (フリーズ実行時のエラー)
bit 2, 18フリーズコントロール中のエラー
bit 4, 20フリーズ要求したタイムコードが、 現在のタイムコードより
小さくなった
bit 5, 21タイムコードを読むことができなかった
bit 6, 22その他のエラーコード
関連事項
"「9 ピン RS−422 コネクタプロトコル」説明書"
"「 VTR コントロールインターフェースボード NWB−226 」ソフト ウェア説明書"
vvcrs(4)
NEWS-OSRelease 4.1C