public void SendMessage() { if (!MyCOMDevice.IsFindDeviceDt) { return; } byte[] buffer = new byte[HID_BUF_LEN]; buffer[0] = WriteHead_1; buffer[1] = WriteHead_2; buffer[HID_BUF_LEN - 2] = WriteEnd_1; buffer[HID_BUF_LEN - 1] = WriteEnd_2; int iSeed = (int)DateTime.Now.ToBinary(); Random ra = new Random(iSeed); buffer[6] = (byte)ra.Next(0, 253); byte jiGuangQiCount = CSampleGrabberCB.IndexMousePoint; //buffer[7]: 0 -> 激光器P1, 1 -> 激光器P2. switch (CSampleGrabberCB.m_mode) { case MODE.MODE_MOTION: if (!CSampleGrabberCB.IsCGCameraQuickCOM) { if (IsCloseAllJiGuangQi) { //用于冷却关闭所有激光器,确保摄像机画面同一时刻只有一个激光点. buffer[7] = 0x00; IsCloseAllJiGuangQi = false; if (CSampleGrabberCB.GetInstance() != null) { CSampleGrabberCB.GetInstance().AddIndexMousePoint(); } } else { if (jiGuangQiCount % CSampleGrabberCB.JiGuangLQ == 0) { buffer[7] = (byte)(0x01 << (jiGuangQiCount / CSampleGrabberCB.JiGuangLQ)); } } } else { if (jiGuangQiCount % CSampleGrabberCB.JiGuangLQ == 0) { buffer[7] = (byte)(0x01 << (jiGuangQiCount / CSampleGrabberCB.JiGuangLQ)); } else { //用于冷却关闭所有激光器,确保摄像机画面同一时刻只有一个激光点. buffer[7] = 0x00; } } //ScreenLog.Log("jiGuangQiCount *** "+jiGuangQiCount+ //", buf07 -> "+buffer[7]+ //", IsCloseAllJiGuangQi -> "+IsCloseAllJiGuangQi); break; case MODE.MODE_SET_CALIBRATION: buffer[7] = 0xFF; break; } MyCOMDevice.ComThreadClass.WriteByteMsg = buffer; //byte[] bufferTmp = {0x02, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a}; //MyCOMDevice.ComThreadClass.WriteByteMsg = bufferTmp; }