资源简介

摄像机串口通信代码 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.embed.manifest

     文件        732  2012-06-12 17:42  CameraComm_chai(1.0)\Debug\CommCTLPANTILT.exe.embed.manifest.res

............此处省略45个文件信息

评论

共有 条评论