Esempio n. 1
0
        public ESP3PacketType10(ERP2Data erp2data, bool repeated = false)
        {
            this.data_builded_ = erp2data.build();
            if (repeated)
            {
                this.data_builded_ = erp2data.convToRepeated(this.data_builded_);
            }
            this.data_length_     = (ushort)(this.data_builded_.Length);
            this.optional_length_ = 0x02;
            this.packet_type_     = (byte)PT.RADIO_ERP2;
            this.optional_data_   = new byte[2] {
                3, 0xFF
            };

            // dbm
            System.Random r = new System.Random();
            this.optional_data_[1] = (byte)r.Next(0, 100);
        }
Esempio n. 2
0
        private void buildAndSend(ERP2Data erp2data)
        {
            // build data
            ESP3Packet esp3pkt = new ESP3PacketType10(erp2data);

            if (checkBoxRepeated.Checked)
            {
                // repeated telegram
                esp3pkt = null;
                esp3pkt = new ESP3PacketType10(erp2data, true);
            }

            // Serial port data send
            if (serial_connect_)
            {
                byte[] packet = esp3pkt.build();
                if (false) // for test
                {
                    switch (random.Next(5))
                    {
                    case 0:
                    {
                        // Invalid change of 1 byte
                        // ESP3 invalid CRC
                        int  pos   = random.Next(packet.Length);
                        byte value = (byte)(random.Next(256));
                        packet[pos] = value;
                    }
                    break;

                    case 1:
                    {
                        // Invalid change of 1 byte
                        // ESP3 valid CRC
                        int  pos   = random.Next(packet.Length);
                        byte value = (byte)(random.Next(256));
                        packet = esp3pkt.buildInvalid(pos, value);         // overwrite
                    }
                    break;

                    case 2:
                    {
                        // Invalid length
                        // ESP3 valid CRC
                        int  pos   = 1;
                        byte value = (byte)(random.Next(256));
                        packet = esp3pkt.buildInvalid(pos, value);         // overwrite
                    }
                    break;

                    case 3:
                    {
                        // Invalid length (short)
                        int    len     = random.Next(packet.Length);
                        byte[] packet2 = new byte[len];
                        Array.Copy(packet, packet2, len);
                        packet = packet2;
                    }
                    break;

                    default:
                        break;
                    } // switch
                }
                serial_SendData(packet);
            }
        }