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