Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vc(3) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

vvcrs(4)

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;/∗ タイムコードタイプ ∗/
int b;/∗ BCD (Binary Coded Decimal) ∗/
int d;/∗ 10 進数 ∗/
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] に返ってくるデータは、r_tc[0] を BCD コードで表した場合の 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] は、 BCD (Binary Coded Decimal) コードで表したときの 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

の内いずれか一つです。

bBCD (Binary Coded Decimal) であらわされた値を指定します。

d10 進数であらわされた値を指定します。

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_btod(b)convert BCD number to decimal number
vtr_close(fd)close library
vtr_dtob(d)convert decimal number to BCD number
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その他のエラーコード

関連事項

vvcrs(4)
 
「9 ピン RS−422 コネクタプロトコル」説明書
 
「VTR コントロールインターフェースボード NWB−226
   ソフトウェア説明書」
 
「NEWS-OS Release 4.0 プログラマーズガイド
  13 章 vvcrs ライブラリ」
 
「NEWS-OS Release 4.0 I/O デバイスプログラミングガイド
  18 章 VTR コントロールインターフェース」

NEWS-OSRelease 4.2.1R

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