Esempio n. 1
0
        public void Test_Serialize_And_Deserialize_PullRespPacket()
        {
            var networkPacket = new PullRespPacket
            {
                ProtocolVersion = 1,
                Payload         = new PullRespPacketPayload
                {
                    Txpk = new Txpk
                    {
                        Time = DateTime.UtcNow,
                        Tmst = GpsTime.Time,
                        Codr = CodeRate.CR_LORA_4_5,
                        Data = "asd",
                        Datr = DatarateIdentifier.SF10BW125,
                        Rfch = 1,
                        Freq = 868.500000,
                        Fdev = 1,
                    }
                }
            };

            var serializer = new PicocellPacketSerializer();

            using (var stream = new MemoryStream())
            {
                var length = serializer.Serialize(networkPacket, stream);

                stream.Position = 0;

                //var message = Encoding.Default.GetString(data);

                var result = serializer.Deserialize(stream);
            }
        }
Esempio n. 2
0
        public void Can_Deserialize_PUSH_DATA_empty_object_Version_1()
        {
            var message         = "{}";
            var serializer      = new PicocellPacketSerializer();
            var protocolVersion = 1;
            var result          = new JsonPacketPayloadSerializer().Deserialize <PushDataPacketPayload>(message, protocolVersion);

            Assert.Null(result.Rxpk);
            Assert.Null(result.Stat);
        }
Esempio n. 3
0
        public void Can_Deserialize_PUSH_DATA_With_rxpk_missing_Version_1()
        {
            var message         = "{\"stat\":null}";
            var serializer      = new PicocellPacketSerializer();
            var protocolVersion = 1;
            var result          = new JsonPacketPayloadSerializer().Deserialize <PushDataPacketPayload>(message, protocolVersion);

            Assert.Null(result.Rxpk);
            Assert.Null(result.Stat);
        }
Esempio n. 4
0
        public void Can_Deserialize_PUSH_DATA_With_stat_missing_Version_1()
        {
            var message         = "{\"rxpk\":[{\"rsig\":[{\"ant\":0,\"chan\":0,\"lsnr\":8.5,\"rssis\":-114.0,\"rssic\":-114,\"rssisd\":0,\"etime\":null,\"foff\":0.0,\"ftime\":null,\"ft2d\":0,\"rfbsb\":0,\"rs2s1\":0}],\"tmst\":2214587506,\"time\":\"2018-04-25T15:09:47.5060049Z\",\"freq\":868.5,\"rfch\":0,\"did\":0,\"stat\":1,\"modu\":\"LORA\",\"datr\":\"SF7BW250\",\"codr\":\"4/5\",\"size\":10,\"data\":\"gBAAABEAAQABU7mLhJc=\"}],\"txpk_ack\":null}";
            var serializer      = new PicocellPacketSerializer();
            var protocolVersion = 1;
            var result          = new JsonPacketPayloadSerializer().Deserialize <PushDataPacketPayload>(message, protocolVersion);

            Assert.NotNull(result.Rxpk);
            Assert.Null(result.Stat);
        }
Esempio n. 5
0
        public void Test_Serialize_And_Deserialize_PushDataPacket_Version_1()
        {
            var gatewayId = "0000000000000001";

            /* Create a unique correlation token for the unit test */
            ushort correlationToken = 3;

            /* Create the packet for the network server */
            var packet = new PushDataPacket
            {
                ProtocolVersion = 1,
                Token           = correlationToken,
                Eui             = gatewayId,
                Payload         = new PushDataPacketPayload
                {
                    Rxpk = new List <Rxpk>()
                    {
                        new RxpkV1
                        {
                            Time                   = DateTime.UtcNow,
                            Timestamp              = GpsTime.Time,
                            Channel                = 7,
                            RadioFrequencyChain    = 1,
                            Frequency              = 868.500000,
                            CrcStatus              = CrcStatus.OK,
                            Modulation             = Modulation.LORA,
                            DataRate               = DatarateIdentifier.SF7BW125,
                            CodingRate             = CodeRate.CR_LORA_4_8,
                            ReceivedSignalStrength = 112,
                            LoraSignalToNoiseRatio = 1.2,
                            Size                   = 14,
                            Data                   = "Wg3qoMwpJ5T372B9pxLIs0kbvUs=",
                        }
                    },
                    Stat = new StatV1
                    {
                        Lati = 46.24,
                        Long = 3.2523,
                        Alti = 100,
                        Time = DateTime.UtcNow,
                    },
                }
            };

            var serializer = new PicocellPacketSerializer();

            using (var stream = new MemoryStream())
            {
                var length = serializer.Serialize(packet, stream);

                stream.Position = 0;

                var result = serializer.Deserialize(stream);
            }
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            var serializer = new PicocellPacketSerializer();
            var logger     = new Logger();

            var manager = new GatewayProxyManager(new GatewayProxyFactory(serializer, logger), new UdpBinding(serializer), new IPEndPoint(IPAddress.Any, 1690), logger);

            manager.Start();

            Console.ReadKey();
        }