英創ARM9工控主板功能齊全、體積小巧、性能穩定、超低價格的嵌入式主板產品。主板硬件完全按工業級標準設計,CPU采用了32位工業級ARM9芯片,PCB板經精心優化設計,除提供全面、高效的功能之外,還較好地控制了模塊功耗。英創ARM9工控主板,為了適應遠程監控的需要,添加了視頻采集功能。在WinCE平臺下,由于安裝攝像頭驅動不能像在PC上安裝驅動那么方便,英創公司在WinCE內核中預先安裝了特定攝像頭的驅動。我們在測試的過程中選用的是海天地公司生產的QQ電腦眼—V8。但是,英創提供的攝像頭驅動支持主芯片為ZC0301Plus(30萬像素)、 ZC0301PL(30萬像素)、 ZC0301PLH(130萬像素)的攝像頭。由于攝像頭為USB接口,那么選好攝像頭后,直接插在英創公司的USB HOST口,就可以使用英創公司提供的對攝像頭操作的API函數,通過這些API函數可以很方便的完成啟動視頻、拍攝圖片等操作。
在工業現場,常常需要在復雜環境下監視現場的工作狀態,遠程視頻監控適應了這一需要,它主要應用于無人值守、復雜環境及其惡劣環境的監視。遠程視頻監控系統應用大大的降低了人力資源的使用,同時對于那些不需要經常巡視的區域保持了較好的及時監控,即使是一些人力無法長期工作的惡劣地點也可以通過遠程視頻監控系統實現。遠程視頻監控系統的出現彌補了人力不足以及人力不能及的缺點,使得工作人員的工作環境變得舒適而其高效。英創適應了這一市場需求,推出了遠程視頻監控的解決方案。通過WebServer技術和COM組件技術,客戶使用瀏覽器就能方便地實現視頻監控,本文給出了詳細的實現步驟。
1、設計COM組件
新建EVC工程,添加接口、添加SNAP接口函數等COM組件技術的設計方法請參考《ARM9工控板在遠程監控中的應用》系列文章,詳細程序請參看光盤源碼。下面只對Snap接口函數進行解釋。
// 函數功能:拍照
// 入口參數:V1為照片文件存儲位置,為絕對路徑加文件名。
// 出口參數:無
// 返 回 值:TRUE:打開數據庫成功;FALSE:打開數據庫失敗
STDMETHODIMP CemCamera::Snap(VARIANT v1, long *pVal)
{
CComVariant v_1( v1 );
v_1.ChangeType( VT_BSTR ); // 將VARIANT轉換為字符串
CString csFileName(v_1.bstrVal);
capInitCamera(); // 初始化攝像頭
capSetVideoFormat(g_uIndex, fmt, VIDEO_SIZE_SIF); // 設置視頻格式和
capStartCamera(g_uIndex); // 啟動攝像頭
Sleep(150);
capGetLastJpeg(g_uIndex, buffer, bufferLen); // 拍照并保持在buffer中
if(!MyFile.Open(csFileName,CFile::modeCreate|CFile::modeWrite,NULL))
// 如果不存在,就創建文件 如果文件存在,就打開文件
MyFile.Write (buffer,length); // 寫文件
LocalFree(buffer); // 釋放Buffer
capCloseCamera(); // 關閉攝像頭
}
2、在瀏覽器查看拍攝的照片
在網頁中,主要提供了自動抓拍、手動抓拍、停止抓拍等按鈕,其中,自動抓拍還要設置抓拍時間間隔。下面是主要的ASP代碼。
set Obj=CreateObject(‘Camera.emCamera’) // 創建Camera對象
Obj.snap(‘\nandflash\www\images\’&filename) // 調用COM組件抓拍
由于要用到文件操作,所以要創建文件操作對象
set FileObj=CreateObject(‘Scripting.FileSystemObject’) // 創建對象
setTimeout(‘document.frmEmtronix.submit()’,timenum) // 自動間隔毫秒提交網頁
更多代碼請參考光盤源碼。
3、綜合測試
把EMCamera文件下的所以文件拷貝到NandFlash/www文件夾下。把regsvr32.exe、Scripting.dll、Camera.dll文件拷貝到nandflash下。
注冊Com組件 regsvr32 Scripting.dll、regsvr32 Camera.dll
在瀏覽器中輸入 板卡ip地址/nand 就可以看到攝像頭抓拍的照片。
-
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35337
發布評論請先 登錄
相關推薦
評論