Beispiel #1
0
 private static void Com_DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     byte[] ReDatas = new byte[ComDevice.BytesToRead];
     ComDevice.Read(ReDatas, 0, ReDatas.Length);//读取数据
     foreach (byte item in ReDatas)
     {
         RecvBuffer[RecvBufferIndex] = item;
         // check packet complete
         if (RecvBufferIndex > 2 && item == '+' && RecvBuffer[RecvBufferIndex - 1] == '+' && RecvBuffer[RecvBufferIndex - 2] == '+')
         {
             SerialType = (SERIAL_TYPE)RecvBuffer[0];
             ParseContent();
             SerialType      = SERIAL_TYPE.SERIAL_NONE;
             RecvBufferIndex = 0;
         }
         else
         {
             RecvBufferIndex++;
         }
         if (RecvBufferIndex == 30)
         {
             RecvBufferIndex = 0;
         }
     }
 }
Beispiel #2
0
        private static void ParseContent()
        {
            if (SerialType == SERIAL_TYPE.ADV_CONFIG_DATA && RecvBufferIndex == 29)
            {
                _advConfig.min_hall_diam1  = RecvBuffer[1];
                _advConfig.min_hall_value1 = BitConverter.ToInt16(new byte[] { RecvBuffer[2], RecvBuffer[3] }, 0);
                _advConfig.max_hall_diam1  = RecvBuffer[4];
                _advConfig.max_hall_value1 = BitConverter.ToInt16(new byte[] { RecvBuffer[5], RecvBuffer[6] }, 0);
                _advConfig.min_hall_diam2  = RecvBuffer[7];
                _advConfig.min_hall_value2 = BitConverter.ToInt16(new byte[] { RecvBuffer[8], RecvBuffer[9] }, 0);
                _advConfig.max_hall_diam2  = RecvBuffer[10];
                _advConfig.max_hall_value2 = BitConverter.ToInt16(new byte[] { RecvBuffer[11], RecvBuffer[12] }, 0);
                _advConfig.min_hall_diam3  = RecvBuffer[13];
                _advConfig.min_hall_value3 = BitConverter.ToInt16(new byte[] { RecvBuffer[14], RecvBuffer[15] }, 0);
                _advConfig.max_hall_diam3  = RecvBuffer[16];
                _advConfig.max_hall_value3 = BitConverter.ToInt16(new byte[] { RecvBuffer[17], RecvBuffer[18] }, 0);

                _advConfig.min_servo_angle1 = RecvBuffer[19];
                _advConfig.max_servo_angle1 = RecvBuffer[20];
                _advConfig.min_servo_angle2 = RecvBuffer[21];
                _advConfig.max_servo_angle2 = RecvBuffer[22];
                _advConfig.min_servo_angle3 = RecvBuffer[23];
                _advConfig.max_servo_angle3 = RecvBuffer[24];

                _advConfig.contrast_threshold = BitConverter.ToInt16(new byte[] { RecvBuffer[25], RecvBuffer[26] }, 0);

                // trigger adv config data received event
                if (advConfigDataReceived != null)
                {
                    advConfigDataReceived(_advConfig);
                }
            }
            else if (SerialType == SERIAL_TYPE.DEVICE_DATA && RecvBufferIndex == 18)
            {
                _deviceData.hall_value1 = BitConverter.ToInt16(new byte[] { RecvBuffer[1], RecvBuffer[2] }, 0);
                _deviceData.hall_value2 = BitConverter.ToInt16(new byte[] { RecvBuffer[3], RecvBuffer[4] }, 0);
                _deviceData.hall_value3 = BitConverter.ToInt16(new byte[] { RecvBuffer[5], RecvBuffer[6] }, 0);

                _deviceData.pressure = BitConverter.ToInt16(new byte[] { RecvBuffer[7], RecvBuffer[8] }, 0);
                _deviceData.contrast = BitConverter.ToInt16(new byte[] { RecvBuffer[9], RecvBuffer[10] }, 0);

                _deviceData.switch1      = RecvBuffer[11];
                _deviceData.switch2      = RecvBuffer[12];
                _deviceData.servo_angle1 = RecvBuffer[13];
                _deviceData.servo_angle2 = RecvBuffer[14];
                _deviceData.servo_angle3 = RecvBuffer[15];

                RecvBufferIndex = 0;
                SerialType      = SERIAL_TYPE.SERIAL_NONE;

                // trigger device data received event
                if (deviceDataReceived != null)
                {
                    deviceDataReceived(_deviceData);
                }
            }
        }
Beispiel #3
0
 public static extern bool H264_DVR_SerialWrite(Int32 lLoginID, SERIAL_TYPE nType, string Buffer, int nBufLen);
Beispiel #4
0
 public static extern bool H264_DVR_CloseTransComChannel(Int32 lLoginID, SERIAL_TYPE nType);
Beispiel #5
0
 public static extern bool H264_DVR_SerialWrite(Int32 lLoginID, SERIAL_TYPE nType, string Buffer, int nBufLen);
Beispiel #6
0
 public static extern bool H264_DVR_CloseTransComChannel(Int32 lLoginID, SERIAL_TYPE nType);