Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="pkt"></param>
 /// <returns></returns>
 public override PKT_INTERFACE Send(Packet pkt)
 {
     if (vcpPort != null)
     {
         if (CmdProtocol.WriteSerialPacket(vcpPort, pkt))
         {
             if (rxPacketEvent.WaitOne(3000))
             {
                 if (CmdProtocol.CheckNACKPacket(cmdRxPacket))
                 {
                     return(PKT_INTERFACE.UVC);
                 }
                 return(PKT_INTERFACE.ERROR);
             }
             else
             {
                 MessageBox.Show("Timeout to receive packet", "Warning", MessageBoxButtons.OK);
                 return(PKT_INTERFACE.ERROR);
             }
         }
         MessageBox.Show("Error in sending packet", "Error", MessageBoxButtons.OK);
         return(PKT_INTERFACE.ERROR);
     }
     MessageBox.Show("VCP port is not opened", "Warning", MessageBoxButtons.OK);
     return(PKT_INTERFACE.ERROR);
 }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        virtual public unsafe void DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (CmdProtocol.ReadSerialPacket(sender as SerialPort, ref cmdRxPacket))
            {
                if (cmdRxPacket.payload != null && cmdRxPacket.payload.Length > 0)
                {
                    fixed(byte *pBuffer = cmdRxPacket.payload)
                    {
                        Buffer.MemoryCopy((void *)pBuffer, (void *)pFrameBuffer, cmdRxPacket.payload.Length, cmdRxPacket.payload.Length);
                    }

                    rxPacketEvent.Set();    // send signal to wait object for rx packet event
                }
            }
            else
            {
                Console.WriteLine("NG");
            }
        }