Foltia with AppleScript

Foltia animelockerのトラブルシューティング

録画状況を確認-3

FoltiaRecStatus(q) -3

昨日の予告通り次は録画状況を推測しそれぞれの状態でLive視聴を起動させたり、B-CASカードを再起動させたりして見ます。 前回のFoltiaRecStatus_2の後からですね。 長くなると見にくいので、追記部分だけを記載して見ます。 本体はDropboxでシェアーしてますわ。

追記部分だけを記載

on FoltiaRecStatus(q)

--戻り値はブランク

    --戻り値はブランク

   

 

    --中略

    

    log "直近に録画なし、録画準備、録画中"

    

    if sTime > cTime and (q0's NowRec is {}) then --直近に録画なし

        if (((do shell script "date +'%M'") is "00")) then LogOnConsoleR({cmt:"直近に録画なし 動作確認中", open_:false}) of L

        --LogOnConsoleR({cmt:"直近に録画なし Debug", open_:false}) of L

        if Rp_BSCL > 0 then --録画の予定が無いが、Live視聴があればそれは録画終了時で、B-CASカードを再起動する

            if not bug then set q1 to LiveChannel2({OnOf:"AllOff", foltia:q's foltia}) of me

            LogOnConsoleR({cmt:"録画してないか直近に録画の予定が無い。", open_:false}) of L

            if not bug then ReflesUSBCardReader({slack:false} & q) of me

            return {erro:"録画してないか直近に録画の予定が無い。"} & q0

        end if

        

        return q0

    else if Rp_AllCR is 0 then --録画準備中

        if (((count of (every paragraph of pcscd))) > q's PCSC_errorMax) then

            if not bug then ReflesUSBCardReader(q) of me

            LogOnConsoleR({cmt:"直近録画無しで、PCSCエラー カードソフトリセット", open_:false}) of L

        end if

        if Rp_BSCTq's LiveBootUpNum then return {erro:LogOnConsoleR({cmt:"BSチャネ2チャネル動作してる-録画準備中", open_:false}) of L} & q0

        --それ以外は 分岐の後にCID選択してLive起動する

        LogOnConsoleR({cmt:"録画準備中 DeBug Live起動へ", open_:false}) of L

        log "進行する"

    else --録画中

        if (((count of (every paragraph of pcscd)) > q's PCSC_errorMax)) then

            --if not bug then ReflesUSBCardReader(q) of me

            LogOnConsoleR({cmt:"録画中、PCSCエラー カードソフトリセット ??? 未設定中", open_:false}) of L

        end if

        LogOnConsoleR({cmt:"録画中 DeBug", open_:false}) of L

        if Rp_BSCL > 0 and (curTime > e3Time) and (curTime > s3Time) then #Live録画中で 次開始2分前、現在記録終了2分前

            --if Rp_BSCL > 0 and (curTime > s3Time) then #Live録画中で 次開始2分前

            if (not bug) and (Rp_AllCR > 0) then set q1 to LiveChannel2({OnOf:"AllOff", foltia:q's foltia}) of me

            return {erro:LogOnConsoleR({cmt:"次開始2分前でLive停止する。", open_:false}) of L} & q0

        else if Rp_BSCT = q's LiveBootUpNum then

            return {erro:LogOnConsoleR({cmt:"BSチャネ2チャネル動作してる-録画中", open_:false}) of L} & q0

        else if Rp_BSCT > q's LiveBootUpNum and Rp_BSCL > 0 then #BS3個以上あり、Live記録があった場合

            if Rp_BSCRq's LiveBootUpNum then

                if not bug then set q1 to LiveChannel2({OnOf:"AllOff", foltia:q's foltia}) of me

                return {erro:LogOnConsoleR({cmt:"BSチャネ2チャネル録画中 ライブ停止", open_:false}) of L} & q0

            end if

            set CID to "128"

            if (do shell script "Echo " & quoted form of BSrecptsid_Live & "|tr \\\\r \\\\n|grep -e '222'||true") is not "" then set CID to "129"

            if not bug then set q1 to LiveChannel2({OnOf:"Off", CID:CID, foltia:q's foltia}) of me

            return {erro:LogOnConsoleR({cmt:"BSチャネ3チャネル録画中 Live CID=" & CID & "を停止", open_:false}) of L} & q0

        else if Rp_BSCT > q's LiveBootUpNum then #上の式から BSLiveCount = 0

            return {erro:LogOnConsoleR({cmt:"BSチャネ2チャネル録画中", open_:false}) of L} & q0

        else if Rp_BSCT < q's LiveBootUpNum then

            --本来この状態は起こりえないと思うが起動がない場合はスルーパスしてCID選択し再起動する

            --set q0 to LiveChannel2({OnOf:"AllOff", foltia:q's foltia}) of me

            

            log "進行する"

        else

        

    return q0 #それ以外の状況はライブ起動なく終了

        end if

    end if

    if q's LiveBootUpNum = 0 then return {erro:LogOnConsoleR({cmt:"Q LiveBOotUpNum0のためLiveは不要", open_:false}) of L} & q0

    

    log "ここに来るのは BScount(Rp_BSCT) < q's LiveBootUpNum の場合のみ そしてCID 128であると思うが自信はない"

return q0

end FoltiaRecStatus

www.dropbox.com

 

とこんな感じで分岐させてます。 これで直近に録画予定が無いか、録画予定があってLive視聴を起動させるか、録画中かを判定して対応します。 ライブ視聴を止めたりする部分まで作動させてその後はMainLoopに戻します(return q0)。 ライブ視聴を開始する部分はこの後にまとめて設定する訳です(log "→進行する")。

また次の予約開始2分前になるといったんライブ視聴を停止する様にしてます。これは録画予約が入れ替わる時間帯にたくさんのチューナーのオンオフが重なるとpcscdエラー(B-CASエラー)が起こりやすい事が解っているので、今の録画が2分以内に終わり、さらに次の録画開始が2分以内に始まるときに、Live視聴を一度ストップしてます。 ライブ視聴を一度止めてもしばらく基板が暖まっているからか、しばらくはドロップノイズが出ないみたいです。 やはりチューナーの開始時期や停止時期はいろいろアクセスが集中するんでしょうかね?

 

次(No-4)は最後にLive視聴を開始する部分を設定して見ましょう。