⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devicecontrolcommand.cpp

📁 学习java的经典教程源代码
💻 CPP
字号:
#include <stdafx.h>
#include <stdio.h>
#include "DeviceControlCommand.h"
#define DCCOPTION "DeviceCmdConfig.ini"
void DeviceControlCommand::GetDCConfigFilePath()//troopaywa得到DeviceCmdConfig.ini的路径
{
	char szName[MAX_PATH];
	GetModuleFileName(NULL, szName, MAX_PATH);
	szName[MAX_PATH-1] = 0;
	
	char *p = strrchr(szName, '\\');
	while(p>szName && isleadbyte(szName[p-szName-1]))
	{
		p--;
		p[0] = 0;
		p = strrchr(szName, '\\');
	}
	
	char* p1 = strrchr(szName, '\\');
	while(p>szName && isleadbyte(szName[p-szName-1]))
	{
		p1--;
		p1[0] = 0;
		p1 = strrchr(szName, '\\');
	}
	if(p1) p1[1] = 0;
	strcat(p1, DCCOPTION);
	strcpy(m_DCINIPath,szName);
}


DeviceControlCommand::DeviceControlCommand()
{
	GetDCConfigFilePath();
}

int DeviceControlCommand::ParseCommand(unsigned char* pdata)//将0x报文匹配出命令类型
{   
	int commandType=-1;
	if (IsOneCommand(pdata))
	{
		switch(pdata[11])
		{			
			case YKCMD_NUM:					//数字
				commandType = YKCMD_NUM;  
			break;

			case YKCMD_AUTOOPEN:			//轮训开
				commandType = YKCMD_AUTOOPEN; 
			break;

			case YKCMD_AUTOCLOSE:			//轮训关
				commandType = YKCMD_AUTOCLOSE; 
			break;

			case YKCMD_NEAR:				//推近开始
				commandType = YKCMD_NEAR; 
			break;

			case YKCMD_FAR:					//拉远开始
				commandType = YKCMD_FAR; 
			break;

			case YKCMD_JJ_STOP:				//聚焦操作停止(推近拉远停止)
				commandType = YKCMD_JJ_STOP;
			break;

			case YKCMD_SELDSONE:			//选择ds one
			case YKCMD_SELDSTOW:			//选择ds tow
				commandType = YKCMD_SELDSTOW; 
			break;
			case YKCMD_SELFN:				//选择fn
				commandType = YKCMD_SELFN; 
			break;
			case YKCMD_UP:					//上
				commandType = YKCMD_UP; 
			break;
			case YKCMD_DOWN:			//下
				commandType = YKCMD_DOWN; 
			break;
			case YKCMD_UPDOWN_STOP:			//上下停
				commandType = YKCMD_UPDOWN_STOP; 
			break;
			case YKCMD_LEFT:				//左
				commandType = YKCMD_LEFT; 
			break;
			case YKCMD_RIGHT:				//右
				commandType = YKCMD_RIGHT; 
			break;
			case YKCMD_LEFTRIGHT_STOP:		//左右停止
				commandType = YKCMD_LEFTRIGHT_STOP; 
			break;
			case YKCMD_CLEARTOW:
			case YKCMD_CLEARONE:
				commandType = YKCMD_CLEAR;	
			break;
			default:
			break;			
		}
	}	
	return commandType;		
}

bool DeviceControlCommand::IsOneCommand(unsigned char* pdata)
{
	bool bVal = false;
	if (0 == memcmp(pdata, g_YKCmdHead, 4))
	{
		//if (0 == memcmp(pdata+14, pdata+14, 3))//?
		if (0 == memcmp(pdata+12, pdata+12, 3))
		{
			bVal = true;
		}
	}
	return bVal;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -