示例#1
0
        public override IMessage Decode(IFrame frame)
        {
            IMessage salida = null;
            var      msgId  = ParserUtils.MsgIdNotSet;

            var dc = new NovatelDeviceCommand(frame.Payload, this);


            if (dc.hasMessasgeId())
            {
                msgId = dc.MessageId ?? 0;
            }

            salida = GetSalida(dc);

            // Replying with ACK if needed

            /* if (dc.hasIdNum() && dc.hasMessasgeId() && !salida.IsPending())
             * {
             *   if (salida == null)
             *       salida = new UserMessage(Id, msgId);
             *   var ackStr = dc.BuildAck().ToString(true);
             *   salida.AddStringToSend(ackStr);
             * }*/

            /* CheckLastSentAndDequeueIt(dc);
             *
             * if (LastSent == null)  //&& !(new String[] {Reporte.IdReq}.Any(r=> tipoReporte == r)))
             *  SendPendingFota(ref salida);*/

            return(salida);
        }
示例#2
0
        private IMessage GetSalida(NovatelDeviceCommand dc)
        {
            var          msgid     = dc.MessageId ?? 0;
            DeviceStatus devStatus = dc.ParsePosition();
            var          gpoint    = devStatus.Position;

            return(gpoint.ToPosition(Id, msgid));
        }
示例#3
0
        public override INode Factory(IFrame frame, int formerId)
        {
            var dc      = new NovatelDeviceCommand(frame.Payload);
            var modemID = dc.ModemID; //"ModemID" en la documentacion de Novatel
            var dev     = DataProvider.FindByIMEI(modemID, this);

            return(dev);
        }