RadioLib
Universal wireless communication library for Arduino
Loading...
Searching...
No Matches
PhysicalLayer.h
1#if !defined(_RADIOLIB_PHYSICAL_LAYER_H)
2#define _RADIOLIB_PHYSICAL_LAYER_H
3
4#include "../../TypeDef.h"
5#include "../../Module.h"
6
7// common IRQ values - the IRQ flags in RadioLibIrqFlags_t arguments are offset by this value
8enum RadioLibIrqType_t {
9 RADIOLIB_IRQ_TX_DONE = 0x00,
10 RADIOLIB_IRQ_RX_DONE = 0x01,
11 RADIOLIB_IRQ_PREAMBLE_DETECTED = 0x02,
12 RADIOLIB_IRQ_SYNC_WORD_VALID = 0x03,
13 RADIOLIB_IRQ_HEADER_VALID = 0x04,
14 RADIOLIB_IRQ_HEADER_ERR = 0x05,
15 RADIOLIB_IRQ_CRC_ERR = 0x06,
16 RADIOLIB_IRQ_CAD_DONE = 0x07,
17 RADIOLIB_IRQ_CAD_DETECTED = 0x08,
18 RADIOLIB_IRQ_TIMEOUT = 0x09,
19 RADIOLIB_IRQ_NOT_SUPPORTED = 0x1F, // this must be the last value, intentionally set to 31
20};
21
22// some commonly used default values - defined here to ensure all modules have the same default behavior
23#define RADIOLIB_IRQ_RX_DEFAULT_FLAGS ((1UL << RADIOLIB_IRQ_RX_DONE) | (1UL << RADIOLIB_IRQ_TIMEOUT) | (1UL << RADIOLIB_IRQ_CRC_ERR) | (1UL << RADIOLIB_IRQ_HEADER_VALID) | (1UL << RADIOLIB_IRQ_HEADER_ERR))
24#define RADIOLIB_IRQ_RX_DEFAULT_MASK ((1UL << RADIOLIB_IRQ_RX_DONE))
25#define RADIOLIB_IRQ_CAD_DEFAULT_FLAGS ((1UL << RADIOLIB_IRQ_CAD_DETECTED) | (1UL << RADIOLIB_IRQ_CAD_DONE))
26#define RADIOLIB_IRQ_CAD_DEFAULT_MASK ((1UL << RADIOLIB_IRQ_CAD_DETECTED) | (1UL << RADIOLIB_IRQ_CAD_DONE))
27
32struct LoRaRate_t {
35
37 float bandwidth;
38
40 uint8_t codingRate;
41};
42
47struct FSKRate_t {
49 float bitRate;
50
52 float freqDev;
53};
54
61 uint8_t bw;
62
64 uint8_t cr;
65
68};
69
84
111
118 float limit;
119};
120
132
135 uint8_t mode;
136};
137
151
154 const uint8_t* data;
155
157 size_t len;
158
160 uint8_t addr;
161};
162
165 uint8_t mode;
166};
167
184
189enum ModemType_t {
190 RADIOLIB_MODEM_FSK = 0,
191 RADIOLIB_MODEM_LORA,
192 RADIOLIB_MODEM_LRFHSS,
193};
194
199enum RadioModeType_t {
200 RADIOLIB_RADIO_MODE_NONE = 0,
201 RADIOLIB_RADIO_MODE_STANDBY,
202 RADIOLIB_RADIO_MODE_RX,
203 RADIOLIB_RADIO_MODE_TX,
204 RADIOLIB_RADIO_MODE_SCAN,
205 RADIOLIB_RADIO_MODE_SLEEP,
206};
207
217 public:
218
220 float freqStep;
221
224
225 // constructor
226
231
235 virtual ~PhysicalLayer() = default;
236
237 // basic methods
238
239 #if defined(RADIOLIB_BUILD_ARDUINO)
246 int16_t transmit(__FlashStringHelper* fstr, uint8_t addr = 0);
247
254 int16_t transmit(String& str, uint8_t addr = 0);
255 #endif
256
263 int16_t transmit(const char* str, uint8_t addr = 0);
264
272 virtual int16_t transmit(const uint8_t* data, size_t len, uint8_t addr = 0);
273
274 #if defined(RADIOLIB_BUILD_ARDUINO)
283 int16_t receive(String& str, size_t len = 0, RadioLibTime_t timeout = 0);
284 #endif
285
290 virtual int16_t sleep();
291
296 virtual int16_t standby();
297
302 virtual int16_t standby(uint8_t mode);
303
308 virtual int16_t startReceive();
309
320 virtual int16_t startReceive(uint32_t timeout, RadioLibIrqFlags_t irqFlags = RADIOLIB_IRQ_RX_DEFAULT_FLAGS, RadioLibIrqFlags_t irqMask = RADIOLIB_IRQ_RX_DEFAULT_MASK, size_t len = 0);
321
330 virtual int16_t receive(uint8_t* data, size_t len, RadioLibTime_t timeout = 0);
331
332 #if defined(RADIOLIB_BUILD_ARDUINO)
340 int16_t startTransmit(String& str, uint8_t addr = 0);
341 #endif
342
350 int16_t startTransmit(const char* str, uint8_t addr = 0);
351
359 virtual int16_t startTransmit(const uint8_t* data, size_t len, uint8_t addr = 0);
360
365 virtual int16_t finishTransmit();
366
371 virtual int16_t finishReceive();
372
373 #if defined(RADIOLIB_BUILD_ARDUINO)
381 int16_t readData(String& str, size_t len = 0);
382 #endif
383
391 virtual int16_t readData(uint8_t* data, size_t len);
392
399 virtual int16_t transmitDirect(uint32_t frf = 0);
400
406 virtual int16_t receiveDirect();
407
408 // configuration methods
409
415 virtual int16_t setFrequency(float freq);
416
422 virtual int16_t setBitRate(float br);
423
430 virtual int16_t setFrequencyDeviation(float freqDev);
431
437 virtual int16_t setDataShaping(uint8_t sh);
438
444 virtual int16_t setEncoding(uint8_t encoding);
445
451 virtual int16_t invertIQ(bool enable);
452
458 virtual int16_t setOutputPower(int8_t power);
459
466 virtual int16_t checkOutputPower(int8_t power, int8_t* clipped);
467
474 virtual int16_t setSyncWord(uint8_t* sync, size_t len);
475
481 virtual int16_t setPreambleLength(size_t len);
482
488 virtual int16_t setDataRate(DataRate_t dr);
489
495 virtual int16_t checkDataRate(DataRate_t dr);
496
502 virtual size_t getPacketLength(bool update = true);
503
508 virtual float getRSSI();
509
514 virtual float getSNR();
515
521 virtual RadioLibTime_t getTimeOnAir(size_t len);
522
530
536 uint32_t getIrqMapped(RadioLibIrqFlags_t irq);
537
543 int16_t checkIrq(RadioLibIrqType_t irq);
544
552 int16_t setIrq(RadioLibIrqFlags_t irq);
553
561 int16_t clearIrq(RadioLibIrqFlags_t irq);
562
568 virtual uint32_t getIrqFlags();
569
576 virtual int16_t setIrqFlags(uint32_t irq);
577
584 virtual int16_t clearIrqFlags(uint32_t irq);
585
591 virtual int16_t startChannelScan();
592
599 virtual int16_t startChannelScan(const ChannelScanConfig_t &config);
600
605 virtual int16_t getChannelScanResult();
606
613 virtual int16_t scanChannel();
614
622 virtual int16_t scanChannel(const ChannelScanConfig_t &config);
623
629 int32_t random(int32_t max);
630
637 int32_t random(int32_t min, int32_t max);
638
643 virtual uint8_t randomByte();
644
650 int16_t startDirect();
651
652 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
659 int16_t setDirectSyncWord(uint32_t syncWord, uint8_t len);
660
666 virtual void setDirectAction(void (*func)(void));
667
672 virtual void readBit(uint32_t pin);
673
678 int16_t available();
679
683 void dropSync();
684
691 uint8_t read(bool drop = true);
692 #endif
693
700 virtual int16_t setDIOMapping(uint32_t pin, uint32_t value);
701
706 virtual void setPacketReceivedAction(void (*func)(void));
707
711 virtual void clearPacketReceivedAction();
712
717 virtual void setPacketSentAction(void (*func)(void));
718
722 virtual void clearPacketSentAction();
723
728 virtual void setChannelScanAction(void (*func)(void));
729
733 virtual void clearChannelScanAction();
734
741 virtual int16_t setModem(ModemType_t modem);
742
748 virtual int16_t getModem(ModemType_t* modem);
749
756 virtual int16_t stageMode(RadioModeType_t mode, RadioModeConfig_t* cfg);
757
762 virtual int16_t launchMode();
763
764 #if RADIOLIB_INTERRUPT_TIMING
765
771 void setInterruptSetup(void (*func)(uint32_t));
772
777 void setTimerFlag();
778
779 #endif
780
781#if !RADIOLIB_GODMODE
782 protected:
783#endif
784 uint32_t irqMap[10] = { 0 };
785 RadioModeType_t stagedMode = RADIOLIB_RADIO_MODE_NONE;
786
787#if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
788 void updateDirectBuffer(uint8_t bit);
789#endif
790
791#if !RADIOLIB_GODMODE
792 private:
793#endif
794
795 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
796 uint8_t bufferBitPos = 0;
797 uint8_t bufferWritePos = 0;
798 uint8_t bufferReadPos = 0;
799 uint8_t buffer[RADIOLIB_STATIC_ARRAY_SIZE] = { 0 };
800 uint32_t syncBuffer = 0;
801 uint32_t directSyncWord = 0;
802 uint8_t directSyncWordLen = 0;
803 uint32_t directSyncWordMask = 0;
804 bool gotSync = false;
805 #endif
806
807 virtual Module* getMod() = 0;
808
809 // allow specific classes access the private getMod method
810 friend class AFSKClient;
811 friend class RTTYClient;
812 friend class MorseClient;
813 friend class HellClient;
814 friend class SSTVClient;
815 friend class AX25Client;
816 friend class FSK4Client;
817 friend class PagerClient;
818 friend class BellClient;
819 friend class FT8Client;
820 friend class LoRaWANNode;
821 friend class M17Client;
822};
823
824#endif
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition AFSK.h:16
Client for AX25 communication.
Definition AX25.h:233
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition BellModem.h:54
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition FSK4.h:15
Client for Hellschreiber transmissions.
Definition Hellschreiber.h:90
LoRaWAN-compatible node (class A device).
Definition LoRaWAN.h:589
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition Module.h:73
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition Morse.h:94
Client for Pager communication.
Definition Pager.h:62
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition PhysicalLayer.h:216
virtual int16_t stageMode(RadioModeType_t mode, RadioModeConfig_t *cfg)
Stage mode of the radio to be launched later using launchMode.
Definition PhysicalLayer.cpp:555
virtual int16_t invertIQ(bool enable)
Set IQ inversion. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:265
virtual void clearChannelScanAction()
Clears interrupt service routine to call when a channel scan is finished.
Definition PhysicalLayer.cpp:541
virtual int16_t checkOutputPower(int8_t power, int8_t *clipped)
Check if output power is configurable. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:275
virtual int16_t startReceive()
Sets module to received mode using its default configuration.
Definition PhysicalLayer.cpp:131
virtual uint8_t randomByte()
Get one truly random byte from RSSI noise. Must be implemented in module class.
Definition PhysicalLayer.cpp:416
size_t maxPacketLength
Maximum length of packet that can be received by the module.
Definition PhysicalLayer.h:223
virtual int16_t finishTransmit()
Clean up after transmission is done.
Definition PhysicalLayer.cpp:174
int16_t checkIrq(RadioLibIrqType_t irq)
Check whether a specific IRQ bit is set (e.g. RxTimeout, CadDone).
Definition PhysicalLayer.cpp:337
virtual int16_t setFrequencyDeviation(float freqDev)
Sets FSK frequency deviation from carrier frequency. Only available in FSK mode. Must be implemented ...
Definition PhysicalLayer.cpp:250
virtual size_t getPacketLength(bool update=true)
Query modem for the packet length of received payload. Must be implemented in module class.
Definition PhysicalLayer.cpp:302
virtual void setPacketSentAction(void(*func)(void))
Sets interrupt service routine to call when a packet is sent.
Definition PhysicalLayer.cpp:529
virtual int16_t setDIOMapping(uint32_t pin, uint32_t value)
Configure DIO pin mapping to get a given signal on a DIO pin (if available).
Definition PhysicalLayer.cpp:515
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition PhysicalLayer.cpp:225
void dropSync()
Forcefully drop synchronization.
Definition PhysicalLayer.cpp:439
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition PhysicalLayer.cpp:53
uint8_t read(bool drop=true)
Get data from direct mode buffer.
Definition PhysicalLayer.cpp:446
virtual RadioLibTime_t getTimeOnAir(size_t len)
Get expected time-on-air for a given size of payload.
Definition PhysicalLayer.cpp:315
virtual int16_t checkDataRate(DataRate_t dr)
Check the data rate can be configured by this module. Must be implemented in module class if the modu...
Definition PhysicalLayer.cpp:297
virtual int16_t launchMode()
Launch previously staged mode.
Definition PhysicalLayer.cpp:561
virtual int16_t getChannelScanResult()
Read the channel scan result.
Definition PhysicalLayer.cpp:376
virtual void clearPacketSentAction()
Clears interrupt service routine to call when a packet is sent.
Definition PhysicalLayer.cpp:533
virtual int16_t setSyncWord(uint8_t *sync, size_t len)
Set sync word. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:281
virtual int16_t setDataRate(DataRate_t dr)
Set data. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:292
virtual int16_t setModem(ModemType_t modem)
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition PhysicalLayer.cpp:545
virtual ~PhysicalLayer()=default
Default destructor.
virtual void clearPacketReceivedAction()
Clears interrupt service routine to call when a packet is received.
Definition PhysicalLayer.cpp:525
virtual RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs)
Calculate the timeout value for this specific module / series (in number of symbols or units of time)...
Definition PhysicalLayer.cpp:320
int16_t setIrq(RadioLibIrqFlags_t irq)
Set interrupt on specific IRQ bit(s) (e.g. RxTimeout, CadDone). Keep in mind that not all radio modul...
Definition PhysicalLayer.cpp:345
virtual int16_t setPreambleLength(size_t len)
Set preamble length. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:287
int16_t startDirect()
Configure module parameters for direct modes. Must be called prior to "ham" modes like RTTY or AX....
Definition PhysicalLayer.cpp:420
virtual int16_t setFrequency(float freq)
Sets carrier frequency. Must be implemented in module class.
Definition PhysicalLayer.cpp:240
virtual int16_t finishReceive()
Clean up after reception is done.
Definition PhysicalLayer.cpp:178
int16_t setDirectSyncWord(uint32_t syncWord, uint8_t len)
Set sync word to be used to determine start of packet in direct reception mode.
Definition PhysicalLayer.cpp:454
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition PhysicalLayer.cpp:156
virtual int16_t transmitDirect(uint32_t frf=0)
Enables direct transmission mode on pins DIO1 (clock) and DIO2 (data). Must be implemented in module ...
Definition PhysicalLayer.cpp:231
float freqStep
Frequency step of the synthesizer in Hz.
Definition PhysicalLayer.h:220
virtual float getRSSI()
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition PhysicalLayer.cpp:307
int16_t available()
Get the number of direct mode bytes currently available in buffer.
Definition PhysicalLayer.cpp:435
virtual int16_t scanChannel()
Check whether the current communication channel is free or occupied. Performs CAD for LoRa modules,...
Definition PhysicalLayer.cpp:380
virtual void setDirectAction(void(*func)(void))
Set interrupt service routine function to call when data bit is received in direct mode....
Definition PhysicalLayer.cpp:505
virtual int16_t clearIrqFlags(uint32_t irq)
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone). Must be implemented in module class.
Definition PhysicalLayer.cpp:362
virtual int16_t setEncoding(uint8_t encoding)
Sets FSK data encoding. Only available in FSK mode. Must be implemented in module class.
Definition PhysicalLayer.cpp:260
virtual int16_t standby()
Sets module to standby.
Definition PhysicalLayer.cpp:122
int32_t random(int32_t max)
Get truly random number in range 0 - max.
Definition PhysicalLayer.cpp:389
virtual void readBit(uint32_t pin)
Function to read and process data bit in direct reception mode. Must be implemented in module class.
Definition PhysicalLayer.cpp:509
virtual int16_t setOutputPower(int8_t power)
Set output power. Must be implemented in module class if the module supports it.
Definition PhysicalLayer.cpp:270
virtual int16_t receiveDirect()
Enables direct reception mode on pins DIO1 (clock) and DIO2 (data). Must be implemented in module cla...
Definition PhysicalLayer.cpp:236
virtual void setChannelScanAction(void(*func)(void))
Sets interrupt service routine to call when a channel scan is finished.
Definition PhysicalLayer.cpp:537
virtual int16_t startChannelScan()
Interrupt-driven channel activity detection method. Interrupt will be activated when packet is detect...
Definition PhysicalLayer.cpp:367
uint32_t getIrqMapped(RadioLibIrqFlags_t irq)
Convert from radio-agnostic IRQ flags to radio-specific flags.
Definition PhysicalLayer.cpp:325
virtual int16_t receive(uint8_t *data, size_t len, RadioLibTime_t timeout=0)
Binary receive method. Must be implemented in module class.
Definition PhysicalLayer.cpp:111
virtual int16_t setDataShaping(uint8_t sh)
Sets GFSK data shaping. Only available in FSK mode. Must be implemented in module class.
Definition PhysicalLayer.cpp:255
virtual void setPacketReceivedAction(void(*func)(void))
Sets interrupt service routine to call when a packet is received.
Definition PhysicalLayer.cpp:521
virtual int16_t setBitRate(float br)
Sets FSK bit rate. Only available in FSK mode. Must be implemented in module class.
Definition PhysicalLayer.cpp:245
virtual float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition PhysicalLayer.cpp:311
virtual int16_t getModem(ModemType_t *modem)
Get modem currently in use by the radio.
Definition PhysicalLayer.cpp:550
virtual int16_t sleep()
Sets module to sleep.
Definition PhysicalLayer.cpp:118
virtual uint32_t getIrqFlags()
Read currently active IRQ flags. Must be implemented in module class.
Definition PhysicalLayer.cpp:353
virtual int16_t setIrqFlags(uint32_t irq)
Set interrupt on DIO1 to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone). Must be implemented...
Definition PhysicalLayer.cpp:357
int16_t clearIrq(RadioLibIrqFlags_t irq)
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone). Keep in mind that not all radio modu...
Definition PhysicalLayer.cpp:349
PhysicalLayer()
Default constructor.
Definition PhysicalLayer.cpp:5
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition RTTY.h:17
Client for SSTV transmissions.
Definition SSTV.h:121
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition TypeDef.h:642
uint32_t RadioLibIrqFlags_t
Type used for radio-agnostic IRQ flags. IRQ to enable corresponds to the bit index (RadioLibIrq_t)....
Definition TypeDef.h:648
Channel scan configuration interpretation in case LoRa CAD is used.
Definition PhysicalLayer.h:89
RadioLibTime_t timeout
Timeout in microseconds.
Definition PhysicalLayer.h:103
uint8_t detPeak
Number of peak detection symbols.
Definition PhysicalLayer.h:94
uint8_t symNum
Number of symbols to consider signal present.
Definition PhysicalLayer.h:91
uint8_t exitMode
Exit mode after signal detection is complete - module-specific value.
Definition PhysicalLayer.h:100
RadioLibIrqFlags_t irqFlags
Optional IRQ flags to set, bits offset by the value of RADIOLIB_IRQ_.
Definition PhysicalLayer.h:106
RadioLibIrqFlags_t irqMask
Optional IRQ mask to set, bits offset by the value of RADIOLIB_IRQ_.
Definition PhysicalLayer.h:109
uint8_t detMin
Number of minimum detection symbols.
Definition PhysicalLayer.h:97
Data rate structure interpretation in case FSK is used.
Definition PhysicalLayer.h:47
float bitRate
FSK bit rate in kbps.
Definition PhysicalLayer.h:49
float freqDev
FSK frequency deviation in kHz.
Definition PhysicalLayer.h:52
Data rate structure interpretation in case LoRa is used.
Definition PhysicalLayer.h:32
uint8_t spreadingFactor
LoRa spreading factor.
Definition PhysicalLayer.h:34
float bandwidth
LoRa bandwidth in kHz.
Definition PhysicalLayer.h:37
uint8_t codingRate
LoRa coding rate.
Definition PhysicalLayer.h:40
Data rate structure interpretation in case LR-FHSS is used.
Definition PhysicalLayer.h:59
bool narrowGrid
Grid spacing.
Definition PhysicalLayer.h:67
uint8_t cr
Coding rate.
Definition PhysicalLayer.h:64
uint8_t bw
Bandwidth.
Definition PhysicalLayer.h:61
Channel scan configuration interpretation in case RSSI threshold is used.
Definition PhysicalLayer.h:116
float limit
RSSI limit in dBm.
Definition PhysicalLayer.h:118
Definition PhysicalLayer.h:138
RadioLibIrqFlags_t irqFlags
Sets the IRQ flags.
Definition PhysicalLayer.h:143
size_t len
Packet length, needed for some modules under special circumstances (e.g. LoRa implicit header mode).
Definition PhysicalLayer.h:149
uint32_t timeout
Raw timeout value. Some modules use this argument to specify operation mode (single vs....
Definition PhysicalLayer.h:140
RadioLibIrqFlags_t irqMask
Sets the mask of IRQ flags that will trigger the radio interrupt pin.
Definition PhysicalLayer.h:146
Definition PhysicalLayer.h:163
uint8_t mode
Module-specific sleep mode configuration.
Definition PhysicalLayer.h:165
Definition PhysicalLayer.h:133
uint8_t mode
Module-specific standby mode configuration.
Definition PhysicalLayer.h:135
Definition PhysicalLayer.h:152
const uint8_t * data
Binary data that will be transmitted.
Definition PhysicalLayer.h:154
uint8_t addr
Node address to transmit the packet to. Only used in FSK mode.
Definition PhysicalLayer.h:160
size_t len
Length of binary data to transmit (in bytes).
Definition PhysicalLayer.h:157
Common channel scan configuration structure.
Definition PhysicalLayer.h:125
RSSIScanConfig_t rssi
Interpretation for modems that use RSSI threshold.
Definition PhysicalLayer.h:130
CADScanConfig_t cad
Interpretation for modems that use CAD (usually LoRa modems)
Definition PhysicalLayer.h:127
Common data rate structure.
Definition PhysicalLayer.h:74
LrFhssRate_t lrFhss
Interpretation for LR-FHSS modems.
Definition PhysicalLayer.h:82
LoRaRate_t lora
Interpretation for LoRa modems.
Definition PhysicalLayer.h:76
FSKRate_t fsk
Interpretation for FSK modems.
Definition PhysicalLayer.h:79
Definition PhysicalLayer.h:168
SleepConfig_t sleep
Interpretation for sleep mode.
Definition PhysicalLayer.h:182
StandbyConfig_t standby
Interpretation for standby mode.
Definition PhysicalLayer.h:170
ChannelScanConfig_t scan
Interpretation for scanning.
Definition PhysicalLayer.h:179
TransmitConfig_t transmit
Interpretation for Tx mode.
Definition PhysicalLayer.h:176
ReceiveConfig_t receive
Interpretation for Rx mode.
Definition PhysicalLayer.h:173