Exemple #1
0
        private Response parseACK(Byte[] rawAckPacket)
        {
            Debug.WriteLine(String.Concat("ACK raw=", DebugGoodies.ByteArrayToString(rawAckPacket)));
            Byte num  = rawAckPacket[2];
            Byte num1 = rawAckPacket[3];
            Byte num2 = rawAckPacket[4];
            Byte num3 = rawAckPacket[(Int32)rawAckPacket.Length - 1];

            checksumFor(rawAckPacket);
            return(new Response(_robot, (ResponseCode)num, num1, null));
        }
Exemple #2
0
        public Response processRawBytes(Byte[] ba)
        {
            Response response;

            Byte[] numArray = ba;
            for (Int32 i = 0; i < (Int32)numArray.Length; i++)
            {
                Byte num = numArray[i];
                _rawData.Add(num);
            }
            if (_rawData.Count >= 6)
            {
                Debug.WriteLine(String.Concat("IN:  ", DebugGoodies.ByteArrayToString(_rawData)));
                if ((_rawData[0] != 255 ? true : _rawData[1] != 255))
                {
                    if ((_rawData[0] != 255 ? true : _rawData[1] != 254))
                    {
                        throw new InvalidResponseException("Responses must be initiated with 0xFF", ba);
                    }
                    response = parseAsync();
                }
                else
                {
                    Byte  item  = _rawData[2];
                    Byte  item1 = _rawData[3];
                    Int32 num1  = 5 + _rawData[4];
                    if (_rawData.Count >= num1)
                    {
                        Object[] objArray = new Object[] { "ACK rc={0:x2} seq=", item1, " len=", num1 };
                        String   str      = String.Concat(objArray);
                        objArray = new Object[] { item };
                        Debug.WriteLine(str, objArray);
                        Byte[] numArray1 = new Byte[num1];
                        _rawData.CopyTo(0, numArray1, 0, num1);
                        _rawData.RemoveRange(0, num1);
                        response = parseACK(numArray1);
                    }
                    else
                    {
                        response = null;
                    }
                }
            }
            else
            {
                response = null;
            }
            return(response);
        }
Exemple #3
0
 internal InvalidResponseException(String msg, Byte[] theInvalidArray)
     : base(String.Concat(msg, " data: ", DebugGoodies.ByteArrayToString(theInvalidArray)))
 {
 }