Example #1
0
        public void Read()
        {
            while (_serialPort.IsOpen)
            {
                try
                {
                    int data = _serialPort.ReadByte();
                    if (data != -1)
                    {
                        LynxaMessageInfo lynxa_message_info = _myMessageHandler.ParsePacket((byte)data);
                        if (lynxa_message_info != null)
                        {
                            LynxaMessageId lynxa_message_id = (LynxaMessageId)lynxa_message_info.messageId;
                            switch (lynxa_message_id)
                            {
                            case LynxaMessageId.DeviceProperty10Id:
                                DeviceProperty_10 deviceProperty_10 = DeviceProperty_10.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                LynxaPacketReceivedEvent?.Invoke(this, deviceProperty_10);
                                break;

                            case LynxaMessageId.GnggaMessage100Id:
                                GnggaMessage_100 nmeaRecord_100 = GnggaMessage_100.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                LynxaPacketReceivedEvent?.Invoke(this, nmeaRecord_100);
                                break;

                            case LynxaMessageId.WifiStationList102Id:
                                WifiStationList_102 wifiStationList_102 = WifiStationList_102.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                LynxaPacketReceivedEvent?.Invoke(this, wifiStationList_102);
                                break;

                            case LynxaMessageId.ModemParameters103Id:
                                ModemParameters_103 modemParameters_103 = ModemParameters_103.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                LynxaPacketReceivedEvent?.Invoke(this, modemParameters_103);
                                break;
                            }
                        }
                    }
                }
                catch (TimeoutException te)
                {
                    //comes here if there was a timeout
                }
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            GnggaMessage_100 gngga_message_100 = new GnggaMessage_100
            {
                LatitudeDegrees  = 100,
                LongitudeDegrees = 200
            };

            using (var output = File.Create("nmea_serialized.dat"))
            {
                gngga_message_100.WriteTo(output);
            }

            using (var input = File.OpenRead("nmea_serialized.dat"))
            {
                gngga_message_100 = GnggaMessage_100.Parser.ParseFrom(input);
            }

            Console.WriteLine("Nmea Record Contents");
            Console.WriteLine("Latitude Degrees=" + gngga_message_100.LatitudeDegrees);
            Console.WriteLine("Longitude Degrees=" + gngga_message_100.LongitudeDegrees);
            Console.WriteLine("COMPLETE!");
        }
Example #3
0
        static void Main(string[] args)
        {
            SerialPort _serialPort = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);

            _serialPort.Handshake    = Handshake.None;
            _serialPort.ReadTimeout  = 1000;
            _serialPort.WriteTimeout = 1000;
            _serialPort.Open();
            MessageHandler   my_message_handler = new MessageHandler();
            LynxaMessageInfo lynxa_message_info = new LynxaMessageInfo();

            const string fileName = "LynxaMessage.dat";
            BinaryWriter writer   = new BinaryWriter(File.Open(fileName, FileMode.Create));

            while (true)
            {
                try
                {
                    int data = _serialPort.ReadByte();
                    if (data != -1)
                    {
                        writer.Write((byte)data);
                        lynxa_message_info = my_message_handler.ParsePacket((byte)data);
                        if (lynxa_message_info != null)
                        {
                            Console.WriteLine("------------------------------------");
                            LynxaMessageId lynxa_message_id = (LynxaMessageId)lynxa_message_info.messageId;
                            switch (lynxa_message_id)
                            {
                            case LynxaMessageId.GnggaMessage100Id:
                                GnggaMessage_100 nmeaRecord_100 = GnggaMessage_100.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                Console.WriteLine("Nmea Record Received:");
                                Console.WriteLine($"epochTime:{nmeaRecord_100.EpochTime}");
                                Console.WriteLine($"LatitudeMinutes:{nmeaRecord_100.LatitudeMinutes}");
                                Console.WriteLine($"LatitudeDegrees:{nmeaRecord_100.LatitudeDegrees}");
                                Console.WriteLine($"LatitudeCardinalAscii:{nmeaRecord_100.LatitudeCardinalAscii}");
                                Console.WriteLine($"longitudeMinutes:{nmeaRecord_100.LongitudeMinutes}");
                                Console.WriteLine($"longitudeDegrees:{nmeaRecord_100.LongitudeDegrees}");
                                Console.WriteLine($"longitudeCardinalAscii:{nmeaRecord_100.LongitudeCardinalAscii}");
                                Console.WriteLine($"numberOfSatellitesInUse:{nmeaRecord_100.NumberOfSatellitesInUse}");
                                break;

                            case LynxaMessageId.WifiStationList102Id:
                                WifiStationList_102 wifiStationList_102 = WifiStationList_102.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                Console.WriteLine($"epochTime:{wifiStationList_102.EpochTime}");
                                Console.WriteLine($"Number of Wifi Stations:{wifiStationList_102.NumberStationsFound}");
                                for (int i = 0; i < wifiStationList_102.NumberStationsFound; i++)
                                {
                                    Console.Write($"BSSID:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[0]}:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[1]}:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[2]}:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[3]}:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[4]}:");
                                    Console.Write($"{wifiStationList_102.WifiStations[i].Bssid[5]}\r\n");
                                    Console.WriteLine($"RSSI:{wifiStationList_102.WifiStations[i].Rssi}");
                                }
                                break;

                            case LynxaMessageId.ModemParameters103Id:
                                ModemParameters_103 modemParameters_103 = ModemParameters_103.Parser.ParseFrom(lynxa_message_info.payloadBuffer);
                                Console.WriteLine("ModemParameters Received:");
                                Console.WriteLine($"epochTime:{modemParameters_103.EpochTime}");
                                Console.WriteLine($"CellId:{modemParameters_103.CellId}");
                                Console.WriteLine($"PLMN:{modemParameters_103.Plmn}");
                                Console.WriteLine($"TAC:{modemParameters_103.Tac}");

                                var result = LynxaDeviceMessageTranslator.TranslateModemParameters(modemParameters_103);


                                Console.WriteLine($"MCC:{result.MCC}");
                                Console.WriteLine($"MNC:{result.MNC}");
                                Console.WriteLine($"LAC:{result.LAC}");
                                break;
                            }
                        }
                    }
                }
                catch (TimeoutException te)
                {
                    //do nothing
                    if (Console.KeyAvailable)
                    {
                        //save file and exit
                        writer.Close();
                        break;
                    }
                }
            }
        }