3G網絡:汽車防盜報警視頻監(jiān)控“新助手”
下面是部分源碼:
程序中涉及的EnterCriticalSection()和LeaveCriticalSection()兩個函數的作用是保證在臨界區(qū)內所有被訪問的資源不被其他線程訪問,直到當前線程執(zhí)行完臨界區(qū)代碼。EnterCriticalSection()和LeaveCriticalSection()分別表示為進入臨界區(qū)和退出臨界區(qū)。
(3)CAM_IOControl()
程序設計中通過CreatFile()函數調CAM_Open()打開攝像頭設備,通過ReadFile()將返回值傳給CAM_IOControl()流接口函數,而CAM_IOControl()則調用OV51xReadOneFrame()對USB設備數據進行讀取。下面是部分源碼:
對于USB總線上的數據傳輸,一共有四種傳輸類型,分別是控制傳輸、中斷傳輸、批量傳輸和實時傳輸,這四種傳輸類型分別應用到不同的USB設備。其中實時傳輸適用于以固定速率或特定時間內傳輸,可以容忍偶爾錯誤的流數據情況,對于USB攝像頭這種實時性要求比較高的設備一般選用實時傳輸,所以在CAM_Read()中就需要用到實時傳輸函數IssueIsochTransfer()來讀取攝像頭采集的數據。如果IssueIsochTransfer()執(zhí)行后返回一個標示句柄,則代表執(zhí)行成功,如果無返回值,則表示執(zhí)行失敗。
評論