using System; using Fraunhofer.Fit.Iot.Lora.lib; using Fraunhofer.Fit.Iot.Lora.Trackers; namespace Fraunhofer.Fit.Iot.Lora.Events { public class TrackerUpdateEvent : UpdateEventHelper { public String Name { get; private set; } public Double PacketRssi { get; private set; } public Double Rssi { get; private set; } public Double Snr { get; private set; } public DateTime Receivedtime { get; private set; } public Double BatteryLevel { get; private set; } public Byte Recieverradio { get; private set; } public Byte Recieverinterface { get; private set; } public UInt32 Frequency { get; private set; } public Int32 Bandwidth { get; private set; } public Byte Codingrate { get; private set; } public Byte Spreadingfactor { get; private set; } public String Crcstatus { get; private set; } public UInt16 Calculatedcrc { get; private set; } public Double Snrmax { get; private set; } public Double Snrmin { get; private set; } public UInt32 Time { get; private set; } public String Host => Environment.MachineName; public TrackerUpdateEvent(Tracker tracker) { this.PacketRssi = tracker.PacketRssi; this.Rssi = tracker.Rssi; this.Snr = tracker.Snr; this.Receivedtime = tracker.ReceivedTime; this.Name = tracker.Name; this.BatteryLevel = tracker.BatteryLevel; this.Recieverradio = tracker.RecieverRadio; this.Recieverinterface = tracker.RecieverInterface; this.Frequency = tracker.Frequency; this.Bandwidth = tracker.Bandwidth; this.Codingrate = tracker.CodingRate; this.Spreadingfactor = tracker.SpreadingFactor; this.Crcstatus = tracker.CRCStatus; this.Calculatedcrc = tracker.CalculatedCRC; this.Snrmax = tracker.SnrMax; this.Snrmin = tracker.SnrMin; this.Time = tracker.Time; } public override String MqttTopic() => base.MqttTopic() + this.Name; public override String ToString() => this.Name + " -- " + "Packet: PRssi: " + this.PacketRssi + " Rssi: " + this.Rssi + " SNR: (" + this.Snr + "/" + this.Snrmin + "/" + this.Snrmax + ") Time: " + this.Receivedtime.ToString() + " Battery: " + this.BatteryLevel + " Radio: " + this.Recieverradio + " Interface: " + this.Recieverinterface + " Freq: " + this.Frequency + " BW: " + this.Bandwidth + " CR: " + this.Codingrate + " SF: " + this.Spreadingfactor + " CRC: " + this.Crcstatus + "(0x" + this.Calculatedcrc.ToString("X4") + ") Time: " + this.Time; } }