コード例 #1
0
ファイル: Packet.cs プロジェクト: MONICA-Project/lora-bot
        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;
        }
コード例 #2
0
ファイル: Dragino.cs プロジェクト: MONICA-Project/lora
        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);
            }
        }