嵌入式系統(tǒng)是一種以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),其軟硬件可配置、可裁減,對功能、可靠性、成本、體積、功耗有嚴格約束的專用計算機系統(tǒng)。它結(jié)合了先進的計算機技術(shù)、半導體技術(shù)、電子技術(shù)以及各個行業(yè)的具體應(yīng)用,被看作技術(shù)密集、不斷創(chuàng)新的知識集成系統(tǒng)。近幾年來以軟硬件相結(jié)合為顯著特征、以消費電子類為主導的智能設(shè)備以超乎人們想象的速度獲得了前所未有的發(fā)展,與此同時,在工控領(lǐng)域也得到快速發(fā)展,在這個過程中,微軟公司也是首當其沖,其推出的Microsoft Windows CE是一個開放的、可裁減的、32位的實時操作系統(tǒng)和其他桌面版窗口操作系統(tǒng)相比,具有可靠性好、實時性高、內(nèi)核體積小的特點,所以被廣泛用于各種嵌入式智能設(shè)備的開發(fā),如工業(yè)控制、信息家電、移動通信、個人電子消費品等各個領(lǐng)域,是當今應(yīng)用最多、增長最快的嵌入式操作系統(tǒng)。
EM9000 ARM嵌入式主板采用高端的ARM9芯片EP9315,特別針對工控系統(tǒng)中TFT彩色顯示智能終端的應(yīng)用需求進行了精心的優(yōu)化設(shè)計(同時支持觸摸屏)。作為一款已加載了WinCE工控主板,EM9000嵌入式主板可以支持客戶在其上采用通用的微軟開發(fā)工具,如eVC、VS2005,直接進行應(yīng)用程序的開發(fā),從而以更快的速度把產(chǎn)品推向市場。另一方面,EM9000嵌入式主板的所有通訊接口均配置了標準的WinCE驅(qū)動程序,客戶在應(yīng)用程序開發(fā)中并不需要了解EM9000嵌入式主板內(nèi)部的詳細技術(shù)情況,而直接調(diào)用WinCE的標準API函數(shù),就可高效快速的操作EM9000的各個通訊接口,有效降低了客戶進行嵌入式系統(tǒng)產(chǎn)品開發(fā)的門檻和風險。同時,EM9000作為一款EP9315開發(fā)板,內(nèi)置了協(xié)處理器,可以進行復雜的浮點運算,可以運用在需要進行高速復雜運算的特殊場合。
攝像頭(CAMERA)又稱為電腦相機、電腦眼等,它作為一種視頻輸入設(shè)備,被廣泛的運用于個人電腦視頻和實時監(jiān)控等方面。然而,作為嵌入式的WinCE操作系統(tǒng)卻因為缺少攝像頭的驅(qū)動而不能采用這種視頻采集方案。為了更好的服務(wù)英創(chuàng)的客戶,經(jīng)過公司團隊的努力,解決了這個難題,可以為貴公司提供低成本的攝像頭解決方案。
我們?yōu)閿z像頭訂制了專門的API函數(shù),提供了使用例程。你可以參照英創(chuàng)提供的例程,迅速編寫出適合自己領(lǐng)域的產(chǎn)品。
如果有需求,可以來電垂詢,我們將根據(jù)你的需求,提供最佳的解決方案。
表中列出了攝像頭的主要API函數(shù)。根據(jù)這些API函數(shù)就可以很方便的完成視頻采集程序設(shè)計。下面列出了主要的API函數(shù)和參數(shù)說明。
// Name : capInitCamera
// Initialize driver and get current available cameras number.
//Return : The number, of the available cameras, indicates success.
int capInitCamera(void);
// Name : capGetCurrentVersion
// Get the current driver version information.
// Return : The length, in characters, of the copied string,
// not including the terminating null character, indicates success.
int capGetCurrentVersion(
int index, //[IN] Camera index, 0 - first
insigned char *pBufOut, // [OUT] Long pointer to the buffer that
// will receive the text
int lenOut // [IN] Specifies the maximum number of characters
//to copy to the buffer, including the NULL character.
// If the text exceeds this limit, it is truncated.
);
//Name : capGetVideoFormat
// Get the current video format.
//Return : Zero indicates success.
int capGetVideoFormat(
int index, // [IN] Camera index
int *pFormat, // [OUT] Long pointer to the buffer that will receive
//the video format, VIDEO_PALETTE_RGB565 -
//VIDEO_PALETTE_JPEG
int *pSizeMode //[OUT] Long pointer to the buffer that will receive
// the size mode, VIDEO_SIZE_VGA - VIDEO_SIZE_SIF
);
// Name : capSetVideoFormat
//Set video format.
//Return : Zero indicates success.
int capSetVideoFormat(
int index, // [IN] Camera index
int format, // [IN] Video format, VIDEO_PALETTE_RGB565 -
//VIDEO_PALETTE_JPEG
int sizeMode // [IN] Size mode, VIDEO_SIZE_VGA - VIDEO_SIZE_SIF
);
// Name : capGrabFrame
// Grab a frame from driver.
//Return : The length, in bytes, of the copied video frame data, indicates success.
int capGrabFrame(
int index, // [IN] Camera index
unsigned char *pFrameBuf, // [OUT] Long pointer to the buffer that will
//receive the video frame
unsigned int bufferLen // [IN] Specifies the maximum number of bytes
//to copy to the buffer
);
// Name : capGetLastJpeg
//Get a last JPEG frame from driver.
// Return : The length, in bytes, of the copied JPEG frame data, indicates success.
int capGetLastJpeg(
int index, // [IN] Camera index
unsigned char *pFrameBuf, // [OUT] Long pointer to the buffer that will
//receive the video frame
unsigned int bufferLen // [IN] Specifies the maximum number of bytes
//to copy to the buffer
);
// Name : capStartCamera
// Start camera to capture video.
// Return : Zero indicates success.
int capStartCamera(
int index //[IN] Camera index
);
// Name : capStopCamera
// Stop camera to capture video.
// Return : Zero indicates success.
int capStopCamera(
int index // [IN] Camera index
);
// Name : capCloseCamera
// Close all available camera.
// Return : Void.
void capCloseCamera(void);
// Name : capGetPciture
// Get a last bitmap and jpeg from driver
// Return : Zero indicates success.
int capGetPicture(
int index, // [IN] Camera index
unsigned char *pFrameBuf, //[OUT] Long pointer to the buffer that
//will receive the video frame
unsigned int bufferLen, //[IN] Size, in bytes, of the buffer pointed
//to by pFrameBuf
unsigned char *pJpgBuf, //[OUT] Long pointer to the buffer that
//will receive the jpeg picture
unsigned int jpgLen, //[IN] Size, in bytes, of the buffer pointed to
//by pJpgBuf
PDWORD pdwActualOut //[OUT] Pointer to an array of the return lengths
);