/// <summary>
 /// 串口发送消息函数
 /// </summary>
 /// <param name="ct"></param>
 public void SendMessage(CommunicationProtocol.CMDTYPE ct)
 {
     CommunicationProtocol.ProtocolMessage sMsg = new CommunicationProtocol.ProtocolMessage(ct);
     if (controlPort.IsOpen)
     {
         controlPort.Write(sMsg.MsgFrame, 0, sMsg.MsgTotalLength);
         controlPort.BaseStream.Flush();
     }
 }
示例#2
0
        /// <summary>
        /// Get messages from the serial port
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ProcessControllerMessage(object sender, PlatformController.MsgEventArgs e)
        {
            CommunicationProtocol.CMDTYPE ct = e.msg.cmdType;

            string txt = "Recieved "
                         + Enum.GetName(typeof(CommunicationProtocol.CMDTYPE), ct)
                         + " message, payload: ";

            if (ct == CommunicationProtocol.CMDTYPE.DebugMessage)
            {
                for (int i = 0; i < e.msg.len; i++)
                {
                    txt += (char)e.msg.payload[i];
                }
            }
            else
            {
                txt += TextBoxMethod.ByteArrayToString(e.msg.payload, 0, e.msg.len);
            }
#if true
            switch (ct)
            {
            case CommunicationProtocol.CMDTYPE.DetectCustomerIn:
            {
                pcontroller.SendMessage(CommunicationProtocol.CMDTYPE.DetectCustomerInRespond);
                break;
            }

            case CommunicationProtocol.CMDTYPE.OpenDoorCmdRespond:
            {
                break;
            }

            case CommunicationProtocol.CMDTYPE.DetectCustomerOut:
            {
                pcontroller.SendMessage(CommunicationProtocol.CMDTYPE.DetectCustomerOutRespond);
                break;
            }

            case CommunicationProtocol.CMDTYPE.DebugMessage:
            {
                break;
            }

            case CommunicationProtocol.CMDTYPE.EmgMsg:
            {
                break;
            }

            case CommunicationProtocol.CMDTYPE.ErrorMsg:
            {
                break;
            }
            }
#endif
            SetDataText(richTextBox1, txt);
        }
示例#3
0
        private void GetEncoderMessage(object sender, PlatformController.MsgEventArgs e)
        {
            CommunicationProtocol.CMDTYPE ct = e.msg.cmdType;

            string txt = "Recieved "
                         + Enum.GetName(typeof(CommunicationProtocol.CMDTYPE), ct)
                         + " message, payload: ";

            switch (ct)
            {
            case CommunicationProtocol.CMDTYPE.EncoderUpdate:
            {
                int val = BitConverter.ToInt32(e.msg.payload, 0);
                SetDataText(richTextBox2, val.ToString());
                break;
            }
            }
        }