void COMTxData() { if (XkGameCtrl.IsGameOnQuit) { return; } try { if (XKLaserPosCtrl.GetInstance() != null) { XKLaserPosCtrl.GetInstance().SendMessage(); } IsReadComMsg = false; _SerialPort.Write(WriteByteMsg, 0, WriteByteMsg.Length); _SerialPort.DiscardOutBuffer(); WriteCount++; } catch (Exception exception) { if (XkGameCtrl.IsGameOnQuit || ComThread == null) { return; } Debug.Log("Tx error:COM!!! " + exception); } }
public static XKLaserPosCtrl GetInstance() { if (_Instance == null) { _Instance = new XKLaserPosCtrl(); // XKOpenCGCamera.GetInstance(); // MyCOMDevice.GetInstance(); } return(_Instance); }
void CheckBufferCB(byte[] pBuffer, int bufferLen) { //CallGameUpdateZhunXingZuoBiao(new Point(getFrameNum, getFrameNum + 2)); //test. if (m_mode == MODE.MODE_MOTION) { if (getFrameNum >= 3333) { getFrameNum = 0; } //3333 = 10000 / (1000 / 320); -> 每隔10秒获取一次干扰光源信息,320是采集器的刷新帧率. if (getFrameNum % 3333 == 0) { //ScreenLog.Log("getUnwantedPoint..."); getUnwantedPoint(pBuffer); } getFrameNum++; } else { if (getFrameNum == 0) { getFrameNum = 1; getUnwantedPoint(pBuffer); OpenPlayerJiGuangQi(); return; } } if (unwantedPointNum > 0) { //ScreenLog.Log("subUnWantedPoint -> pointNum "+unwantedPointNum); subUnWantedPoint(pBuffer, bufferLen); } switch (m_mode) { case MODE.MODE_SET_CALIBRATION: if (g_bBeginDrawRectangle) { if (m_bRectifyState) { int nled = m_nLed; Point pointVal = GetPointToConvert(pBuffer); //Con::printf("nled %d, m_nled %d",nled, m_nLed); //find pointJiGuangQi if (nled != m_nLed && 4 >= m_nLed) { //m_p4的坐标顺序与光枪校准顺序相反. m_p4[4 - m_nLed].X = pointVal.X; m_p4[4 - m_nLed].Y = pointVal.Y; if (4 - m_nLed == 0) { CheckMP4Info(); } m_bRectifyState = false; //添加代码,改变校准图片信息. CallGameChangeJiaoZhunPic(); } } //光枪校准已经完成. if (4 == m_nLed) { SetCalibrationInfo(); g_bBeginDrawRectangle = false; m_mode = MODE.MODE_MOTION; } } break; case MODE.MODE_MOTION: if (!m_bFirstInst) { SetCalibrationInfo(); } ConvertGrayBitmapFindPoint(pBuffer); if (m_bCurPointModified) { //找到激光器亮点坐标信息. m_bCurPointModified = false; //改变准星坐标. CallGameUpdateZhunXingZuoBiao(m_curMousePoint); } if (IsCGCameraQuickCOM) { AddIndexMousePoint(); } else { //通知XKLaserPosCtrl下一帧数据关闭所有激光器. XKLaserPosCtrl.SetIsCloseAllJiGuangQi(true); } break; default: break; } return; }