#include "StdAfx.h" #include "JoyKeybordControl.h" CJoyKeybordControl::CJoyKeybordControl(void) { } CJoyKeybordControl::~CJoyKeybordControl(void) { } // 串口收来自视频键盘的数 void GetSerialPortData(char *buffer,const DWORD size) { memcpy(g_payloadCtrlInstructionFromVK, buffer, size); // 如果控制指令来自视频键盘 if (g_bCtrlFromSoftware == FALSE) { if (0x12 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 2; g_sCtrlInstruction = g_str_VerticalView; } else if (0x13 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 3; g_sCtrlInstruction = g_str_AutoScan; } else if (0x11 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 1; g_sCtrlInstruction = g_str_ManualSlew; } else if (0x1C == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 10; g_sCtrlInstruction = g_str_TurretStow; } else if (0x1D == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 11; g_sCtrlInstruction = g_str_TurretFWD; } else if (0x23 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 14; g_sCtrlInstruction = g_str_CorrelationTracking; } else if (0x24 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 15; g_sCtrlInstruction = g_str_CentroidBlackTracking; } else if (0x25 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 16; g_sCtrlInstruction = g_str_CentroidWhiteTracking; } else if (0x40 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 25; g_sCtrlInstruction = g_str_LRFPowerON; } else if (0x41 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 26; g_sCtrlInstruction = g_str_LRFPowerOFF; } else if (0x42 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 27; g_sCtrlInstruction = g_str_LRFArmed; } else if (0x43 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 28; g_sCtrlInstruction = g_str_LRFSafe; } else if (0xA2 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol =29; g_sCtrlInstruction = g_str_LDArmed; } else if (0x45 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 30; g_sCtrlInstruction = g_str_LDSafe; } else if (0x46 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 31; g_sCtrlInstruction = g_str_LaserNo1; } else if (0x47 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 32; g_sCtrlInstruction = g_str_LaserNo2; } else if (0x48 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 33; g_sCtrlInstruction = g_str_LaserNo3; } else if (0x49 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 34; g_sCtrlInstruction = g_str_LaserNo4; } else if (0x4A == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 35; g_sCtrlInstruction = g_str_LaserNo5; } else if (0x4B == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 36; g_sCtrlInstruction = g_str_LaserNo6; } else if (0x4C == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 37; g_sCtrlInstruction = g_str_LaserNo7; } else if (0x4D == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 38; g_sCtrlInstruction = g_str_LaserNo8; } else if (0x4E == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 39; g_sCtrlInstruction = g_str_LaserNo9; } else if (0x4F == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 40; g_sCtrlInstruction = g_str_LaserNo10; } else if (0x54 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 42; g_sCtrlInstruction = g_str_ICRON; } else if (0x55 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 43; g_sCtrlInstruction = g_str_ICROFF; } else if (0x56 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 44; g_sCtrlInstruction = g_str_DefogON; } else if (0x58 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 45; g_sCtrlInstruction = g_str_DefogOFF; } else if (0x52 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 48; g_sCtrlInstruction = g_str_EOZoomOut; } else if (0x53 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 49; g_sCtrlInstruction = g_str_EOZoomOut; } else if (0x83 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 62; g_sCtrlInstruction = g_str_IRFocusPlus; } else if (0x84 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 63; g_sCtrlInstruction = g_str_IRFocusMinus; } else if (0x85 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 65; g_sCtrlInstruction = g_str_IRZoomOut; } else if (0x86 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 66; g_sCtrlInstruction = g_str_IRZoomIn; } else if (0x87 == g_payloadCtrlInstructionFromVK[2]) { g_payloadCtrlProtocol = 67; g_sCtrlInstruction = g_str_BHWH; } else { g_payloadCtrlProtocol = 0; } } } void CJoyKeybordControl::OnInitJoyKeybord() { // 设置视频键盘串口初始化 CString fileSysName = GetSoftwareCurrentDirectory()+ "\\ini\\" + "config.ini"; char char_COMName[20]; GetPrivateProfileString("CONTROL_FROM_COM", "COMName", "0", char_COMName, 20, fileSysName); if (!m_Serial.Initialize(char_COMName, 38400)) { ::MessageBoxA(NULL, g_str_WarningSerialReceive, g_str_WarningTitle, MB_OK); } else { m_Serial.SetComReadCallback(GetSerialPortData); } } void CJoyKeybordControl::OnDestoryJoyKeybord() { // 卸载串口 if (TRUE == m_Serial.IsInitialized()) { m_Serial.DeInit(); } }