資源簡介
攝像機串口通信代碼 VISCA協議,代碼完整。可以自己慢慢調試
代碼片段和文件信息
//?CameraDrive.cpp:?implementation?of?the?CCameraDrive?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“CommCTLPANTILT.h“
#include?“CameraDrive.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
/*?
CCameraDrive,攝像機云臺控制類,2007年4月,MEI?Shuqi
基于MSComm控件的云臺控制,區別于以前做的基于API的串口通訊控制
??1、初始化與關閉:
BOOL?Init(CMSComm*?comm);
void?Close();
??2、攝像機運動命令函數:
void?GetOrient(double?&dbOrient);
void?GetStateofCommand(CString?&msg);
void?RelativeRightTo(WORD?pos?BYTE?speed);
void?RelativeLeftTo(WORD?pos?BYTE?speed);
void?DownTo(WORD?pos?BYTE?speed);
void?DownRight(BYTE?panspeed?BYTE?tiltspeed);
void?DownLeft(BYTE?panspeed?BYTE?tiltspeed);
void?UpRight(BYTE?panspeed?BYTE?tiltspeed);
void?UpLeft(BYTE?panspeed?BYTE?tiltspeed);
void?Left(BYTE?speed);
void?Right(BYTE?speed);
void?ToRight(WORD?pos?BYTE?speed);
void?LeftTo(WORD?pos?BYTE?speed);
void?Stop();
void?Stop_PanTilt();
void?Stop_Zoom();
void?Stop_Focus();
??3、查詢攝像機姿態角: void?QueryPos();
設置查詢命令類型: void?SetFlagofInfo(int?flag);
如果flag為:“1”,則查詢攝像機運動指令是否完成;
“2”,則查詢攝像機的姿態角。
??4、此函數專用于被串口事件響應函數調用:
int??CallMeOnComm(CMSComm*?comm);
它解析串口接收的數據的含義。
////////////////////////////////////////////////////////////////////////////////////////
///??????????????????????????chai?xiaojie??????????2008.7.27??????????????????????//////
控制字解析???81?01?06?03?FF?00??0F?07?02?05?0F?0E?07?00?FF
以下按位置解析??
*1*??81為10000001,第一位是標志,緊跟的三位是發送端編號,主機的編號為0,第四位也是
標志位0.緊跟的后三位是接受端編號,只有一個攝像頭時編號為1,十六進制表示為0x81.
*2* 01?for?command?,09?for?inquiry
*3* 06?for?pan/tilter?(00?for?interface?04?for?camera)
*4* 03?for?(pan/tilter?control)relative?position???(01?for?free?control?02?for?absoluter?position?04?for?home?05?for?reset)
*5* for?pan?speed?01?to?18
*6* for?tilt?speed?01?to?17
*78910* for?pan?position?F725?to?08DB(center?0000)right?is?positive(0000?to?08DB?十六進制表示,0.075度/1)
*11121314*??for?tilt?position?FE70?to?04B0(center?0000)up?is?positive
*15*????????FF?for?end
*/
const?int datasize =?512;
const?DWORD?pos_rlim =?0x08DB; //?攝像機右極大位置
const?DWORD?pos_llim =?0xF725; //?攝像機左極大位置
const?BYTE maxspeed =?0x18; //?24
const?BYTE minspeed =?0x01; //?1
CCameraDrive::CCameraDrive()
{
m_Comm =?NULL;
m_iCountofData =?0;
m_iFlag =?2;
m_dbZoomPos =?0;
m_dbFoucsPos =?0;
m_dbOrient =?0;
m_dbtilt =?0;?
m_MoveSpeed =?10;
m_QueryFlag?=?0;
m_queryFlag_array.SetSize(51);
}
CCameraDrive::~CCameraDrive()
{
}
//?類初始化,實際是初始化串口
BOOL?CCameraDrive::Init(CMSComm*?comm)
{
//?串口初始化
if(comm->GetPortOpen())
comm->SetPortOpen(FALSE);
comm->SetCommPort(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????30988??2012-10-19?11:51??CameraComm_chai(1.0)\cameradrive.cpp
?????文件???????3566??2012-03-01?10:19??CameraComm_chai(1.0)\CameraDrive.h
?????文件??????25944??2012-05-04?14:28??CameraComm_chai(1.0)\CommCTLPANTILT.aps
?????文件???????3129??2008-11-02?13:08??CameraComm_chai(1.0)\CommCTLPANTILT.clw
?????文件???????2175??2008-10-28?13:18??CameraComm_chai(1.0)\CommCTLPANTILT.cpp
?????文件???????4878??2007-03-28?11:15??CameraComm_chai(1.0)\CommCTLPANTILT.dsp
?????文件????????595??2007-03-28?11:15??CameraComm_chai(1.0)\CommCTLPANTILT.dsw
?????文件???????1412??2007-03-28?10:42??CameraComm_chai(1.0)\CommCTLPANTILT.h
?????文件???21195776??2012-08-02?15:36??CameraComm_chai(1.0)\CommCTLPANTILT.ncb
?????文件?????225280??2008-11-02?13:08??CameraComm_chai(1.0)\CommCTLPANTILT.opt
?????文件???????2963??2008-11-02?13:08??CameraComm_chai(1.0)\CommCTLPANTILT.plg
?????文件???????8827??2012-03-01?17:09??CameraComm_chai(1.0)\CommCTLPANTILT.rc
?????文件???????1246??2012-07-19?17:04??CameraComm_chai(1.0)\CommCTLPANTILT.sln
????..A..H.?????38912??2012-08-02?15:36??CameraComm_chai(1.0)\CommCTLPANTILT.suo
?????文件??????15106??2011-12-23?15:53??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj
?????文件???????2627??2012-11-06?11:20??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj.mayong-PC.Administrator.user
?????文件???????1415??2011-12-21?10:50??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj.wupeng-PC.Administrator.user
?????文件???????2639??2012-04-17?14:17??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj.YAOGUANGMING.Administrator.user
?????文件???????2623??2012-03-02?14:01??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj.ygm75-PC.Administrator.user
?????文件???????1413??2011-12-21?16:42??CameraComm_chai(1.0)\CommCTLPANTILT.vcproj.ygm75-PC.ygm75.user
?????文件??????17921??2012-10-19?11:24??CameraComm_chai(1.0)\CommCTLPANTILTDlg.cpp
?????文件???????2957??2012-03-12?10:59??CameraComm_chai(1.0)\CommCTLPANTILTDlg.h
?????文件???????7148??2012-10-19?09:37??CameraComm_chai(1.0)\Debug\BuildLog.htm
?????文件?????172032??2012-07-19?10:25??CameraComm_chai(1.0)\Debug\CameraControl_Test.exe
?????文件????1188736??2012-07-19?10:25??CameraComm_chai(1.0)\Debug\CameraControl_Test.ilk
?????文件????3476480??2012-07-19?10:25??CameraComm_chai(1.0)\Debug\CameraControl_Test.pdb
?????文件?????135338??2012-10-19?09:37??CameraComm_chai(1.0)\Debug\cameradrive.obj
?????文件?????188416??2012-10-19?09:37??CameraComm_chai(1.0)\Debug\CommCTLPANTILT.exe
?????文件????????666??2012-06-12?17:42??CameraComm_chai(1.0)\Debug\CommCTLPANTILT.exe.em
?????文件????????732??2012-06-12?17:42??CameraComm_chai(1.0)\Debug\CommCTLPANTILT.exe.em
............此處省略45個文件信息
評論
共有 條評論