Example #1
0
    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;
    }