示例#1
0
文件: Arduino.cs 项目: herisant/t22-4
        /// <summary>
        /// Read messages from the Arduino
        /// </summary>
        /// <param name="message"></param>
        /// <returns>Returns amount of bytes</returns>
        public byte Read(MMessage message)
        {
            if (this.BytesToRead > 5 &&
                this.ReadByte() == message.Begin[0] &&
                this.ReadByte() == message.Begin[1])
            {
                //Read action & Data lenght
                message.Action  = (byte)this.ReadByte();
                message.DataLen = (byte)this.ReadByte();
                if (message.DataLen > 58)
                {
                    message.DataLen = 58;
                }
                this.Read(message.Data, 0, message.DataLen);
                message.Data[message.DataLen] = 0;

                //Corruption check
                this.Read(message.Corruptioncheck, 0, 2);

                message.PossiblyCorrupt = message.Corruptioncheck[0] != message.End[0] || message.Corruptioncheck[1] != message.End[1];

                return((byte)(message.DataLen + 6));
            }
            return(0);
        }
示例#2
0
文件: Arduino.cs 项目: herisant/t22-4
        /// <summary>
        /// Write a message to Arduino
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public byte Write(MMessage message)
        {
            message.Header[0] = message.Action;
            message.Header[1] = message.DataLen;

            this.Write(message.Begin, 0, 2);
            this.Write(message.Header, 0, 2);
            this.Write(message.Data, 0, message.DataLen);
            this.Write(message.End, 0, 2);

            return((byte)(message.DataLen + 6));
        }
示例#3
0
        /// <summary>
        /// Write a message to Arduino
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public byte Write(MMessage message)
        {
            message.Header[0] = message.Action;
            message.Header[1] = message.DataLen;

            this.Write(message.Begin, 0, 2);
            this.Write(message.Header, 0, 2);
            this.Write(message.Data, 0, message.DataLen);
            this.Write(message.End, 0, 2);

            return (byte)(message.DataLen + 6);
        }
示例#4
0
 public RP6Control(Arduino arduino)
 {
     _arduino = arduino;
     _moveMessage = new MMessage();
 }
示例#5
0
        /// <summary>
        /// Read messages from the Arduino
        /// </summary>
        /// <param name="message"></param>
        /// <returns>Returns amount of bytes</returns>
        public byte Read(MMessage message)
        {
            if (this.BytesToRead > 5 &&
                this.ReadByte() == message.Begin[0] &&
                this.ReadByte() == message.Begin[1])
            {
                //Read action & Data lenght
                message.Action = (byte)this.ReadByte();
                message.DataLen = (byte)this.ReadByte();
                if (message.DataLen > 58)
                {
                    message.DataLen = 58;
                }
                this.Read(message.Data, 0, message.DataLen);
                message.Data[message.DataLen] = 0;

                //Corruption check
                this.Read(message.Corruptioncheck, 0, 2);

                message.PossiblyCorrupt = message.Corruptioncheck[0] != message.End[0] || message.Corruptioncheck[1] != message.End[1];

                return (byte)(message.DataLen + 6);
            }
            return 0;
        }