- BonDriver共有ツール総合
566 :名無しさん@編集中[sage]:2014/10/19(日) 13:18:47.94 ID:LS+MhEep - どうやら、EARTH::PT::Device::SetTunerSleep()でチューナを省電力状態から通常状態に移行させた後、
T側だけは少し待たないとEARTH::PT::Device::SetFrequency()に失敗するようですね SDKのヘッダ(兼ドキュメント)に待つ必要がある事等は書かれていないので、PT1/2-SDKの問題と言っても良さそうです #なお、上記のパターンでSetFrequency()に失敗するとSTATUS_PLL_LOCK_TIMEOUT_ERRORが返ってきますが、 #これもドキュメントにはこの関数の戻り値として書かれていない値です >>564 と言う感じなので、(PT1Ctrlも含めて)BonDriver_PTの問題では無さそうでした しかし、SDK以外のどこで対策するかと考えると、やっぱりSDKに一番近い層であるPT1Ctrlが正しいかなと #最善はSDKが対策する事ですが、正直それ程重大な問題でもないですし、上位層での対策も簡単なので…
|
- BonDriver共有ツール総合
567 :名無しさん@編集中[sage]:2014/10/19(日) 13:36:44.65 ID:LS+MhEep - なお、PT1Ctrlで対策しておきたい人は、
CPT1Manager::OpenTuner()とCPT1Manager::OpenTuner2()の最後の辺りの、 if( enISDB == PT::Device::ISDB_T ) の中で、 Sleep(10); とかやっとけば大丈夫かと思います また、SDKを使ってチューナを直接操作してる他のアプリである、ptTimerとかVirtualPTが対策してるかどうかは 調べていないのでわかりません
|
- BonDriver共有ツール総合
569 :名無しさん@編集中[sage]:2014/10/19(日) 19:57:07.41 ID:LS+MhEep - >>568
いえ、PT3CtrlのCPT3Manager::OpenTuner()にあるSleep(10)は、多分無くても問題無いですよ #当方はあのSleep()には特に意味は無いと思ってます 問題となるのはあくまでもSetTunerSleep(false)から帰ってきた後の時間ですね PT1/2とPT3では使用ICが変わってますので、PT3で問題が起きないのはその為かと思います 実際、PT3はSDKのInitTuner()の内部で一旦SetTunerSleep(false) -> SetFrequency()をディレイ無しで行っているので、 仮にPT3に同じ問題があったなら、InitTuner()自体が結構な確率で失敗する筈です ですが実際にはそう言う事はないので、これはやはりPT1/2が使用しているICに由来する問題なんでしょう
|
- BonDriver共有ツール総合
570 :名無しさん@編集中[sage]:2014/10/19(日) 20:03:51.76 ID:LS+MhEep - ちなみに、ptTimerを軽く調べてみたところ、チューナモジュール毎の省電力設定は行っておらず、
どれかのチューナを使用する時はデバイスのチューナモジュール全部省電力を切っている様でした なので、関係しそうなのはチューナ使用前のデバイス初期化時だけで、そこでは S0:SetTunerSleep(false) -> T0:SetTunerSleep(false) -> S1:SetTunerSleep(false) -> T1:SetTunerSleep(false) -> S0:SetFrequency() -> T0:SetFrequency() -> S1:SetFrequency() -> T1:SetFrequency() と言う感じで初期設定しているので、問題が起きるかどうかは実行時間次第ですね まず大丈夫かとは思いますが…
|
- BonDriver共有ツール総合
573 :名無しさん@編集中[sage]:2014/10/19(日) 22:43:02.82 ID:LS+MhEep - >>571
ウチのPT2はRev.Bで、それで確認しているので多分Rev.A/Bは関係ないかと思います テストは、 ttp://earthsoft.jp/PT1_PT2/bin/PT1-PT2-Sample-200.zip を ttp://pastebin.com/zj9wcmnd な感じに変更して行いましたよ ホントに問題かどうか、社長さんに判断していただけるならありがたいですね
|