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); }
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); } }