资源描述:
《串口摄像头编程指导说明书.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、串口摄像头编程指导说明书一、概述1、本说明仅针对本公司的产品;2、仅提供VC++的关键部分代码;其它系统的可参照使用;二、串口1、串口摄像头,依靠RS232或RS485通迅,进行图像采集;2、使用USB串口时,可使用CH340、FTCP系列等USB串口;部分不良的USB串口,可能有接收数据不完全的情况;3、根据您的传输距离,可选用合适的波特率;距离越远,波特率应适当降低;4、PC上的使用VC时,可采用本方案提供的串口收发类CComCls(ComCls.cpp和ComCls.h);5、打开串口boolCComCls::OpenPort_New(
2、CStringCom,intBtl);Com串口标识,如:“com1”、“com2”等;Btl波特率;如:6、关闭串口voidCComCls::ClosePort();三、整包采集1、协议:(CRC可根据情况而用)发:90eb010202000301c1c2注:帧头地址命令数据长度分辨率(0-7)压缩比(0-3)CRC校验返:90EB0102950800dddd…c1c2注:同上数据长度图像数据CRC校验程序:发:unsignedcharSend[]={0x90,0xeb,1,2,2,0,3,1,0,0};m_Com.SendData(Sen
3、d,10);收:读取串口数据;unsignedlongLen=1024*2;unsignedcharBuf[1024*2];if(!m_MyCom.ReadData(Buf,Len))return0;if(Len>0){::memcpy(this->m_JpgBuf,Buf,Len);//将数据复制到图像缓冲区;this->m_JpgBufLenth=Len;//已接收到的数据字节数}2、显示jpg图像ShowJPG(char*Buff,intLength,CRect*pRect){CDC*pDC;if(Length==0){return0;
4、}//校验JPG图片是否正确if((unsignedchar)Buff[0]!=0xff
5、
6、(unsignedchar)Buff[1]!=0xd8
7、
8、(unsignedchar)Buff[2]!=0xff)//不是JPG格式,{return0;}else{this->m_Show="显示JPG";TRACE("显示JPGr");this->UpdateData(false);}pDC=this->GetDC();//显示图片IPicture*pPic;IStream*pStm;HGLOBALhGlobal=GlobalAlloc(GME
9、M_MOVEABLE,Length);void*pvData=NULL;if(hGlobal!=NULL){if((pvData=GlobalLock(hGlobal))!=NULL){::memcpy(pvData,Buff,Length);GlobalUnlock(hGlobal);CreateStreamOnHGlobal(hGlobal,0,&pStm);if(SUCCEEDED(OleLoadPicture(pStm,Length,TRUE,IID_IPicture,(LPVOID*)&pPic))){longhmWidth;lon
10、ghmHeight;pPic->get_Width(&hmWidth);pPic->get_Height(&hmHeight);pPic->Render(*(pDC),pRect->left,pRect->top,pRect->Width(),pRect->Height(),0,hmHeight,hmWidth,-hmHeight,NULL);pPic->Release();}}}if(pStm)pStm->Release();if(hGlobal)::GlobalFree(hGlobal);this->ReleaseDC(pDC);retu
11、rn1;}1、一、分包采集1、拍照发:90EB01300000C1C2注:命令数据长度CRC校验返:90EB0130070000831600000C000B5290EB013007000037D0020069008C48注:命令数据长度状态图像长度包数CRCunsignedcharSend[8]={0x90,0xeb,0x00,0x30,0x00,0x00,0xc1,0xc2};Send[2]=this->m_Add;Send[3]=0x30;//类型m_Com.SendData(Send,8);2、请求包数据同整包接收一样;3、组合数据由于
12、数据是分包请求和分包接收,将接收到数据按包排列组合则可;4、显示或保存(同上)二、摄像头设置1、设置地址发:90EB010D010002C1C2注:旧地址命令数据长