local for mbed5
radio.h@7:7d021a81fe46, 2021-02-11 (annotated)
- Committer:
- lo
- Date:
- Thu Feb 11 19:17:06 2021 +0000
- Revision:
- 7:7d021a81fe46
- Parent:
- 4:c6ef863d0b07
initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GregCr | 0:deaafdfde3bb | 1 | /* |
GregCr | 4:c6ef863d0b07 | 2 | ______ _ |
GregCr | 0:deaafdfde3bb | 3 | / _____) _ | | |
GregCr | 0:deaafdfde3bb | 4 | ( (____ _____ ____ _| |_ _____ ____| |__ |
GregCr | 0:deaafdfde3bb | 5 | \____ \| ___ | (_ _) ___ |/ ___) _ \ |
GregCr | 0:deaafdfde3bb | 6 | _____) ) ____| | | || |_| ____( (___| | | | |
GregCr | 0:deaafdfde3bb | 7 | (______/|_____)_|_|_| \__)_____)\____)_| |_| |
GregCr | 0:deaafdfde3bb | 8 | (C)2016 Semtech |
GregCr | 0:deaafdfde3bb | 9 | |
GregCr | 0:deaafdfde3bb | 10 | Description: Handling of the node configuration protocol |
GregCr | 0:deaafdfde3bb | 11 | |
GregCr | 0:deaafdfde3bb | 12 | License: Revised BSD License, see LICENSE.TXT file include in the project |
GregCr | 0:deaafdfde3bb | 13 | |
GregCr | 0:deaafdfde3bb | 14 | Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy |
GregCr | 0:deaafdfde3bb | 15 | */ |
GregCr | 0:deaafdfde3bb | 16 | #ifndef __RADIO_H__ |
GregCr | 0:deaafdfde3bb | 17 | #define __RADIO_H__ |
GregCr | 0:deaafdfde3bb | 18 | |
GregCr | 0:deaafdfde3bb | 19 | #include "mbed.h" |
GregCr | 0:deaafdfde3bb | 20 | |
GregCr | 0:deaafdfde3bb | 21 | /*! |
GregCr | 0:deaafdfde3bb | 22 | * \brief Structure describing the radio status |
GregCr | 0:deaafdfde3bb | 23 | */ |
GregCr | 0:deaafdfde3bb | 24 | typedef union RadioStatus_u |
GregCr | 0:deaafdfde3bb | 25 | { |
GregCr | 0:deaafdfde3bb | 26 | uint8_t Value; |
GregCr | 0:deaafdfde3bb | 27 | struct |
GregCr | 0:deaafdfde3bb | 28 | { //bit order is lsb -> msb |
GregCr | 0:deaafdfde3bb | 29 | uint8_t Reserved : 1; //!< Reserved |
GregCr | 0:deaafdfde3bb | 30 | uint8_t CmdStatus : 3; //!< Command status |
GregCr | 0:deaafdfde3bb | 31 | uint8_t ChipMode : 3; //!< Chip mode |
GregCr | 0:deaafdfde3bb | 32 | uint8_t CpuBusy : 1; //!< Flag for CPU radio busy |
GregCr | 0:deaafdfde3bb | 33 | }Fields; |
GregCr | 0:deaafdfde3bb | 34 | }RadioStatus_t; |
GregCr | 0:deaafdfde3bb | 35 | |
GregCr | 0:deaafdfde3bb | 36 | /*! |
GregCr | 0:deaafdfde3bb | 37 | * \brief Structure describing the error codes for callback functions |
GregCr | 0:deaafdfde3bb | 38 | */ |
GregCr | 4:c6ef863d0b07 | 39 | typedef enum |
GregCr | 0:deaafdfde3bb | 40 | { |
GregCr | 4:c6ef863d0b07 | 41 | IRQ_HEADER_ERROR_CODE = 0x01, |
GregCr | 4:c6ef863d0b07 | 42 | IRQ_SYNCWORD_ERROR_CODE = 0x02, |
GregCr | 4:c6ef863d0b07 | 43 | IRQ_CRC_ERROR_CODE = 0x04, |
GregCr | 4:c6ef863d0b07 | 44 | }IrqErrorCode_t; |
GregCr | 0:deaafdfde3bb | 45 | |
GregCr | 0:deaafdfde3bb | 46 | |
GregCr | 0:deaafdfde3bb | 47 | enum IrqPblSyncHeaderCode_t |
GregCr | 0:deaafdfde3bb | 48 | { |
GregCr | 4:c6ef863d0b07 | 49 | IRQ_PBL_DETECT_CODE = 0x01, |
GregCr | 4:c6ef863d0b07 | 50 | IRQ_SYNCWORD_VALID_CODE = 0x02, |
GregCr | 4:c6ef863d0b07 | 51 | IRQ_HEADER_VALID_CODE = 0x04, |
GregCr | 3:7e3595a9ebe0 | 52 | }; |
GregCr | 3:7e3595a9ebe0 | 53 | |
GregCr | 3:7e3595a9ebe0 | 54 | enum IrqTimeoutCode_t |
GregCr | 3:7e3595a9ebe0 | 55 | { |
GregCr | 4:c6ef863d0b07 | 56 | IRQ_RX_TIMEOUT = 0x00, |
GregCr | 4:c6ef863d0b07 | 57 | IRQ_TX_TIMEOUT = 0x01, |
GregCr | 4:c6ef863d0b07 | 58 | IRQ_XYZ = 0xFF, |
GregCr | 0:deaafdfde3bb | 59 | }; |
GregCr | 0:deaafdfde3bb | 60 | |
GregCr | 0:deaafdfde3bb | 61 | /*! |
GregCr | 0:deaafdfde3bb | 62 | * \brief The radio command opcodes |
GregCr | 0:deaafdfde3bb | 63 | */ |
lo | 7:7d021a81fe46 | 64 | //typedef enum RadioCommands_e RadioCommands_t; |
lo | 7:7d021a81fe46 | 65 | typedef enum RadioCommands_e |
lo | 7:7d021a81fe46 | 66 | { |
lo | 7:7d021a81fe46 | 67 | RADIO_GET_STATUS = 0xC0, |
lo | 7:7d021a81fe46 | 68 | RADIO_WRITE_REGISTER = 0x0D, |
lo | 7:7d021a81fe46 | 69 | RADIO_READ_REGISTER = 0x1D, |
lo | 7:7d021a81fe46 | 70 | RADIO_WRITE_BUFFER = 0x0E, |
lo | 7:7d021a81fe46 | 71 | RADIO_READ_BUFFER = 0x1E, |
lo | 7:7d021a81fe46 | 72 | RADIO_SET_SLEEP = 0x84, |
lo | 7:7d021a81fe46 | 73 | RADIO_SET_STANDBY = 0x80, |
lo | 7:7d021a81fe46 | 74 | RADIO_SET_FS = 0xC1, |
lo | 7:7d021a81fe46 | 75 | RADIO_SET_TX = 0x83, |
lo | 7:7d021a81fe46 | 76 | RADIO_SET_RX = 0x82, |
lo | 7:7d021a81fe46 | 77 | RADIO_SET_RXDUTYCYCLE = 0x94, |
lo | 7:7d021a81fe46 | 78 | RADIO_SET_CAD = 0xC5, |
lo | 7:7d021a81fe46 | 79 | RADIO_SET_TXCONTINUOUSWAVE = 0xD1, |
lo | 7:7d021a81fe46 | 80 | RADIO_SET_TXCONTINUOUSPREAMBLE = 0xD2, |
lo | 7:7d021a81fe46 | 81 | RADIO_SET_PACKETTYPE = 0x8A, |
lo | 7:7d021a81fe46 | 82 | RADIO_GET_PACKETTYPE = 0x11, |
lo | 7:7d021a81fe46 | 83 | RADIO_SET_RFFREQUENCY = 0x86, |
lo | 7:7d021a81fe46 | 84 | RADIO_SET_TXPARAMS = 0x8E, |
lo | 7:7d021a81fe46 | 85 | RADIO_SET_PACONFIG = 0x95, |
lo | 7:7d021a81fe46 | 86 | RADIO_SET_CADPARAMS = 0x88, |
lo | 7:7d021a81fe46 | 87 | RADIO_SET_BUFFERBASEADDRESS = 0x8F, |
lo | 7:7d021a81fe46 | 88 | RADIO_SET_MODULATIONPARAMS = 0x8B, |
lo | 7:7d021a81fe46 | 89 | RADIO_SET_PACKETPARAMS = 0x8C, |
lo | 7:7d021a81fe46 | 90 | RADIO_GET_RXBUFFERSTATUS = 0x13, |
lo | 7:7d021a81fe46 | 91 | RADIO_GET_PACKETSTATUS = 0x14, |
lo | 7:7d021a81fe46 | 92 | RADIO_GET_RSSIINST = 0x15, |
lo | 7:7d021a81fe46 | 93 | RADIO_GET_STATS = 0x10, |
lo | 7:7d021a81fe46 | 94 | RADIO_RESET_STATS = 0x00, |
lo | 7:7d021a81fe46 | 95 | RADIO_CFG_DIOIRQ = 0x08, |
lo | 7:7d021a81fe46 | 96 | RADIO_GET_IRQSTATUS = 0x12, |
lo | 7:7d021a81fe46 | 97 | RADIO_CLR_IRQSTATUS = 0x02, |
lo | 7:7d021a81fe46 | 98 | RADIO_CALIBRATE = 0x89, |
lo | 7:7d021a81fe46 | 99 | RADIO_CALIBRATEIMAGE = 0x98, |
lo | 7:7d021a81fe46 | 100 | RADIO_SET_REGULATORMODE = 0x96, |
lo | 7:7d021a81fe46 | 101 | RADIO_GET_ERROR = 0x17, |
lo | 7:7d021a81fe46 | 102 | RADIO_SET_TCXOMODE = 0x97, |
lo | 7:7d021a81fe46 | 103 | RADIO_SET_TXFALLBACKMODE = 0x93, |
lo | 7:7d021a81fe46 | 104 | RADIO_SET_RFSWITCHMODE = 0x9D, |
lo | 7:7d021a81fe46 | 105 | RADIO_SET_STOPRXTIMERONPREAMBLE = 0x9F, |
lo | 7:7d021a81fe46 | 106 | RADIO_SET_LORASYMBTIMEOUT = 0xA0, |
lo | 7:7d021a81fe46 | 107 | }RadioCommands_t; |
GregCr | 4:c6ef863d0b07 | 108 | /*! |
GregCr | 4:c6ef863d0b07 | 109 | * \brief The radio callbacks structure |
GregCr | 4:c6ef863d0b07 | 110 | * Holds function pointers to be called on radio interrupts |
GregCr | 4:c6ef863d0b07 | 111 | */ |
GregCr | 4:c6ef863d0b07 | 112 | typedef struct |
GregCr | 4:c6ef863d0b07 | 113 | { |
GregCr | 4:c6ef863d0b07 | 114 | void ( *txDone )( void ); //!< Pointer to a function run on successful transmission |
GregCr | 4:c6ef863d0b07 | 115 | void ( *rxDone )( void ); //!< Pointer to a function run on successful reception |
GregCr | 4:c6ef863d0b07 | 116 | void ( *rxPreambleDetect )( void ); //!< Pointer to a function run on successful Preamble detection |
GregCr | 4:c6ef863d0b07 | 117 | void ( *rxSyncWordDone )( void ); //!< Pointer to a function run on successful SyncWord reception |
GregCr | 4:c6ef863d0b07 | 118 | void ( *rxHeaderDone )( void ); //!< Pointer to a function run on successful Header reception |
GregCr | 4:c6ef863d0b07 | 119 | void ( *txTimeout )( void ); //!< Pointer to a function run on transmission timeout |
GregCr | 4:c6ef863d0b07 | 120 | void ( *rxTimeout )( void ); //!< Pointer to a function run on reception timeout |
GregCr | 4:c6ef863d0b07 | 121 | void ( *rxError )( IrqErrorCode_t errCode ); //!< Pointer to a function run on reception error |
GregCr | 4:c6ef863d0b07 | 122 | void ( *cadDone )( bool cadFlag ); //!< Pointer to a function run on channel activity detected |
GregCr | 4:c6ef863d0b07 | 123 | }RadioCallbacks_t; |
GregCr | 0:deaafdfde3bb | 124 | |
GregCr | 0:deaafdfde3bb | 125 | /*! |
GregCr | 0:deaafdfde3bb | 126 | * \brief Class holding the basic communications with a radio |
GregCr | 0:deaafdfde3bb | 127 | * |
GregCr | 0:deaafdfde3bb | 128 | * It sets the functions to read/write registers, send commands and read/write |
GregCr | 0:deaafdfde3bb | 129 | * payload. |
GregCr | 0:deaafdfde3bb | 130 | * It also provides functions to run callback functions depending on the |
GregCr | 0:deaafdfde3bb | 131 | * interrupts generated from the radio. |
GregCr | 0:deaafdfde3bb | 132 | */ |
GregCr | 0:deaafdfde3bb | 133 | class Radio |
GregCr | 0:deaafdfde3bb | 134 | { |
GregCr | 0:deaafdfde3bb | 135 | protected: |
GregCr | 0:deaafdfde3bb | 136 | /*! |
GregCr | 0:deaafdfde3bb | 137 | * \brief Callback on Tx done interrupt |
GregCr | 0:deaafdfde3bb | 138 | */ |
GregCr | 4:c6ef863d0b07 | 139 | void ( *txDone )( void ); |
GregCr | 0:deaafdfde3bb | 140 | |
GregCr | 0:deaafdfde3bb | 141 | /*! |
GregCr | 0:deaafdfde3bb | 142 | * \brief Callback on Rx done interrupt |
GregCr | 0:deaafdfde3bb | 143 | */ |
GregCr | 4:c6ef863d0b07 | 144 | void ( *rxDone )( void ); |
GregCr | 4:c6ef863d0b07 | 145 | |
GregCr | 4:c6ef863d0b07 | 146 | /*! |
GregCr | 4:c6ef863d0b07 | 147 | * \brief Callback on Rx preamble detection interrupt |
GregCr | 4:c6ef863d0b07 | 148 | */ |
GregCr | 4:c6ef863d0b07 | 149 | void ( *rxPreambleDetect )( void ); |
GregCr | 4:c6ef863d0b07 | 150 | |
GregCr | 4:c6ef863d0b07 | 151 | /*! |
GregCr | 4:c6ef863d0b07 | 152 | * \brief Callback on Rx SyncWord interrupt |
GregCr | 4:c6ef863d0b07 | 153 | */ |
GregCr | 4:c6ef863d0b07 | 154 | void ( *rxSyncWordDone )( void ); |
GregCr | 0:deaafdfde3bb | 155 | |
GregCr | 0:deaafdfde3bb | 156 | /*! |
GregCr | 4:c6ef863d0b07 | 157 | * \brief Callback on Rx header received interrupt |
GregCr | 0:deaafdfde3bb | 158 | */ |
GregCr | 4:c6ef863d0b07 | 159 | void ( *rxHeaderDone )( void ); |
GregCr | 0:deaafdfde3bb | 160 | |
GregCr | 0:deaafdfde3bb | 161 | /*! |
GregCr | 4:c6ef863d0b07 | 162 | * \brief Callback on Tx timeout interrupt |
GregCr | 0:deaafdfde3bb | 163 | */ |
GregCr | 4:c6ef863d0b07 | 164 | void ( *txTimeout )( void ); |
GregCr | 4:c6ef863d0b07 | 165 | |
GregCr | 4:c6ef863d0b07 | 166 | /*! |
GregCr | 4:c6ef863d0b07 | 167 | * \brief Callback on Rx timeout interrupt |
GregCr | 4:c6ef863d0b07 | 168 | */ |
GregCr | 4:c6ef863d0b07 | 169 | void ( *rxTimeout )( void ); |
GregCr | 0:deaafdfde3bb | 170 | |
GregCr | 0:deaafdfde3bb | 171 | /*! |
GregCr | 0:deaafdfde3bb | 172 | * \brief Callback on Rx error interrupt |
GregCr | 0:deaafdfde3bb | 173 | * |
GregCr | 4:c6ef863d0b07 | 174 | * \param [out] errCode A code indicating the type of interrupt (SyncWord error or CRC error) |
GregCr | 0:deaafdfde3bb | 175 | */ |
GregCr | 0:deaafdfde3bb | 176 | void ( *rxError )( IrqErrorCode_t errCode ); |
GregCr | 0:deaafdfde3bb | 177 | |
GregCr | 0:deaafdfde3bb | 178 | /*! |
GregCr | 0:deaafdfde3bb | 179 | * \brief Callback on Channel Activity Detection done interrupt |
GregCr | 0:deaafdfde3bb | 180 | * |
GregCr | 0:deaafdfde3bb | 181 | * \param [out] cadFlag Flag for channel activity detected or not |
GregCr | 0:deaafdfde3bb | 182 | */ |
GregCr | 0:deaafdfde3bb | 183 | void ( *cadDone )( bool cadFlag ); |
GregCr | 0:deaafdfde3bb | 184 | |
GregCr | 0:deaafdfde3bb | 185 | public: |
GregCr | 0:deaafdfde3bb | 186 | /*! |
GregCr | 0:deaafdfde3bb | 187 | * \brief Constructor for radio class |
GregCr | 4:c6ef863d0b07 | 188 | * Sets the callbacks functions pointers |
GregCr | 0:deaafdfde3bb | 189 | * |
GregCr | 4:c6ef863d0b07 | 190 | * \param [in] callbacks The structure of callbacks function pointers |
GregCr | 4:c6ef863d0b07 | 191 | * to be called on radio interrupts |
GregCr | 4:c6ef863d0b07 | 192 | * |
GregCr | 0:deaafdfde3bb | 193 | */ |
GregCr | 4:c6ef863d0b07 | 194 | Radio( RadioCallbacks_t *callbacks ) |
GregCr | 0:deaafdfde3bb | 195 | { |
GregCr | 4:c6ef863d0b07 | 196 | this->txDone = callbacks->txDone; |
GregCr | 4:c6ef863d0b07 | 197 | this->rxDone = callbacks->rxDone; |
GregCr | 4:c6ef863d0b07 | 198 | this->rxPreambleDetect = callbacks->rxPreambleDetect; |
GregCr | 4:c6ef863d0b07 | 199 | this->rxSyncWordDone = callbacks->rxSyncWordDone; |
GregCr | 4:c6ef863d0b07 | 200 | this->rxHeaderDone = callbacks->rxHeaderDone; |
GregCr | 4:c6ef863d0b07 | 201 | this->txTimeout = callbacks->txTimeout; |
GregCr | 4:c6ef863d0b07 | 202 | this->rxTimeout = callbacks->rxTimeout; |
GregCr | 4:c6ef863d0b07 | 203 | this->rxError = callbacks->rxError; |
GregCr | 4:c6ef863d0b07 | 204 | this->cadDone = callbacks->cadDone; |
GregCr | 0:deaafdfde3bb | 205 | } |
GregCr | 4:c6ef863d0b07 | 206 | virtual ~Radio( void ){ }; |
GregCr | 0:deaafdfde3bb | 207 | |
GregCr | 0:deaafdfde3bb | 208 | /*! |
GregCr | 0:deaafdfde3bb | 209 | * \brief Resets the radio |
GregCr | 0:deaafdfde3bb | 210 | */ |
GregCr | 0:deaafdfde3bb | 211 | virtual void Reset( void ) = 0; |
GregCr | 0:deaafdfde3bb | 212 | |
GregCr | 0:deaafdfde3bb | 213 | /*! |
GregCr | 0:deaafdfde3bb | 214 | * \brief Gets the current radio status |
GregCr | 0:deaafdfde3bb | 215 | * |
GregCr | 0:deaafdfde3bb | 216 | * \retval status Radio status |
GregCr | 0:deaafdfde3bb | 217 | */ |
GregCr | 0:deaafdfde3bb | 218 | virtual RadioStatus_t GetStatus( void ) = 0; |
GregCr | 0:deaafdfde3bb | 219 | |
GregCr | 0:deaafdfde3bb | 220 | /*! |
GregCr | 0:deaafdfde3bb | 221 | * \brief Writes the given command to the radio |
GregCr | 0:deaafdfde3bb | 222 | * |
GregCr | 0:deaafdfde3bb | 223 | * \param [in] opcode Command opcode |
GregCr | 0:deaafdfde3bb | 224 | * \param [in] buffer Command parameters byte array |
GregCr | 0:deaafdfde3bb | 225 | * \param [in] size Command parameters byte array size |
GregCr | 0:deaafdfde3bb | 226 | */ |
GregCr | 0:deaafdfde3bb | 227 | virtual void WriteCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 228 | |
GregCr | 0:deaafdfde3bb | 229 | /*! |
GregCr | 0:deaafdfde3bb | 230 | * \brief Reads the given command from the radio |
GregCr | 0:deaafdfde3bb | 231 | * |
GregCr | 0:deaafdfde3bb | 232 | * \param [in] opcode Command opcode |
GregCr | 0:deaafdfde3bb | 233 | * \param [in] buffer Command parameters byte array |
GregCr | 0:deaafdfde3bb | 234 | * \param [in] size Command parameters byte array size |
GregCr | 0:deaafdfde3bb | 235 | */ |
GregCr | 0:deaafdfde3bb | 236 | virtual void ReadCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 237 | |
GregCr | 0:deaafdfde3bb | 238 | /*! |
GregCr | 0:deaafdfde3bb | 239 | * \brief Writes multiple radio registers starting at address |
GregCr | 0:deaafdfde3bb | 240 | * |
GregCr | 0:deaafdfde3bb | 241 | * \param [in] address First Radio register address |
GregCr | 0:deaafdfde3bb | 242 | * \param [in] buffer Buffer containing the new register's values |
GregCr | 0:deaafdfde3bb | 243 | * \param [in] size Number of registers to be written |
GregCr | 0:deaafdfde3bb | 244 | */ |
GregCr | 0:deaafdfde3bb | 245 | virtual void WriteRegister( uint16_t address, uint8_t *buffer, uint16_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 246 | |
GregCr | 0:deaafdfde3bb | 247 | /*! |
GregCr | 0:deaafdfde3bb | 248 | * \brief Writes the radio register at the specified address |
GregCr | 0:deaafdfde3bb | 249 | * |
GregCr | 0:deaafdfde3bb | 250 | * \param [in] address Register address |
GregCr | 0:deaafdfde3bb | 251 | * \param [in] value New register value |
GregCr | 0:deaafdfde3bb | 252 | */ |
GregCr | 4:c6ef863d0b07 | 253 | virtual void WriteReg( uint16_t address, uint8_t value ) = 0; |
GregCr | 0:deaafdfde3bb | 254 | |
GregCr | 0:deaafdfde3bb | 255 | /*! |
GregCr | 0:deaafdfde3bb | 256 | * \brief Reads multiple radio registers starting at address |
GregCr | 0:deaafdfde3bb | 257 | * |
GregCr | 0:deaafdfde3bb | 258 | * \param [in] address First Radio register address |
GregCr | 0:deaafdfde3bb | 259 | * \param [out] buffer Buffer where to copy the registers data |
GregCr | 0:deaafdfde3bb | 260 | * \param [in] size Number of registers to be read |
GregCr | 0:deaafdfde3bb | 261 | */ |
GregCr | 0:deaafdfde3bb | 262 | virtual void ReadRegister( uint16_t address, uint8_t *buffer, uint16_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 263 | |
GregCr | 0:deaafdfde3bb | 264 | /*! |
GregCr | 0:deaafdfde3bb | 265 | * \brief Reads the radio register at the specified address |
GregCr | 0:deaafdfde3bb | 266 | * |
GregCr | 0:deaafdfde3bb | 267 | * \param [in] address Register address |
GregCr | 0:deaafdfde3bb | 268 | * |
GregCr | 0:deaafdfde3bb | 269 | * \retval value The register value |
GregCr | 0:deaafdfde3bb | 270 | */ |
GregCr | 4:c6ef863d0b07 | 271 | virtual uint8_t ReadReg( uint16_t address ) = 0; |
GregCr | 0:deaafdfde3bb | 272 | |
GregCr | 0:deaafdfde3bb | 273 | /*! |
GregCr | 0:deaafdfde3bb | 274 | * \brief Writes Radio Data Buffer with buffer of size starting at offset. |
GregCr | 0:deaafdfde3bb | 275 | * |
GregCr | 0:deaafdfde3bb | 276 | * \param [in] offset Offset where to start writing |
GregCr | 0:deaafdfde3bb | 277 | * \param [in] buffer Buffer pointer |
GregCr | 0:deaafdfde3bb | 278 | * \param [in] size Buffer size |
GregCr | 0:deaafdfde3bb | 279 | */ |
GregCr | 0:deaafdfde3bb | 280 | virtual void WriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 281 | |
GregCr | 0:deaafdfde3bb | 282 | /*! |
GregCr | 0:deaafdfde3bb | 283 | * \brief Reads Radio Data Buffer at offset to buffer of size |
GregCr | 0:deaafdfde3bb | 284 | * |
GregCr | 0:deaafdfde3bb | 285 | * \param [in] offset Offset where to start reading |
GregCr | 0:deaafdfde3bb | 286 | * \param [out] buffer Buffer pointer |
GregCr | 0:deaafdfde3bb | 287 | * \param [in] size Buffer size |
GregCr | 0:deaafdfde3bb | 288 | */ |
GregCr | 0:deaafdfde3bb | 289 | virtual void ReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) = 0; |
GregCr | 0:deaafdfde3bb | 290 | }; |
GregCr | 0:deaafdfde3bb | 291 | |
GregCr | 0:deaafdfde3bb | 292 | #endif // __RADIO_H__ |
GregCr | 0:deaafdfde3bb | 293 |