示例#1
0
        public override PDU Decode(byte[] buffer, ref Codes.DecodeErrors outcode)
        {
            var high_command = Convert.ToChar(buffer[0]);

            outcode = Codes.DecodeErrors.NoError;
            switch (high_command)
            {
            case 'Q':
                return(FactoryPosicion(buffer));

            case 'H':
                return(FactoryHandSake(buffer));

            case 'E':
                return(FactoryEntrante(buffer));

            case 'R': {
                var partes = Encoding.ASCII.GetString(buffer).Split(";".ToCharArray());
                return(new PDU
                    {
                        CH = (byte)Codes.HighCommand.OKACK,
                        CL = 0,
                        Seq = Convert.ToByte(partes[1]),
                        IdDispositivo = Convert.ToInt16(partes[2])
                    });
            }

            default:
                outcode = Codes.DecodeErrors.UnknownMessage;
                return(null);
            }
        }
示例#2
0
 /* el decodificador propio del protocolo que implemente */
 public abstract PDU Decode(byte[] buffer, ref Codes.DecodeErrors outcode);