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