资源简介
摄像机串口通信代码 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个文件信息
相关资源
- 利用API函数实现串口通信
- 基于Modbus通信协议的串口通信程序
- STM32 USB VCP Driver V1.3 32&64
- USB转虚拟串口
- live555-20181214基于ARM-linux从网络摄像机
- 密码重置推荐安装.rar
- STM32 之间实现串口通信
- IPCAM sdk 网络摄像机组件属性和接口(
- 海康威视网络摄像机/硬盘录像机S
- LabWindowsCVI数据采集与串口通信典型应
- 51单片机与CPLD的串口通信
- STM32F429标准库串口通信历程
- onvif搜索摄像机CameraDiscovery.rar
- Openmv与STM32通信.zip
- STM32F103C8T6标准库部分例程点灯、串口
- 小蚁智能摄像机夜视版编程器固件
- Visual.Cpp.TurboC串口通信编程实践 (第
- Linux Qt、大华摄像机SDK模式、ffmpeg解码
- visual basic 串口通信与测控应用技术实
- CSerial类在vs2015中开发的简单串口通信
- LABVIEW虚拟仪器数据采集与串口通信测
- 51单片机与蓝牙模块的串口通信C程序
- 3D迷宫源代码+演示程序
- LabVIEW串口通信参考
- 基于CC2530的温湿度传感器及串口通信
- 家用智能摄像机测试用例.xlsx
- 摄像机与VLC RTSP协议抓包分析
- Modbus Rtu Slave从机demo实现串口通信
- zigbee之串口通信
- QT5串口通信Hex格式传输
评论
共有 条评论