[HD-HGLAN] [PCAST] DbAcRap のコマンド

2006.03.16



Link de 録! を平日の日中、自動でスリープさせるため、予約状況を PCast から取得する必要があり、PCast を解析する。
HGLAN のファームウェアは、Ver.1.49。
PCast のコントロールは /usr/local/PCast/DbacRap で行う。 PCast の www ディレクトリ以下を grep して、判明したコマンドは次のとおり。 コマンドの形式は二種類あるらしい。説明は実際に確認できたもののみ。

  1. パラメータのないもの。あるいは空白で区切ってパラメータを渡すもの。
    # /usr/local/PCast/DbAcRap コマンド [パラメータ]
    コマンドパラメータ説明
    GetDevJudgment なし デバイス種別を取得
    GetDeviceStatus なし デバイスの状態を取得
    GetIcommander なし or 1 不明
    GetMergeListTop
    GetMergeListBottom
    なし 全てのデバイスの録画予約一覧取得
    GetPlListTop
    GetPlListBottom
    なし 録画済み一覧取得
    SetIcommander 1 不明
    SetUserChannel 1 不明
    channelscan なし チャンネルスキャン
  2. コマンド名に間を空けずに {} でくくってパラメータを渡す形式のもの。
    # /usr/local/PCast/DbAcRap コマンド{パラメータ}{パラメータ}....
    • 予約コマンド
      add{Reserve_Type}{Mpeg_Type}{Start_Time}{End_Time}{Channel}{Audio}
           {Undefine}{Undefine}{Undefine}{Device}{Title}
    • 予約変更コマンド
      ChangeKey{Reserve_Type}{Mpeg_Type}{Start_Time}{End_Time}{Channel}
           {Audio}{Undefine}{Undefine}{Undefine}{Device}{Title}{Key}
    • 録画コマンド
      RecordStart{Device}{Mpeg_Type}{Channel}{Audio}
    • その他
      コマンド パラメータ1 パラメータ2 説明
      GetListTop
      GetListBottom
      {Device} なし 指定デバイスの予約一覧取得
      GetLiveInfo {Device} なし 不明
      GetRecordInfo {Device} なし 不明
      GetStartTime {Device} なし 不明
      RecordStop {Device} なし 録画停止
      ChangePlayTitle {Title} {Key} 不明
      DelKey {Device} {Key} 不明
      DelPlKey {Key} なし 不明
      GetLiveInfo、GetRecordInfo、GetStartTime はエラーになったが、 録画中に有効なコマンドかも知れない。
    • EPG 関連
      EpgProxy{No}{Ip1]}{Ip2}{Ip3}{Ip4}{Port}
    パラメータの意味は次のようになる。
    パラメータ名説明
    Device デバイス番号( 0 〜 )
    Reserve_Type 0:1回
    1:毎日
    2:毎週
    3:毎週(月曜日〜金曜日)
    4:毎週(火曜日〜土曜日)
    5:毎週(月曜日〜土曜日)
    6:毎週(火曜日〜日曜日)
    Mpeg_Type 0:MPEG2 高画質
    1:MPEG2 標準画質
    2:MPEG2 低画質
    4:MPEG2 ストリーミング画質
    10:MPEG4 高画質
    11:MPEG4 標準画質
    12:MPEG4 低画質
    14:MPEG4 ストリーミング画質
    Start_Time 開始時間( 年/月/日/時/分 )
    End_Time 終了時間( 年/月/日/時/分 )
    Channe チャンネル。 S 端子入力は 1000、ビデオ入力は 1001
    Audio 2:ステレオ
    3:主音声
    4:副音声
    5:主+副音声
    Undefine 未使用
    Title 番組名
    Key データキー
    No Proxy の順位(0/1)
    Ip1 IP アドレスの1番目( 0 〜 255 )
    Ip2 IP アドレスの2番目( 0 〜 255 )
    Ip3 IP アドレスの3番目( 0 〜 255 )
    Ip4 IP アドレスの4番目( 0 〜 255 )
コマンド名Top/Bottom はリストを昇順にするか降順にするかの違い。

情報を取得するコマンドの実行結果は次の通り。

  • GetDevJudgment
    GetDevJudgment
    [START]GetDevJudgment
    [DATA]Device=0 TYPE=MV7DXU2
    [DATA]Device=1 TYPE=UNKNOW
    [DATA]Device=2 TYPE=UNKNOW
    [DATA]Device=3 TYPE=UNKNOW
    [FINISH]GetDevJudgment
  • GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=WAIT
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
  • GetPlListBottom
    GetPlListBottom
    [START]GetPlListBottom
    [DATA]Index=0002 TittleName=・ネ・・ホ・ェ・・・ヤ・テ・ッ」イ」ー」ー」カ
    [DATA]Index=0002 Status=2
    [DATA]Index=0002 ResType=0
    [DATA]Index=0002 Formet=12
    [DATA]Index=0002 Reserve1=0
    [DATA]Index=0002 Reserve2=0
    [DATA]Index=0002 Start=2006/02/13/23/25
    [DATA]Index=0002 End=2006/02/14/06/50
    [DATA]Index=0002 TvChannel=3
    [DATA]Index=0002 TvAudioMode=0
    [DATA]Index=0002 DeviceId=0
    [DATA]Index=0002 FileName=/mnt/share/トリノオリンピック2006_0213.mpg
    [DATA]Index=0002 DataKey=1139840700
    [DATA]Index=0001 TittleName=・ネ・・ホ・ェ・・・ヤ・テ・ッ」イ」ー」ー」カ
    [DATA]Index=0001 Status=2
    [DATA]Index=0001 ResType=0
    [DATA]Index=0001 Formet=12
    [DATA]Index=0001 Reserve1=0
    [DATA]Index=0001 Reserve2=0
    [DATA]Index=0001 Start=2006/02/12/21/53
    [DATA]Index=0001 End=2006/02/13/04/00
    [DATA]Index=0001 TvChannel=3
    [DATA]Index=0001 TvAudioMode=0
    [DATA]Index=0001 DeviceId=0
    [DATA]Index=0001 FileName=/mnt/share/トリノオリンピック2006_0212.mpg
    [DATA]Index=0001 DataKey=1139748780
    [FINISH]GetPLListBottom
    漢字コードが違うようで、FileName は shift jis だが、TittleName は euc のようだ。
    TittleName はひょとして TitleName ?
  • GetListTop{0}
    GetListTop{0}
    [START]GetListTop
    [DATA]Index=0001 TittleName=フタクススハシアメシキネヨセ。ノi
    [DATA]Index=0001 Status=0
    [DATA]Index=0001 ResType=2
    [DATA]Index=0001 Formet=12
    [DATA]Index=0001 Reserve1=0
    [DATA]Index=0001 Reserve2=0
    [DATA]Index=0001 Reserve3=0
    [DATA]Index=0001 Start=2006/03/17/21/15
    [DATA]Index=0001 End=2006/03/17/21/58
    [DATA]Index=0001 TvChannel=3
    [DATA]Index=0001 TvAudioMode=2
    [DATA]Index=0001 DeviceId=0
    [DATA]Index=0001 FileName=/mnt/share/柳生十兵衛七番勝負_0317.mpg
    [DATA]Index=0001 DataKey=1142597700
    [DATA]Index=0002 TittleName=タ、ウヲネスムエロオェケヤ
    [DATA]Index=0002 Status=0
    [DATA]Index=0002 ResType=2
    [DATA]Index=0002 Formet=12
    [DATA]Index=0002 Reserve1=0
    [DATA]Index=0002 Reserve2=0
    [DATA]Index=0002 Reserve3=0
    [DATA]Index=0002 Start=2006/03/17/22/00
    [DATA]Index=0002 End=2006/03/17/22/25
    [DATA]Index=0002 TvChannel=5
    [DATA]Index=0002 TvAudioMode=2
    [DATA]Index=0002 DeviceId=0
    [DATA]Index=0002 FileName=/mnt/share/世界美術館紀行_0317.mpg
    [DATA]Index=0002 DataKey=1142600400
    [FINISH]GetListTop
    やっぱり、TittleName ?

よし、これで予約状況が取得できるから、予約が入っていないときにスリープするスクリプトが書けるぞ。



<<HLWG に telnet 戻る >>