自動搜尋方式的流程
首先呼叫驅動api設定demod和
tuner頻點、符號率等引數,鎖定頻點(若失敗,則返回)之後,根據資料更新的方式決定是否要清除programlist和transponderlist,然後搜尋解析pat表,pat表解析完之後會對逐個program解析pmt表和sdt表,所有的program都完成之後,解析nit表獲得網路資訊,更新transponderlist,最後成功返回。
需要注意的是:第一,在蒐台的時候要利用tuner的驅動函式來檢測其鎖定狀態,而不能簡單地設定超時。tuner的狀態有三種:鎖定成功、鎖定失敗和鎖定中。對於鎖定成功和鎖定失敗,可即時返回;對於鎖定中狀態,需設定一定的超時機制,例如1s,來決定是否要放棄搜尋;第二,在自動蒐台時,對每次搜尋,必須要確認dbase程序已完成相關的表解析,需用訊號量來同步。
機頂盒對數字電視訊號
的處理過程為:電視射頻訊號經tuner(高頻頭)調諧,進行模數轉換,輸出36mhz 的的
資料資訊
,經信源解碼後得到所選節目的數字
資訊。1)使用者輸入頻點引數(或者通過stb 程式預置),demod和tuner鎖定頻點 2)設定demux模組,使得demux的filter過濾nit表,並對其進行解析,建立頻點3)針對頻點列表中的每乙個頻點,重複以下過程直到所有頻點都按以下步驟處理一遍. 4)設定filter過濾pat,pmt,sdt,並解析前三個psi/si表,以期獲得service相關信列表 息,並儲存所獲得的service相關資訊
5)如頻點列表所有頻點都已經處理過一遍,則搜尋結束
為什麼把這兩個列為重難點,這是因為
除錯過程中遇到的問題:
1.i2c訪問dc2800成功,但是dc2800的暫存器開關開啟之後訪問tuner失敗,經查證,是硬體有問題,硬體調整後,i2c可以對dc2800和tuener正常訪問。這裡如果i2c對demod訪問正常,而可以確定demod中的對tuner訪問的暫存器開關設定正確的話,還不能正常訪問tuner暫存器,那麼可以確定是硬體的問題(電阻?tuner?等等),當然,要保證i2c位址都是正確的。
2.i2c對demod和tuner的訪問都成功後,tuner已經工作(中頻訊號已經有了),但是demod就是不能鎖定。原因是,在demod中設定符號率等暫存器時,有乙個浮點的運算,我在轉換成整型運算後,得到的值有誤差,導致設定到暫存器的值不對,所以一直鎖定不住,後來從其他平台(工作正常的)把暫存器設定的值讀出來,照著設定進去,沒有問題,後來調整計算方法,搞定。
除錯方法:
1.調i2c,毫無疑問,用示波器觀察i2c波形是否正常。
2.鎖定不了的情況的除錯,首先用示波器量tuner的中頻訊號是否有訊號,如果有,說明tuner已經工作正常,然後量從demod輸出的增益訊號,如果穩定,大概是直流輸出的穩定在0.9到1點幾伏的樣子,如果都正常,可能就是demod設定時的一些引數設定錯誤,首先懷疑的就是設定符號率的那幾個暫存器。
3.最笨最有效的方法:找乙個工作正常的平台,把demod或者tuner的暫存器值全部列印出來,和除錯的平台對比,肯定有不同的地方,照著工作正常的平台設定暫存器。
Lucene 搜尋方式
lucene有多種搜尋方式,可以根據需要選擇不同的方式。1 詞條搜尋 單個關鍵字查詢 主要物件是termquery 呼叫方式如下 term term new term 欄位名,搜尋關鍵字 query query new termquery term hits hits searcher.search...
elasticsearch 搜尋方式
宣告 本文僅僅只是記個筆記 搜尋方式 took 耗費了幾毫秒 timed out 是否超時,這裡沒有 shareds 資料拆成1哥分片,所以對於搜尋請求,會打造所有的primary shard 或者是它的某個replica shard也可以 hits.total 查詢結果的數量,這裡有 3 個 do...
從流程的自動化中獲得最大價值的10種方式
本文講的是 從流程的自動化中獲得最大價值的10種方式,流程自動化很好,如果它可以節省時間並減少錯誤。但是如果它不能在業務流程中 很好地契合 那麼會難以得到普及。問問有誰沒有對語音助手感到傷腦筋。所幸的是,某些最佳實踐讓你可以從流程自動化中獲得最大價值,以下就是其中的10項。1 保持簡單 乙個流程自動...