protected void SetLoraData(RecievedData e, TrackerUpdateEvent tracker) { if (e is Ic880aRecievedObj) { Ic880aRecievedObj ic = e as Ic880aRecievedObj; tracker.Bandwidth = ic.Bandwidth; tracker.Calculatedcrc = ic.Calculatedcrc; tracker.Codingrate = ic.CodingRate; tracker.Crcstatus = ic.CrcStatus; tracker.Frequency = ic.Frequency; tracker.Recieverinterface = ic.Interface; //tracker.Modulation = ic.Modulation; tracker.Recieverradio = ic.Radio; tracker.Snrmax = ic.SnrMax; tracker.Snrmin = ic.SnrMin; tracker.Spreadingfactor = ic.Spreadingfactor; tracker.Time = ic.Time; } if (e is DragionoRecievedObj) { DragionoRecievedObj dragino = e as DragionoRecievedObj; tracker.Freqerror = dragino.FreqError; tracker.Crcstatus = e.Crc ? "Ok" : "Bad"; } tracker.Rssi = e.Rssi; tracker.Snr = e.Snr; tracker.Receivedtime = e.RecievedTime; }
private void HandleRecievedData() { if (this._istransmitting) { return; } lock (this.HandleRecievedDataLock) { // you can read received data as an Arduino String Int16 state = this.ReadData(out Byte[] data); DragionoRecievedObj d = new DragionoRecievedObj(); if (state == Errorcodes.ERR_NONE) { // packet was successfully received //this.Debug("[SX1278] Received packet!"); // print data of the packet d.Data = data; //this.Debug("[SX1278] Data:\t\t"+ BitConverter.ToString(d.Data).Replace("-", " ")); // print RSSI (Received Signal Strength Indicator) d.Rssi = this.GetRSSI(); //this.Debug("[SX1278] RSSI:\t\t" + d.Rssi + " dBm"); // print SNR (Signal-to-Noise Ratio) d.Snr = this.GetSNR(); //this.Debug("[SX1278] SNR:\t\t"+d.Snr+ " dB"); // print frequency error d.FreqError = this.GetFrequencyError(); //this.Debug("[SX1278] Frequency error:\t"+ d.FreqError+ " Hz"); this.RaiseRecieveEvent(d); } else if (state == Errorcodes.ERR_CRC_MISMATCH) { // packet was received, but is malformed //this.Debug("[SX1278] CRC error!"); d.Data = data; //this.Debug("[SX1278] Data:\t\t" + BitConverter.ToString(d.Data).Replace("-", " ")); d.Crc = false; this.RaiseRecieveEvent(d); } else { // some other error occurred this.Debug("[SX1278] Failed, code " + state); } // put module back to listen mode _ = this.StartReceive(0, Constances.SX127X_RXCONTINUOUS); } }