Esempio n. 1
0
        public ExcesoVelocidad(byte[] buffer, int pos)
        {
            PDU this_pdu = this;

            Entrante = true;
            UrbetrackCodec.DecodeHeaders(buffer, ref this_pdu, ref pos);
            switch (CL)
            {
            case 0x10:
            {
                var d = Devices.I().FindById(IdDispositivo);
                PosicionDeAviso          = null;
                PosicionDeTicket         = d.SupportsGPSPointEx ? UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d) : UrbetrackCodec.DecodeGPSPoint(buffer, ref pos);
                PosicionFinal            = d.SupportsGPSPointEx ? UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d) : UrbetrackCodec.DecodeGPSPoint(buffer, ref pos);
                VelocidadMaximaPermitida = UrbetrackCodec.DecodeFloat(buffer, ref pos);
                VelocidadMaximaAlcanzada = UrbetrackCodec.DecodeFloat(buffer, ref pos);
            }
            break;

            case 0x11:
            {
                var d = Devices.I().FindById(IdDispositivo);
                PosicionDeAviso          = UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d);
                PosicionDeTicket         = UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d);
                PosicionFinal            = UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d);
                VelocidadMaximaPermitida = UrbetrackCodec.DecodeFloat(buffer, ref pos);
                VelocidadMaximaAlcanzada = UrbetrackCodec.DecodeFloat(buffer, ref pos);
                RiderIdentifier          = Encoding.ASCII.GetString(UrbetrackCodec.DecodeBytes(buffer, ref pos, 10));
            }
            break;
            }
        }
Esempio n. 2
0
        public Command(byte[] buffer, int pos)
        {
            PDU this_pdu = this;

            UrbetrackCodec.DecodeHeaders(buffer, ref this_pdu, ref pos);
            var size = UrbetrackCodec.DecodeShort(buffer, ref pos);

            Datos = size > 0 ? UrbetrackCodec.DecodeBytes(buffer, ref pos, size) : null;
        }
Esempio n. 3
0
        public DataPage(byte[] buffer, int pos)
        {
            PDU this_pdu = this;

            Entrante = true;
            UrbetrackCodec.DecodeHeaders(buffer, ref this_pdu, ref pos);
            if (CL != 0x00)
            {
                throw new Exception("No conincide CL con el Tipo FOTA DATA.");
            }
            Pagina = UrbetrackCodec.DecodeShort(buffer, ref pos);
            Buffer = UrbetrackCodec.DecodeBytes(buffer, ref pos, 512);
        }
Esempio n. 4
0
        public Evento(byte[] buffer, int pos)
        {
            PDU this_pdu = this;

            Entrante = true;
            UrbetrackCodec.DecodeHeaders(buffer, ref this_pdu, ref pos);
            var d = Devices.I().FindById(this_pdu.IdDispositivo);

            Posicion     = UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d);
            CodigoEvento = UrbetrackCodec.DecodeShort(buffer, ref pos);
            Datos        = UrbetrackCodec.DecodeInteger(buffer, ref pos);
            Payload      = null;
            switch (CL)
            {
            case 0xFF:
                PayloadSize   = 0;
                Extra         = 0;
                RiderRevision = -1;
                if (d.Type == DeviceTypes.Types.URBETRACK_v1_0 ||
                    d.Type == DeviceTypes.Types.URBETRACK_v0_8 ||
                    d.Type == DeviceTypes.Types.URBETRACK_v0_8n)
                {
                    RiderIdentifier = Encoding.ASCII.GetString(UrbetrackCodec.DecodeBytes(buffer, ref pos, 10));
                    if (String.IsNullOrEmpty(RiderIdentifier))
                    {
                        RiderIdentifier = "0000000000";
                    }
                }
                else
                {
                    RiderIdentifier = "0000000000";
                }
                break;

            case 0xFE:
                RiderIdentifier = Encoding.ASCII.GetString(UrbetrackCodec.DecodeBytes(buffer, ref pos, 10));
                RiderRevision   = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                Extra           = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                PayloadSize     = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                if (PayloadSize > 0)
                {
                    Payload = UrbetrackCodec.DecodeBytes(buffer, ref pos, PayloadSize);
                }
                break;
            }
        }
Esempio n. 5
0
        public LoginRequest(byte[] buffer, int pos)
        {
            PDU this_pdu = this;

            Entrante = true;
            UrbetrackCodec.DecodeHeaders(buffer, ref this_pdu, ref pos);
            IMEI           = UrbetrackCodec.DecodeString(buffer, ref pos);
            Password       = UrbetrackCodec.DecodeString(buffer, ref pos);
            Firmware       = UrbetrackCodec.DecodeString(buffer, ref pos);
            ConfigRevision = UrbetrackCodec.DecodeShort(buffer, ref pos);
            var d = Fleet.Devices.I().FindById(IdDispositivo);

            switch (CL)
            {
            case 0x00:
                DetectedDeviceType = DeviceTypes.Types.SISTELCOM_v1;
                break;

            case 0x01:
                PendingMessages    = UrbetrackCodec.DecodeShort(buffer, ref pos);
                DetectedDeviceType = DeviceTypes.Types.SISTELCOM_v2;
                break;

            case 0x02:
                DetectedDeviceType = DeviceTypes.Types.URB_v0_5;
                break;

            case 0x04:
                DetectedDeviceType = DeviceTypes.Types.URBMOBILE_v0_1;
                break;

            case 0x06:
                DetectedDeviceType = DeviceTypes.Types.URB_v0_7;
                QTreeRevision      = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                XbeeHardware       = UrbetrackCodec.DecodeString(buffer, ref pos);
                XbeeFirmware       = UrbetrackCodec.DecodeString(buffer, ref pos);
                break;

            case 0x10:
                DetectedDeviceType = DeviceTypes.Types.URBETRACK_v0_8n;
                QTreeRevision      = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                XbeeHardware       = UrbetrackCodec.DecodeString(buffer, ref pos);
                XbeeFirmware       = UrbetrackCodec.DecodeString(buffer, ref pos);
                SecureId           = UrbetrackCodec.DecodeString(buffer, ref pos);
                break;

            case 0x11:
            case 0x12:
            case 0x13:
            case 0x14:
                DetectedDeviceType = CL <= 0x12 ? DeviceTypes.Types.URBETRACK_v0_8 : DeviceTypes.Types.URBETRACK_v1_0;
                QTreeRevision      = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                if (CL > 0x12)
                {
                    MessagesRevision = UrbetrackCodec.DecodeInteger(buffer, ref pos);
                }
                XbeeHardware = UrbetrackCodec.DecodeString(buffer, ref pos);
                XbeeFirmware = UrbetrackCodec.DecodeString(buffer, ref pos);
                SecureId     = UrbetrackCodec.DecodeString(buffer, ref pos);
                if (CL == 0x11 || CL == 0x13)
                {
                    GPSPoint        = UrbetrackCodec.DecodeGPSPointEx(buffer, ref pos, d);
                    RiderIdentifier = Encoding.ASCII.GetString(UrbetrackCodec.DecodeBytes(buffer, ref pos, 10));
                }
                break;

            default:
                DetectedDeviceType = DeviceTypes.Types.UNKNOW_DEVICE;
                break;
            }
        }