Prototype RF driver for STM Sub-1 GHz RF expansion board based on the SPSGRF-868 module for STM32 Nucleo.

Prototype RF Driver for STM Sub-1 GHz RF Expansion Boards based on the SPSGRF-868 and SPSGRF-915 Modules for STM32 Nucleo

Currently supported boards:

Note, in order to use expansion board X-NUCLEO-IDS01A4 in mbed you need to perform the following HW modifications on the board:

  • Unmount resistor R4
  • Mount resistor R7

Furthermore, on some Nucleo development boards (e.g. the NUCLEO_F429ZI), in order to be able to use Ethernet together with these Sub-1 GHz RF expansion boards, you need to compile this driver with macro SPIRIT1_SPI_MOSI=PB_5 defined, while the development board typically requires some HW modification as e.g. described here!

This driver can be used together with the 6LoWPAN stack (a.k.a. Nanostack).

Committer:
Wolfgang Betz
Date:
Thu Oct 13 15:41:39 2016 +0200
Revision:
0:4fb29d9ee571
First compiling version (without warnings)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 0:4fb29d9ee571 1 /**
Wolfgang Betz 0:4fb29d9ee571 2 ******************************************************************************
Wolfgang Betz 0:4fb29d9ee571 3 * @file SPIRIT_PktStack.h
Wolfgang Betz 0:4fb29d9ee571 4 * @author VMA division - AMS
Wolfgang Betz 0:4fb29d9ee571 5 * @version 3.2.2
Wolfgang Betz 0:4fb29d9ee571 6 * @date 08-July-2015
Wolfgang Betz 0:4fb29d9ee571 7 * @brief Configuration and management of SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 8 *
Wolfgang Betz 0:4fb29d9ee571 9 * @details
Wolfgang Betz 0:4fb29d9ee571 10 *
Wolfgang Betz 0:4fb29d9ee571 11 * This module can be used to manage the configuration of Spirit STack
Wolfgang Betz 0:4fb29d9ee571 12 * packets, and it is quite similar to the Basic packets one since the
Wolfgang Betz 0:4fb29d9ee571 13 * STack packets can be considered an extension of Basic.
Wolfgang Betz 0:4fb29d9ee571 14 * The user can obtain a packet configuration filling the structure
Wolfgang Betz 0:4fb29d9ee571 15 * <i>@ref PktStackInit</i>, defining in it some general parameters
Wolfgang Betz 0:4fb29d9ee571 16 * for the Spirit STack packet format.
Wolfgang Betz 0:4fb29d9ee571 17 * Another structure the user can fill is <i>@ref PktStackAddressesInit</i>
Wolfgang Betz 0:4fb29d9ee571 18 * to define the addresses which will be used during the communication.
Wolfgang Betz 0:4fb29d9ee571 19 * The structure <i>@ref PktStackLlpInit</i> is provided in order to configure
Wolfgang Betz 0:4fb29d9ee571 20 * the link layer protocol features like autoack, autoretransmission
Wolfgang Betz 0:4fb29d9ee571 21 * or piggybacking.
Wolfgang Betz 0:4fb29d9ee571 22 * Moreover, functions to set the payload length and the destination address
Wolfgang Betz 0:4fb29d9ee571 23 * are provided.
Wolfgang Betz 0:4fb29d9ee571 24 *
Wolfgang Betz 0:4fb29d9ee571 25 * <b>Example:</b>
Wolfgang Betz 0:4fb29d9ee571 26 * @code
Wolfgang Betz 0:4fb29d9ee571 27 *
Wolfgang Betz 0:4fb29d9ee571 28 * PktStackInit stackInit={
Wolfgang Betz 0:4fb29d9ee571 29 * PKT_PREAMBLE_LENGTH_08BYTES, // preamble length in bytes
Wolfgang Betz 0:4fb29d9ee571 30 * PKT_SYNC_LENGTH_4BYTES, // sync word length in bytes
Wolfgang Betz 0:4fb29d9ee571 31 * 0x1A2635A8, // sync word
Wolfgang Betz 0:4fb29d9ee571 32 * PKT_LENGTH_VAR, // variable or fixed payload length
Wolfgang Betz 0:4fb29d9ee571 33 * 7, // length field width in bits (used only for variable length)
Wolfgang Betz 0:4fb29d9ee571 34 * PKT_NO_CRC, // CRC mode
Wolfgang Betz 0:4fb29d9ee571 35 * PKT_CONTROL_LENGTH_0BYTES, // control field length
Wolfgang Betz 0:4fb29d9ee571 36 * S_DISABLE, // FEC
Wolfgang Betz 0:4fb29d9ee571 37 * S_ENABLE // whitening
Wolfgang Betz 0:4fb29d9ee571 38 * };
Wolfgang Betz 0:4fb29d9ee571 39 *
Wolfgang Betz 0:4fb29d9ee571 40 * PktStackAddressesInit addressInit={
Wolfgang Betz 0:4fb29d9ee571 41 * S_ENABLE, // enable/disable filtering on my address
Wolfgang Betz 0:4fb29d9ee571 42 * 0x34, // my address (address of the current node)
Wolfgang Betz 0:4fb29d9ee571 43 * S_DISABLE, // enable/disable filtering on multicast address
Wolfgang Betz 0:4fb29d9ee571 44 * 0xEE, // multicast address
Wolfgang Betz 0:4fb29d9ee571 45 * S_DISABLE, // enable/disable filtering on broadcast address
Wolfgang Betz 0:4fb29d9ee571 46 * 0xFF // broadcast address
Wolfgang Betz 0:4fb29d9ee571 47 * };
Wolfgang Betz 0:4fb29d9ee571 48 *
Wolfgang Betz 0:4fb29d9ee571 49 * PktStackLlpInit stackLLPInit ={
Wolfgang Betz 0:4fb29d9ee571 50 * S_DISABLE, // enable/disable the autoack feature
Wolfgang Betz 0:4fb29d9ee571 51 * S_DISABLE, // enable/disable the piggybacking feature
Wolfgang Betz 0:4fb29d9ee571 52 * PKT_DISABLE_RETX // set the max number of retransmissions or disable them
Wolfgang Betz 0:4fb29d9ee571 53 * };
Wolfgang Betz 0:4fb29d9ee571 54 * ...
Wolfgang Betz 0:4fb29d9ee571 55 *
Wolfgang Betz 0:4fb29d9ee571 56 * SpiritPktStackInit(&stackInit);
Wolfgang Betz 0:4fb29d9ee571 57 * SpiritPktStackAddressesInit(&addressInit);
Wolfgang Betz 0:4fb29d9ee571 58 * SpiritPktStackLlpInit(&stackLLPInit);
Wolfgang Betz 0:4fb29d9ee571 59 *
Wolfgang Betz 0:4fb29d9ee571 60 * ...
Wolfgang Betz 0:4fb29d9ee571 61 *
Wolfgang Betz 0:4fb29d9ee571 62 * SpiritPktStackSetPayloadLength(20);
Wolfgang Betz 0:4fb29d9ee571 63 * SpiritPktStackSetDestinationAddress(0x44);
Wolfgang Betz 0:4fb29d9ee571 64 *
Wolfgang Betz 0:4fb29d9ee571 65 * ...
Wolfgang Betz 0:4fb29d9ee571 66 *
Wolfgang Betz 0:4fb29d9ee571 67 * @endcode
Wolfgang Betz 0:4fb29d9ee571 68 *
Wolfgang Betz 0:4fb29d9ee571 69 * The module provides some other functions that can be used to modify
Wolfgang Betz 0:4fb29d9ee571 70 * or read only some configuration parameters.
Wolfgang Betz 0:4fb29d9ee571 71 *
Wolfgang Betz 0:4fb29d9ee571 72 *
Wolfgang Betz 0:4fb29d9ee571 73 * @attention
Wolfgang Betz 0:4fb29d9ee571 74 *
Wolfgang Betz 0:4fb29d9ee571 75 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Wolfgang Betz 0:4fb29d9ee571 76 *
Wolfgang Betz 0:4fb29d9ee571 77 * Redistribution and use in source and binary forms, with or without modification,
Wolfgang Betz 0:4fb29d9ee571 78 * are permitted provided that the following conditions are met:
Wolfgang Betz 0:4fb29d9ee571 79 * 1. Redistributions of source code must retain the above copyright notice,
Wolfgang Betz 0:4fb29d9ee571 80 * this list of conditions and the following disclaimer.
Wolfgang Betz 0:4fb29d9ee571 81 * 2. Redistributions in binary form must reproduce the above copyright notice,
Wolfgang Betz 0:4fb29d9ee571 82 * this list of conditions and the following disclaimer in the documentation
Wolfgang Betz 0:4fb29d9ee571 83 * and/or other materials provided with the distribution.
Wolfgang Betz 0:4fb29d9ee571 84 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Wolfgang Betz 0:4fb29d9ee571 85 * may be used to endorse or promote products derived from this software
Wolfgang Betz 0:4fb29d9ee571 86 * without specific prior written permission.
Wolfgang Betz 0:4fb29d9ee571 87 *
Wolfgang Betz 0:4fb29d9ee571 88 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Wolfgang Betz 0:4fb29d9ee571 89 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Wolfgang Betz 0:4fb29d9ee571 90 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Wolfgang Betz 0:4fb29d9ee571 91 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Wolfgang Betz 0:4fb29d9ee571 92 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Wolfgang Betz 0:4fb29d9ee571 93 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Wolfgang Betz 0:4fb29d9ee571 94 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Wolfgang Betz 0:4fb29d9ee571 95 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Wolfgang Betz 0:4fb29d9ee571 96 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Wolfgang Betz 0:4fb29d9ee571 97 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Wolfgang Betz 0:4fb29d9ee571 98 *
Wolfgang Betz 0:4fb29d9ee571 99 ******************************************************************************
Wolfgang Betz 0:4fb29d9ee571 100 */
Wolfgang Betz 0:4fb29d9ee571 101
Wolfgang Betz 0:4fb29d9ee571 102 /* Define to prevent recursive inclusion -------------------------------------*/
Wolfgang Betz 0:4fb29d9ee571 103 #ifndef __SPIRIT_PKT_STACK_H
Wolfgang Betz 0:4fb29d9ee571 104 #define __SPIRIT_PKT_STACK_H
Wolfgang Betz 0:4fb29d9ee571 105
Wolfgang Betz 0:4fb29d9ee571 106 /* Includes ------------------------------------------------------------------*/
Wolfgang Betz 0:4fb29d9ee571 107
Wolfgang Betz 0:4fb29d9ee571 108 #include "SPIRIT_Regs.h"
Wolfgang Betz 0:4fb29d9ee571 109 #include "SPIRIT_Types.h"
Wolfgang Betz 0:4fb29d9ee571 110 #include "SPIRIT_PktCommon.h"
Wolfgang Betz 0:4fb29d9ee571 111
Wolfgang Betz 0:4fb29d9ee571 112 #ifdef __cplusplus
Wolfgang Betz 0:4fb29d9ee571 113 extern "C" {
Wolfgang Betz 0:4fb29d9ee571 114 #endif
Wolfgang Betz 0:4fb29d9ee571 115
Wolfgang Betz 0:4fb29d9ee571 116
Wolfgang Betz 0:4fb29d9ee571 117
Wolfgang Betz 0:4fb29d9ee571 118 /**
Wolfgang Betz 0:4fb29d9ee571 119 * @addtogroup SPIRIT_Libraries
Wolfgang Betz 0:4fb29d9ee571 120 * @{
Wolfgang Betz 0:4fb29d9ee571 121 */
Wolfgang Betz 0:4fb29d9ee571 122
Wolfgang Betz 0:4fb29d9ee571 123
Wolfgang Betz 0:4fb29d9ee571 124 /**
Wolfgang Betz 0:4fb29d9ee571 125 * @defgroup SPIRIT_PktStack Pkt STack
Wolfgang Betz 0:4fb29d9ee571 126 * @brief Configuration and management of SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 127 * @details See the file <i>@ref SPIRIT_PktStack.h</i> for more details.
Wolfgang Betz 0:4fb29d9ee571 128 * @{
Wolfgang Betz 0:4fb29d9ee571 129 */
Wolfgang Betz 0:4fb29d9ee571 130
Wolfgang Betz 0:4fb29d9ee571 131 /**
Wolfgang Betz 0:4fb29d9ee571 132 * @defgroup PktStack_Exported_Types Pkt STack Exported Types
Wolfgang Betz 0:4fb29d9ee571 133 * @{
Wolfgang Betz 0:4fb29d9ee571 134 */
Wolfgang Betz 0:4fb29d9ee571 135
Wolfgang Betz 0:4fb29d9ee571 136 /**
Wolfgang Betz 0:4fb29d9ee571 137 * @brief Preamble length in bytes enumeration.
Wolfgang Betz 0:4fb29d9ee571 138 */
Wolfgang Betz 0:4fb29d9ee571 139 typedef PktPreambleLength StackPreambleLength;
Wolfgang Betz 0:4fb29d9ee571 140
Wolfgang Betz 0:4fb29d9ee571 141 #define IS_STACK_PREAMBLE_LENGTH IS_PKT_PREAMBLE_LENGTH
Wolfgang Betz 0:4fb29d9ee571 142
Wolfgang Betz 0:4fb29d9ee571 143 /**
Wolfgang Betz 0:4fb29d9ee571 144 * @brief Sync length in bytes enumeration.
Wolfgang Betz 0:4fb29d9ee571 145 */
Wolfgang Betz 0:4fb29d9ee571 146 typedef PktSyncLength StackSyncLength;
Wolfgang Betz 0:4fb29d9ee571 147
Wolfgang Betz 0:4fb29d9ee571 148 #define IS_STACK_SYNC_LENGTH IS_PKT_SYNC_LENGTH
Wolfgang Betz 0:4fb29d9ee571 149
Wolfgang Betz 0:4fb29d9ee571 150
Wolfgang Betz 0:4fb29d9ee571 151
Wolfgang Betz 0:4fb29d9ee571 152 /**
Wolfgang Betz 0:4fb29d9ee571 153 * @brief CRC length in bytes enumeration.
Wolfgang Betz 0:4fb29d9ee571 154 */
Wolfgang Betz 0:4fb29d9ee571 155 typedef PktCrcMode StackCrcMode;
Wolfgang Betz 0:4fb29d9ee571 156
Wolfgang Betz 0:4fb29d9ee571 157 #define IS_STACK_CRC_MODE IS_PKT_CRC_MODE
Wolfgang Betz 0:4fb29d9ee571 158
Wolfgang Betz 0:4fb29d9ee571 159
Wolfgang Betz 0:4fb29d9ee571 160 /**
Wolfgang Betz 0:4fb29d9ee571 161 * @brief Fixed or variable payload length enumeration.
Wolfgang Betz 0:4fb29d9ee571 162 */
Wolfgang Betz 0:4fb29d9ee571 163 typedef PktFixVarLength StackFixVarLength;
Wolfgang Betz 0:4fb29d9ee571 164
Wolfgang Betz 0:4fb29d9ee571 165 #define IS_STACK_FIX_VAR_LENGTH IS_PKT_FIX_VAR_LENGTH
Wolfgang Betz 0:4fb29d9ee571 166
Wolfgang Betz 0:4fb29d9ee571 167 /**
Wolfgang Betz 0:4fb29d9ee571 168 * @brief Control length in bytes enumeration for SPIRIT.
Wolfgang Betz 0:4fb29d9ee571 169 */
Wolfgang Betz 0:4fb29d9ee571 170 typedef PktControlLength StackControlLength;
Wolfgang Betz 0:4fb29d9ee571 171
Wolfgang Betz 0:4fb29d9ee571 172 #define IS_STACK_CONTROL_LENGTH IS_PKT_CONTROL_LENGTH
Wolfgang Betz 0:4fb29d9ee571 173
Wolfgang Betz 0:4fb29d9ee571 174 /**
Wolfgang Betz 0:4fb29d9ee571 175 * @brief Sync words enumeration for SPIRIT.
Wolfgang Betz 0:4fb29d9ee571 176 */
Wolfgang Betz 0:4fb29d9ee571 177 typedef PktSyncX StackSyncX;
Wolfgang Betz 0:4fb29d9ee571 178
Wolfgang Betz 0:4fb29d9ee571 179 #define IS_STACK_SYNCx IS_PKT_SYNCx
Wolfgang Betz 0:4fb29d9ee571 180
Wolfgang Betz 0:4fb29d9ee571 181 /**
Wolfgang Betz 0:4fb29d9ee571 182 * @brief Max retransmission number enumeration for SPIRIT.
Wolfgang Betz 0:4fb29d9ee571 183 */
Wolfgang Betz 0:4fb29d9ee571 184 typedef PktNMaxReTx StackNMaxReTx;
Wolfgang Betz 0:4fb29d9ee571 185
Wolfgang Betz 0:4fb29d9ee571 186 #define IS_STACK_NMAX_RETX IS_PKT_NMAX_RETX
Wolfgang Betz 0:4fb29d9ee571 187
Wolfgang Betz 0:4fb29d9ee571 188
Wolfgang Betz 0:4fb29d9ee571 189 /**
Wolfgang Betz 0:4fb29d9ee571 190 * @brief SPIRIT STack Packet Init structure definition. This structure allows users to set the main options
Wolfgang Betz 0:4fb29d9ee571 191 * for the STack packet.
Wolfgang Betz 0:4fb29d9ee571 192 */
Wolfgang Betz 0:4fb29d9ee571 193 typedef struct
Wolfgang Betz 0:4fb29d9ee571 194 {
Wolfgang Betz 0:4fb29d9ee571 195
Wolfgang Betz 0:4fb29d9ee571 196 StackPreambleLength xPreambleLength; /*!< Specifies the preamble length of packet.
Wolfgang Betz 0:4fb29d9ee571 197 This parameter can be any value of @ref StackPreambleLength */
Wolfgang Betz 0:4fb29d9ee571 198 StackSyncLength xSyncLength; /*!< Specifies the sync word length of packet.
Wolfgang Betz 0:4fb29d9ee571 199 This parameter can be any value of @ref StackSyncLength */
Wolfgang Betz 0:4fb29d9ee571 200 uint32_t lSyncWords; /*!< Specifies the sync words.
Wolfgang Betz 0:4fb29d9ee571 201 This parameter is a uint32_t word with format: 0x|SYNC1|SYNC2|SYNC3|SYNC4| */
Wolfgang Betz 0:4fb29d9ee571 202 StackFixVarLength xFixVarLength; /*!< Specifies if a fixed length of packet has to be used.
Wolfgang Betz 0:4fb29d9ee571 203 This parameter can be any value of @ref StackFixVarLength */
Wolfgang Betz 0:4fb29d9ee571 204 uint8_t cPktLengthWidth; /*!< Specifies the size of the length of packet in bits. This field is useful only if
Wolfgang Betz 0:4fb29d9ee571 205 the field xFixVarLength is set to STACK_LENGTH_VAR. For STack packets the length width
Wolfgang Betz 0:4fb29d9ee571 206 is log2( max payload length + control length (0 to 4) + address length (always 2)).
Wolfgang Betz 0:4fb29d9ee571 207 This parameter is an uint8_t */
Wolfgang Betz 0:4fb29d9ee571 208 StackCrcMode xCrcMode; /*!< Specifies the CRC word length of packet.
Wolfgang Betz 0:4fb29d9ee571 209 This parameter can be any value of @ref StackCrcMode */
Wolfgang Betz 0:4fb29d9ee571 210 StackControlLength xControlLength; /*!< Specifies the length of a control field to be sent.
Wolfgang Betz 0:4fb29d9ee571 211 This parameter can be any value of @ref StackControlLength */
Wolfgang Betz 0:4fb29d9ee571 212 SpiritFunctionalState xFec; /*!< Specifies if FEC has to be enabled.
Wolfgang Betz 0:4fb29d9ee571 213 This parameter can be any value of @ref SpiritFunctionalState */
Wolfgang Betz 0:4fb29d9ee571 214 SpiritFunctionalState xDataWhitening; /*!< Specifies if data whitening has to be enabled.
Wolfgang Betz 0:4fb29d9ee571 215 This parameter can be any value of @ref SpiritFunctionalState */
Wolfgang Betz 0:4fb29d9ee571 216
Wolfgang Betz 0:4fb29d9ee571 217 }PktStackInit;
Wolfgang Betz 0:4fb29d9ee571 218
Wolfgang Betz 0:4fb29d9ee571 219
Wolfgang Betz 0:4fb29d9ee571 220 /**
Wolfgang Betz 0:4fb29d9ee571 221 * @brief SPIRIT STack packet address structure definition. This structure allows users to specify
Wolfgang Betz 0:4fb29d9ee571 222 * the node/multicast/broadcast addresses and the correspondent filtering options.
Wolfgang Betz 0:4fb29d9ee571 223 */
Wolfgang Betz 0:4fb29d9ee571 224 typedef struct
Wolfgang Betz 0:4fb29d9ee571 225 {
Wolfgang Betz 0:4fb29d9ee571 226
Wolfgang Betz 0:4fb29d9ee571 227 SpiritFunctionalState xFilterOnMyAddress; /*!< If set RX packet is accepted if its destination address matches with cMyAddress.
Wolfgang Betz 0:4fb29d9ee571 228 This parameter can be S_ENABLE or S_DISABLE */
Wolfgang Betz 0:4fb29d9ee571 229 uint8_t cMyAddress; /*!< Specifies the TX packet source address (address of this node).
Wolfgang Betz 0:4fb29d9ee571 230 This parameter is an uint8_t */
Wolfgang Betz 0:4fb29d9ee571 231 SpiritFunctionalState xFilterOnMulticastAddress; /*!< If set RX packet is accepted if its destination address matches with cMulticastAddress.
Wolfgang Betz 0:4fb29d9ee571 232 This parameter can be S_ENABLE or S_DISABLE */
Wolfgang Betz 0:4fb29d9ee571 233 uint8_t cMulticastAddress; /*!< Specifies the Multicast group address for this node.
Wolfgang Betz 0:4fb29d9ee571 234 This parameter is an uint8_t */
Wolfgang Betz 0:4fb29d9ee571 235 SpiritFunctionalState xFilterOnBroadcastAddress; /*!< If set RX packet is accepted if its destination address matches with cBroadcastAddress.
Wolfgang Betz 0:4fb29d9ee571 236 This parameter can be S_ENABLE or S_DISABLE */
Wolfgang Betz 0:4fb29d9ee571 237 uint8_t cBroadcastAddress; /*!< Specifies the Broadcast address for this node.
Wolfgang Betz 0:4fb29d9ee571 238 This parameter is an uint8_t */
Wolfgang Betz 0:4fb29d9ee571 239 }PktStackAddressesInit;
Wolfgang Betz 0:4fb29d9ee571 240
Wolfgang Betz 0:4fb29d9ee571 241
Wolfgang Betz 0:4fb29d9ee571 242 /**
Wolfgang Betz 0:4fb29d9ee571 243 * @brief SPIRIT STack packet LLP structure definition. This structure allows users to configure
Wolfgang Betz 0:4fb29d9ee571 244 * all the LLP options for STack packets.
Wolfgang Betz 0:4fb29d9ee571 245 */
Wolfgang Betz 0:4fb29d9ee571 246 typedef struct
Wolfgang Betz 0:4fb29d9ee571 247 {
Wolfgang Betz 0:4fb29d9ee571 248
Wolfgang Betz 0:4fb29d9ee571 249 SpiritFunctionalState xAutoAck; /*!< Specifies if the auto ACK feature is used or not.
Wolfgang Betz 0:4fb29d9ee571 250 This parameter can be a value of @ref SpiritFunctionalState */
Wolfgang Betz 0:4fb29d9ee571 251 SpiritFunctionalState xPiggybacking; /*!< Specifies if the piggybacking feature is used or not.
Wolfgang Betz 0:4fb29d9ee571 252 This parameter can be a value of @ref SpiritFunctionalState */
Wolfgang Betz 0:4fb29d9ee571 253 StackNMaxReTx xNMaxRetx; /*!< Specifies the number of MAX-Retransmissions.
Wolfgang Betz 0:4fb29d9ee571 254 This parameter can be a value of @ref StackNMaxReTx */
Wolfgang Betz 0:4fb29d9ee571 255 }PktStackLlpInit;
Wolfgang Betz 0:4fb29d9ee571 256
Wolfgang Betz 0:4fb29d9ee571 257
Wolfgang Betz 0:4fb29d9ee571 258
Wolfgang Betz 0:4fb29d9ee571 259 /**
Wolfgang Betz 0:4fb29d9ee571 260 *@}
Wolfgang Betz 0:4fb29d9ee571 261 */
Wolfgang Betz 0:4fb29d9ee571 262
Wolfgang Betz 0:4fb29d9ee571 263
Wolfgang Betz 0:4fb29d9ee571 264 /**
Wolfgang Betz 0:4fb29d9ee571 265 * @defgroup PktStack_Exported_Constants Pkt STack Exported Constants
Wolfgang Betz 0:4fb29d9ee571 266 * @{
Wolfgang Betz 0:4fb29d9ee571 267 */
Wolfgang Betz 0:4fb29d9ee571 268
Wolfgang Betz 0:4fb29d9ee571 269 #define IS_STACK_LENGTH_WIDTH_BITS IS_PKT_LENGTH_WIDTH_BITS
Wolfgang Betz 0:4fb29d9ee571 270
Wolfgang Betz 0:4fb29d9ee571 271 /**
Wolfgang Betz 0:4fb29d9ee571 272 *@}
Wolfgang Betz 0:4fb29d9ee571 273 */
Wolfgang Betz 0:4fb29d9ee571 274
Wolfgang Betz 0:4fb29d9ee571 275
Wolfgang Betz 0:4fb29d9ee571 276 /**
Wolfgang Betz 0:4fb29d9ee571 277 * @defgroup PktStack_Exported_Macros Pkt STack Exported Macros
Wolfgang Betz 0:4fb29d9ee571 278 * @{
Wolfgang Betz 0:4fb29d9ee571 279 */
Wolfgang Betz 0:4fb29d9ee571 280
Wolfgang Betz 0:4fb29d9ee571 281 /**
Wolfgang Betz 0:4fb29d9ee571 282 * @brief Macro used to compute the lower part of the packet length
Wolfgang Betz 0:4fb29d9ee571 283 * for Spirit STack packets, to write in the PCKTLEN0 register.
Wolfgang Betz 0:4fb29d9ee571 284 * @param nLength length of the packet payload.
Wolfgang Betz 0:4fb29d9ee571 285 * This parameter is an uint16_t.
Wolfgang Betz 0:4fb29d9ee571 286 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 287 */
Wolfgang Betz 0:4fb29d9ee571 288 #define STACK_BUILD_PCKTLEN0(nLength) BUILD_PCKTLEN0(nLength)
Wolfgang Betz 0:4fb29d9ee571 289
Wolfgang Betz 0:4fb29d9ee571 290
Wolfgang Betz 0:4fb29d9ee571 291 /**
Wolfgang Betz 0:4fb29d9ee571 292 * @brief Macro used to compute the upper part of the packet length
Wolfgang Betz 0:4fb29d9ee571 293 * for Spirit STack packets, to write the PCKTLEN1 register.
Wolfgang Betz 0:4fb29d9ee571 294 * @param nLength length of the packet payload.
Wolfgang Betz 0:4fb29d9ee571 295 * This parameter is an uint16_t.
Wolfgang Betz 0:4fb29d9ee571 296 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 297 */
Wolfgang Betz 0:4fb29d9ee571 298 #define STACK_BUILD_PCKTLEN1(nLength) BUILD_PCKTLEN1(nLength)
Wolfgang Betz 0:4fb29d9ee571 299
Wolfgang Betz 0:4fb29d9ee571 300
Wolfgang Betz 0:4fb29d9ee571 301 /**
Wolfgang Betz 0:4fb29d9ee571 302 * @brief Sets the CONTROL length for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 303 * @param xControlLength length of CONTROL field in bytes.
Wolfgang Betz 0:4fb29d9ee571 304 * This parameter can be any value of @ref StackControlLength.
Wolfgang Betz 0:4fb29d9ee571 305 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 306 */
Wolfgang Betz 0:4fb29d9ee571 307 #define SpiritPktStackSetControlLength(xControlLength) SpiritPktCommonSetControlLength(xControlLength)
Wolfgang Betz 0:4fb29d9ee571 308
Wolfgang Betz 0:4fb29d9ee571 309
Wolfgang Betz 0:4fb29d9ee571 310 /**
Wolfgang Betz 0:4fb29d9ee571 311 * @brief Returns the CONTROL length for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 312 * @param None.
Wolfgang Betz 0:4fb29d9ee571 313 * @retval Control length.
Wolfgang Betz 0:4fb29d9ee571 314 */
Wolfgang Betz 0:4fb29d9ee571 315 #define SpiritPktStackGetControlLength() SpiritPktCommonGetControlLength()
Wolfgang Betz 0:4fb29d9ee571 316
Wolfgang Betz 0:4fb29d9ee571 317
Wolfgang Betz 0:4fb29d9ee571 318 /**
Wolfgang Betz 0:4fb29d9ee571 319 * @brief Sets the PREAMBLE Length mode for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 320 * @param xPreambleLength length of PREAMBLE field in bytes.
Wolfgang Betz 0:4fb29d9ee571 321 * This parameter can be any value of @ref StackPreambleLength.
Wolfgang Betz 0:4fb29d9ee571 322 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 323 */
Wolfgang Betz 0:4fb29d9ee571 324 #define SpiritPktStackSetPreambleLength(xPreambleLength) SpiritPktCommonSetPreambleLength((PktPreambleLength)xPreambleLength)
Wolfgang Betz 0:4fb29d9ee571 325
Wolfgang Betz 0:4fb29d9ee571 326
Wolfgang Betz 0:4fb29d9ee571 327 /**
Wolfgang Betz 0:4fb29d9ee571 328 * @brief Returns the PREAMBLE Length mode for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 329 * @param None.
Wolfgang Betz 0:4fb29d9ee571 330 * @retval uint8_t Preamble length in bytes.
Wolfgang Betz 0:4fb29d9ee571 331 */
Wolfgang Betz 0:4fb29d9ee571 332 #define SpiritPktStackGetPreambleLength() SpiritPktCommonGetPreambleLength()
Wolfgang Betz 0:4fb29d9ee571 333
Wolfgang Betz 0:4fb29d9ee571 334
Wolfgang Betz 0:4fb29d9ee571 335 /**
Wolfgang Betz 0:4fb29d9ee571 336 * @brief Sets the SYNC Length for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 337 * @param xSyncLength length of SYNC field in bytes.
Wolfgang Betz 0:4fb29d9ee571 338 * This parameter can be any value of @ref StackSyncLength.
Wolfgang Betz 0:4fb29d9ee571 339 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 340 */
Wolfgang Betz 0:4fb29d9ee571 341 #define SpiritPktStackSetSyncLength(xSyncLength) SpiritPktCommonSetSyncLength((PktSyncLength)xSyncLength)
Wolfgang Betz 0:4fb29d9ee571 342
Wolfgang Betz 0:4fb29d9ee571 343
Wolfgang Betz 0:4fb29d9ee571 344 /**
Wolfgang Betz 0:4fb29d9ee571 345 * @brief Returns the SYNC Length for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 346 * @param None.
Wolfgang Betz 0:4fb29d9ee571 347 * @retval uint8_t Sync length in bytes.
Wolfgang Betz 0:4fb29d9ee571 348 */
Wolfgang Betz 0:4fb29d9ee571 349 #define SpiritPktStackGetSyncLength() SpiritPktCommonGetSyncLength()
Wolfgang Betz 0:4fb29d9ee571 350
Wolfgang Betz 0:4fb29d9ee571 351
Wolfgang Betz 0:4fb29d9ee571 352 /**
Wolfgang Betz 0:4fb29d9ee571 353 * @brief Sets fixed or variable payload length mode for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 354 * @param xFixVarLength variable or fixed length.
Wolfgang Betz 0:4fb29d9ee571 355 * PKT_FIXED_LENGTH_VAR -> variable (the length is extracted from the received packet).
Wolfgang Betz 0:4fb29d9ee571 356 * PKT_FIXED_LENGTH_FIX -> fix (the length is set by PCKTLEN0 and PCKTLEN1).
Wolfgang Betz 0:4fb29d9ee571 357 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 358 */
Wolfgang Betz 0:4fb29d9ee571 359 #define SpiritPktStackSetFixVarLength(xFixVarLength) SpiritPktCommonSetFixVarLength((PktFixVarLength)xFixVarLength)
Wolfgang Betz 0:4fb29d9ee571 360
Wolfgang Betz 0:4fb29d9ee571 361
Wolfgang Betz 0:4fb29d9ee571 362 /**
Wolfgang Betz 0:4fb29d9ee571 363 * @brief Enables or Disables the CRC filtering.
Wolfgang Betz 0:4fb29d9ee571 364 * @param xNewState new state for CRC_CHECK.
Wolfgang Betz 0:4fb29d9ee571 365 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 366 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 367 */
Wolfgang Betz 0:4fb29d9ee571 368 #define SpiritPktStackFilterOnCrc(xNewState) SpiritPktCommonFilterOnCrc(xNewState)
Wolfgang Betz 0:4fb29d9ee571 369
Wolfgang Betz 0:4fb29d9ee571 370
Wolfgang Betz 0:4fb29d9ee571 371 /**
Wolfgang Betz 0:4fb29d9ee571 372 * @brief Returns the CRC filtering bit.
Wolfgang Betz 0:4fb29d9ee571 373 * @param None.
Wolfgang Betz 0:4fb29d9ee571 374 * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 375 */
Wolfgang Betz 0:4fb29d9ee571 376 #define SpiritPktStackGetFilterOnCrc() SpiritPktCommonGetFilterOnCrc()
Wolfgang Betz 0:4fb29d9ee571 377
Wolfgang Betz 0:4fb29d9ee571 378
Wolfgang Betz 0:4fb29d9ee571 379 /**
Wolfgang Betz 0:4fb29d9ee571 380 * @brief Sets the CRC mode for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 381 * @param xCrcMode CRC mode.
Wolfgang Betz 0:4fb29d9ee571 382 * This parameter can be any value of @ref StackCrcMode.
Wolfgang Betz 0:4fb29d9ee571 383 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 384 */
Wolfgang Betz 0:4fb29d9ee571 385 #define SpiritPktStackSetCrcMode(xCrcMode) SpiritPktCommonSetCrcMode((PktCrcMode)xCrcMode)
Wolfgang Betz 0:4fb29d9ee571 386
Wolfgang Betz 0:4fb29d9ee571 387
Wolfgang Betz 0:4fb29d9ee571 388 /**
Wolfgang Betz 0:4fb29d9ee571 389 * @brief Returns the CRC mode for SPIRIT packets.
Wolfgang Betz 0:4fb29d9ee571 390 * @param None.
Wolfgang Betz 0:4fb29d9ee571 391 * @retval StackCrcMode Crc mode.
Wolfgang Betz 0:4fb29d9ee571 392 */
Wolfgang Betz 0:4fb29d9ee571 393 #define SpiritPktStackGetCrcMode() (StackCrcMode)SpiritPktCommonGetCrcMode()
Wolfgang Betz 0:4fb29d9ee571 394
Wolfgang Betz 0:4fb29d9ee571 395
Wolfgang Betz 0:4fb29d9ee571 396 /**
Wolfgang Betz 0:4fb29d9ee571 397 * @brief Enables or Disables WHITENING for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 398 * @param xNewState new state for WHITENING mode.
Wolfgang Betz 0:4fb29d9ee571 399 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 400 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 401 */
Wolfgang Betz 0:4fb29d9ee571 402 #define SpiritPktStackWhitening(xNewState) SpiritPktCommonWhitening(xNewState)
Wolfgang Betz 0:4fb29d9ee571 403
Wolfgang Betz 0:4fb29d9ee571 404
Wolfgang Betz 0:4fb29d9ee571 405 /**
Wolfgang Betz 0:4fb29d9ee571 406 * @brief Enables or Disables FEC for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 407 * @param xNewState new state for FEC mode.
Wolfgang Betz 0:4fb29d9ee571 408 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 409 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 410 */
Wolfgang Betz 0:4fb29d9ee571 411 #define SpiritPktStackFec(xNewState) SpiritPktCommonFec(xNewState)
Wolfgang Betz 0:4fb29d9ee571 412
Wolfgang Betz 0:4fb29d9ee571 413
Wolfgang Betz 0:4fb29d9ee571 414 /**
Wolfgang Betz 0:4fb29d9ee571 415 * @brief Sets a specific SYNC word for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 416 * @param xSyncX SYNC word number to be set.
Wolfgang Betz 0:4fb29d9ee571 417 * This parameter can be any value of @ref StackSyncX.
Wolfgang Betz 0:4fb29d9ee571 418 * @param cSyncWord SYNC word.
Wolfgang Betz 0:4fb29d9ee571 419 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 420 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 421 */
Wolfgang Betz 0:4fb29d9ee571 422 #define SpiritPktStackSetSyncxWord(xSyncX, cSyncWord) SpiritPktCommonSetSyncxWord((PktSyncX)xSyncX,cSyncWord)
Wolfgang Betz 0:4fb29d9ee571 423
Wolfgang Betz 0:4fb29d9ee571 424
Wolfgang Betz 0:4fb29d9ee571 425 /**
Wolfgang Betz 0:4fb29d9ee571 426 * @brief Returns a specific SYNC word for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 427 * @param xSyncX SYNC word number to be get.
Wolfgang Betz 0:4fb29d9ee571 428 * This parameter can be any value of @ref StackSyncX.
Wolfgang Betz 0:4fb29d9ee571 429 * @retval uint8_t Sync word x.
Wolfgang Betz 0:4fb29d9ee571 430 */
Wolfgang Betz 0:4fb29d9ee571 431 #define SpiritPktStackGetSyncxWord(xSyncX) SpiritPktCommonGetSyncxWord(xSyncX)
Wolfgang Betz 0:4fb29d9ee571 432
Wolfgang Betz 0:4fb29d9ee571 433
Wolfgang Betz 0:4fb29d9ee571 434 /**
Wolfgang Betz 0:4fb29d9ee571 435 * @brief Sets multiple SYNC words for SPIRIT STack packets.
Wolfgang Betz 0:4fb29d9ee571 436 * @param lSyncWords SYNC words to be set with format: 0x|SYNC1|SYNC2|SYNC3|SYNC4|.
Wolfgang Betz 0:4fb29d9ee571 437 * This parameter is a uint32_t.
Wolfgang Betz 0:4fb29d9ee571 438 * @param xSyncLength SYNC length in bytes. The 32bit word passed will be stored in the SYNCx registers from the MSb
Wolfgang Betz 0:4fb29d9ee571 439 * until the number of bytes in xSyncLength has been stored.
Wolfgang Betz 0:4fb29d9ee571 440 * This parameter is a @ref StackSyncLength.
Wolfgang Betz 0:4fb29d9ee571 441 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 442 */
Wolfgang Betz 0:4fb29d9ee571 443 #define SpiritPktStackSetSyncWords(lSyncWords, xSyncLength) SpiritPktCommonSetSyncWords(lSyncWords,(PktSyncLength)xSyncLength)
Wolfgang Betz 0:4fb29d9ee571 444
Wolfgang Betz 0:4fb29d9ee571 445
Wolfgang Betz 0:4fb29d9ee571 446 /**
Wolfgang Betz 0:4fb29d9ee571 447 * @brief Returns multiple SYNC words for SPIRIT packets.
Wolfgang Betz 0:4fb29d9ee571 448 * @param xSyncLength SYNC length in bytes. The 32bit word passed will be stored in the SYNCx registers from the MSb
Wolfgang Betz 0:4fb29d9ee571 449 * until the number of bytes in xSyncLength has been stored.
Wolfgang Betz 0:4fb29d9ee571 450 * This parameter is a pointer to @ref StackSyncLength.
Wolfgang Betz 0:4fb29d9ee571 451 * @retval uint32_t Sync words. The format of the read 32 bit word is 0x|SYNC1|SYNC2|SYNC3|SYNC4|.
Wolfgang Betz 0:4fb29d9ee571 452 */
Wolfgang Betz 0:4fb29d9ee571 453 #define SpiritPktStackGetSyncWords(xSyncLength) SpiritPktCommonGetSyncWords((PktSyncLength)xSyncLength)
Wolfgang Betz 0:4fb29d9ee571 454
Wolfgang Betz 0:4fb29d9ee571 455
Wolfgang Betz 0:4fb29d9ee571 456 /**
Wolfgang Betz 0:4fb29d9ee571 457 * @brief Returns the SPIRIT variable length width (in number of bits).
Wolfgang Betz 0:4fb29d9ee571 458 * @param None.
Wolfgang Betz 0:4fb29d9ee571 459 * @retval uint8_t Variable length width in bits.
Wolfgang Betz 0:4fb29d9ee571 460 */
Wolfgang Betz 0:4fb29d9ee571 461 #define SpiritPktStackGetVarLengthWidth() SpiritPktCommonGetVarLengthWidth()
Wolfgang Betz 0:4fb29d9ee571 462
Wolfgang Betz 0:4fb29d9ee571 463
Wolfgang Betz 0:4fb29d9ee571 464 /**
Wolfgang Betz 0:4fb29d9ee571 465 * @brief Sets the destination address for the Tx packet.
Wolfgang Betz 0:4fb29d9ee571 466 * @param cAddress destination address.
Wolfgang Betz 0:4fb29d9ee571 467 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 468 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 469 */
Wolfgang Betz 0:4fb29d9ee571 470 #define SpiritPktStackSetDestinationAddress(cAddress) SpiritPktCommonSetDestinationAddress(cAddress)
Wolfgang Betz 0:4fb29d9ee571 471
Wolfgang Betz 0:4fb29d9ee571 472
Wolfgang Betz 0:4fb29d9ee571 473 /**
Wolfgang Betz 0:4fb29d9ee571 474 * @brief Sets the Rx packet reference source address. The source address extracted from the received packet is masked
Wolfgang Betz 0:4fb29d9ee571 475 * with the source reference mask and then compared to the masked reference value.
Wolfgang Betz 0:4fb29d9ee571 476 * @param cAddress Reference source address.
Wolfgang Betz 0:4fb29d9ee571 477 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 478 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 479 */
Wolfgang Betz 0:4fb29d9ee571 480 #define SpiritPktStackSetSourceReferenceAddress(cAddress) SpiritPktCommonSetDestinationAddress(cAddress)
Wolfgang Betz 0:4fb29d9ee571 481
Wolfgang Betz 0:4fb29d9ee571 482
Wolfgang Betz 0:4fb29d9ee571 483 /**
Wolfgang Betz 0:4fb29d9ee571 484 * @brief Returns the Rx packet reference source address. The source address extracted from the received packet is masked
Wolfgang Betz 0:4fb29d9ee571 485 * with the source reference mask and then compared to the masked reference value.
Wolfgang Betz 0:4fb29d9ee571 486 * @param cAddress Reference source address.
Wolfgang Betz 0:4fb29d9ee571 487 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 488 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 489 */
Wolfgang Betz 0:4fb29d9ee571 490 #define SpiritPktStackGetSourceReferenceAddress() SpiritPktCommonGetTransmittedDestAddress()
Wolfgang Betz 0:4fb29d9ee571 491
Wolfgang Betz 0:4fb29d9ee571 492
Wolfgang Betz 0:4fb29d9ee571 493 /**
Wolfgang Betz 0:4fb29d9ee571 494 * @brief Returns the settled destination address.
Wolfgang Betz 0:4fb29d9ee571 495 * @param None.
Wolfgang Betz 0:4fb29d9ee571 496 * @retval uint8_t Transmitted destination address.
Wolfgang Betz 0:4fb29d9ee571 497 */
Wolfgang Betz 0:4fb29d9ee571 498 #define SpiritPktStackGetTransmittedDestAddress() SpiritPktCommonGetTransmittedDestAddress()
Wolfgang Betz 0:4fb29d9ee571 499
Wolfgang Betz 0:4fb29d9ee571 500
Wolfgang Betz 0:4fb29d9ee571 501 /**
Wolfgang Betz 0:4fb29d9ee571 502 * @brief Sets the node address. When the filtering on my address is on, if the destination address extracted from the received packet is equal to the content of the
Wolfgang Betz 0:4fb29d9ee571 503 * my address, then the packet is accepted (this is the address of the node).
Wolfgang Betz 0:4fb29d9ee571 504 * @param cAddress Address of the present node.
Wolfgang Betz 0:4fb29d9ee571 505 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 506 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 507 */
Wolfgang Betz 0:4fb29d9ee571 508 #define SpiritPktStackSetMyAddress(cAddress) SpiritPktCommonSetMyAddress(cAddress)
Wolfgang Betz 0:4fb29d9ee571 509
Wolfgang Betz 0:4fb29d9ee571 510
Wolfgang Betz 0:4fb29d9ee571 511 /**
Wolfgang Betz 0:4fb29d9ee571 512 * @brief Returns the address of the present node.
Wolfgang Betz 0:4fb29d9ee571 513 * @param None.
Wolfgang Betz 0:4fb29d9ee571 514 * @retval uint8_t My address (address of this node).
Wolfgang Betz 0:4fb29d9ee571 515 */
Wolfgang Betz 0:4fb29d9ee571 516 #define SpiritPktStackGetMyAddress() SpiritPktCommonGetMyAddress()
Wolfgang Betz 0:4fb29d9ee571 517
Wolfgang Betz 0:4fb29d9ee571 518
Wolfgang Betz 0:4fb29d9ee571 519 /**
Wolfgang Betz 0:4fb29d9ee571 520 * @brief Sets the broadcast address. When the broadcast filtering is on, if the destination address extracted from the received packet is equal to the content of the
Wolfgang Betz 0:4fb29d9ee571 521 * BROADCAST_ADDR register, then the packet is accepted.
Wolfgang Betz 0:4fb29d9ee571 522 * @param cAddress Broadcast address.
Wolfgang Betz 0:4fb29d9ee571 523 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 524 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 525 */
Wolfgang Betz 0:4fb29d9ee571 526 #define SpiritPktStackSetBroadcastAddress(cAddress) SpiritPktCommonSetBroadcastAddress(cAddress)
Wolfgang Betz 0:4fb29d9ee571 527
Wolfgang Betz 0:4fb29d9ee571 528
Wolfgang Betz 0:4fb29d9ee571 529 /**
Wolfgang Betz 0:4fb29d9ee571 530 * @brief Returns the broadcast address.
Wolfgang Betz 0:4fb29d9ee571 531 * @param None.
Wolfgang Betz 0:4fb29d9ee571 532 * @retval uint8_t Broadcast address.
Wolfgang Betz 0:4fb29d9ee571 533 */
Wolfgang Betz 0:4fb29d9ee571 534 #define SpiritPktStackGetBroadcastAddress() SpiritPktCommonGetBroadcastAddress()
Wolfgang Betz 0:4fb29d9ee571 535
Wolfgang Betz 0:4fb29d9ee571 536
Wolfgang Betz 0:4fb29d9ee571 537 /**
Wolfgang Betz 0:4fb29d9ee571 538 * @brief Sets the multicast address. When the multicast filtering is on, if the destination address extracted from the received packet is equal to the content of the
Wolfgang Betz 0:4fb29d9ee571 539 * MULTICAST_ADDR register, then the packet is accepted.
Wolfgang Betz 0:4fb29d9ee571 540 * @param cAddress Multicast address.
Wolfgang Betz 0:4fb29d9ee571 541 * This parameter is an uint8_t.
Wolfgang Betz 0:4fb29d9ee571 542 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 543 */
Wolfgang Betz 0:4fb29d9ee571 544 #define SpiritPktStackSetMulticastAddress(cAddress) SpiritPktCommonSetMulticastAddress(cAddress)
Wolfgang Betz 0:4fb29d9ee571 545
Wolfgang Betz 0:4fb29d9ee571 546
Wolfgang Betz 0:4fb29d9ee571 547 /**
Wolfgang Betz 0:4fb29d9ee571 548 * @brief Returns the multicast address.
Wolfgang Betz 0:4fb29d9ee571 549 * @param None.
Wolfgang Betz 0:4fb29d9ee571 550 * @retval uint8_t Multicast address.
Wolfgang Betz 0:4fb29d9ee571 551 */
Wolfgang Betz 0:4fb29d9ee571 552 #define SpiritPktStackGetMulticastAddress() SpiritPktCommonGetMulticastAddress()
Wolfgang Betz 0:4fb29d9ee571 553
Wolfgang Betz 0:4fb29d9ee571 554
Wolfgang Betz 0:4fb29d9ee571 555 /**
Wolfgang Betz 0:4fb29d9ee571 556 * @brief Sets the control mask. The 1 bits of the CONTROL_MASK indicate the
Wolfgang Betz 0:4fb29d9ee571 557 * bits to be used in filtering. (All 0s no filtering)
Wolfgang Betz 0:4fb29d9ee571 558 * @param lMask Control mask.
Wolfgang Betz 0:4fb29d9ee571 559 * This parameter is an uint32_t.
Wolfgang Betz 0:4fb29d9ee571 560 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 561 */
Wolfgang Betz 0:4fb29d9ee571 562 #define SpiritPktStackSetCtrlMask(lMask) SpiritPktCommonSetCtrlMask(lMask)
Wolfgang Betz 0:4fb29d9ee571 563
Wolfgang Betz 0:4fb29d9ee571 564
Wolfgang Betz 0:4fb29d9ee571 565 /**
Wolfgang Betz 0:4fb29d9ee571 566 * @brief Returns the control mask. The 1 bits of the CONTROL_MASK indicate the
Wolfgang Betz 0:4fb29d9ee571 567 * bits to be used in filtering. (All 0s no filtering)
Wolfgang Betz 0:4fb29d9ee571 568 * @param None.
Wolfgang Betz 0:4fb29d9ee571 569 * @retval uint32_t Control mask.
Wolfgang Betz 0:4fb29d9ee571 570 */
Wolfgang Betz 0:4fb29d9ee571 571 #define SpiritPktStackGetCtrlMask() SpiritPktCommonGetCtrlMask()
Wolfgang Betz 0:4fb29d9ee571 572
Wolfgang Betz 0:4fb29d9ee571 573
Wolfgang Betz 0:4fb29d9ee571 574 /**
Wolfgang Betz 0:4fb29d9ee571 575 * @brief Sets the control field reference. If the bits enabled by the
Wolfgang Betz 0:4fb29d9ee571 576 * CONTROL_MASK match the ones of the control fields extracted from the received packet
Wolfgang Betz 0:4fb29d9ee571 577 * then the packet is accepted.
Wolfgang Betz 0:4fb29d9ee571 578 * @param lReference Control reference.
Wolfgang Betz 0:4fb29d9ee571 579 * This parameter is an uint32_t.
Wolfgang Betz 0:4fb29d9ee571 580 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 581 */
Wolfgang Betz 0:4fb29d9ee571 582 #define SpiritPktStackSetCtrlReference(lReference) SpiritPktCommonSetCtrlReference(lReference)
Wolfgang Betz 0:4fb29d9ee571 583
Wolfgang Betz 0:4fb29d9ee571 584
Wolfgang Betz 0:4fb29d9ee571 585 /**
Wolfgang Betz 0:4fb29d9ee571 586 * @brief Returns the control field reference.
Wolfgang Betz 0:4fb29d9ee571 587 * @param None.
Wolfgang Betz 0:4fb29d9ee571 588 * @retval uint32_t Control reference.
Wolfgang Betz 0:4fb29d9ee571 589 */
Wolfgang Betz 0:4fb29d9ee571 590 #define SpiritPktStackGetCtrlReference() SpiritPktCommonGetCtrlReference()
Wolfgang Betz 0:4fb29d9ee571 591
Wolfgang Betz 0:4fb29d9ee571 592
Wolfgang Betz 0:4fb29d9ee571 593 /**
Wolfgang Betz 0:4fb29d9ee571 594 * @brief Sets the TX control field.
Wolfgang Betz 0:4fb29d9ee571 595 * @param lField TX CONTROL FIELD.
Wolfgang Betz 0:4fb29d9ee571 596 * This parameter is an uint32_t.
Wolfgang Betz 0:4fb29d9ee571 597 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 598 */
Wolfgang Betz 0:4fb29d9ee571 599 #define SpiritPktStackSetTransmittedCtrlField(lField) SpiritPktCommonSetTransmittedCtrlField(lField)
Wolfgang Betz 0:4fb29d9ee571 600
Wolfgang Betz 0:4fb29d9ee571 601
Wolfgang Betz 0:4fb29d9ee571 602 /**
Wolfgang Betz 0:4fb29d9ee571 603 * @brief Returns the TX control field.
Wolfgang Betz 0:4fb29d9ee571 604 * @param None.
Wolfgang Betz 0:4fb29d9ee571 605 * @retval uint32_t Control field of the transmitted packet.
Wolfgang Betz 0:4fb29d9ee571 606 */
Wolfgang Betz 0:4fb29d9ee571 607 #define SpiritPktStackGetTransmittedCtrlField() SpiritPktCommonGetTransmittedCtrlField()
Wolfgang Betz 0:4fb29d9ee571 608
Wolfgang Betz 0:4fb29d9ee571 609
Wolfgang Betz 0:4fb29d9ee571 610 /**
Wolfgang Betz 0:4fb29d9ee571 611 * @brief If enabled RX packet is accepted if its destination address matches with TX_SOURCE_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 612 * @param xNewState new state for DEST_VS_SOURCE_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 613 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 614 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 615 */
Wolfgang Betz 0:4fb29d9ee571 616 #define SpiritPktStackFilterOnMyAddress(xNewState) SpiritPktCommonFilterOnMyAddress(xNewState)
Wolfgang Betz 0:4fb29d9ee571 617
Wolfgang Betz 0:4fb29d9ee571 618
Wolfgang Betz 0:4fb29d9ee571 619 /**
Wolfgang Betz 0:4fb29d9ee571 620 * @brief If enabled RX packet is accepted if its destination address matches with MULTICAST_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 621 * @param xNewState new state for DEST_VS_MULTICAST_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 622 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 623 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 624 */
Wolfgang Betz 0:4fb29d9ee571 625 #define SpiritPktStackFilterOnMulticastAddress(xNewState) SpiritPktCommonFilterOnMulticastAddress(xNewState)
Wolfgang Betz 0:4fb29d9ee571 626
Wolfgang Betz 0:4fb29d9ee571 627
Wolfgang Betz 0:4fb29d9ee571 628 /**
Wolfgang Betz 0:4fb29d9ee571 629 * @brief If enabled RX packet is accepted if its destination address matches with BROADCAST_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 630 * @param xNewState new state for DEST_VS_BROADCAST_ADDRESS.
Wolfgang Betz 0:4fb29d9ee571 631 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 632 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 633 */
Wolfgang Betz 0:4fb29d9ee571 634 #define SpiritPktStackFilterOnBroadcastAddress(xNewState) SpiritPktCommonFilterOnBroadcastAddress(xNewState)
Wolfgang Betz 0:4fb29d9ee571 635
Wolfgang Betz 0:4fb29d9ee571 636
Wolfgang Betz 0:4fb29d9ee571 637 /**
Wolfgang Betz 0:4fb29d9ee571 638 * @brief Returns the enable bit of the my address filtering.
Wolfgang Betz 0:4fb29d9ee571 639 * @param None.
Wolfgang Betz 0:4fb29d9ee571 640 * @retval SpiritFunctionalStateThis parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 641 */
Wolfgang Betz 0:4fb29d9ee571 642 #define SpiritPktStackGetFilterOnMyAddress() SpiritPktCommonGetFilterOnMyAddress();
Wolfgang Betz 0:4fb29d9ee571 643
Wolfgang Betz 0:4fb29d9ee571 644
Wolfgang Betz 0:4fb29d9ee571 645 /**
Wolfgang Betz 0:4fb29d9ee571 646 * @brief Returns the enable bit of the multicast address filtering.
Wolfgang Betz 0:4fb29d9ee571 647 * @param None.
Wolfgang Betz 0:4fb29d9ee571 648 * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 649 */
Wolfgang Betz 0:4fb29d9ee571 650 #define SpiritPktStackGetFilterOnMulticastAddress() SpiritPktCommonGetFilterOnMulticastAddress();
Wolfgang Betz 0:4fb29d9ee571 651
Wolfgang Betz 0:4fb29d9ee571 652
Wolfgang Betz 0:4fb29d9ee571 653 /**
Wolfgang Betz 0:4fb29d9ee571 654 * @brief Returns the enable bit of the broadcast address filtering.
Wolfgang Betz 0:4fb29d9ee571 655 * @param None.
Wolfgang Betz 0:4fb29d9ee571 656 * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 657 */
Wolfgang Betz 0:4fb29d9ee571 658 #define SpiritPktStackGetFilterOnBroadcastAddress() SpiritPktCommonGetFilterOnBroadcastAddress();
Wolfgang Betz 0:4fb29d9ee571 659
Wolfgang Betz 0:4fb29d9ee571 660
Wolfgang Betz 0:4fb29d9ee571 661 /**
Wolfgang Betz 0:4fb29d9ee571 662 * @brief Returns the control field of the received packet.
Wolfgang Betz 0:4fb29d9ee571 663 * @param None.
Wolfgang Betz 0:4fb29d9ee571 664 * @retval uint32_t Received control field.
Wolfgang Betz 0:4fb29d9ee571 665 */
Wolfgang Betz 0:4fb29d9ee571 666 #define SpiritPktStackGetReceivedCtrlField() SpiritPktCommonGetReceivedCtrlField()
Wolfgang Betz 0:4fb29d9ee571 667
Wolfgang Betz 0:4fb29d9ee571 668
Wolfgang Betz 0:4fb29d9ee571 669 /**
Wolfgang Betz 0:4fb29d9ee571 670 * @brief Returns the CRC field of the received packet.
Wolfgang Betz 0:4fb29d9ee571 671 * @param cCrcFieldVect array in which the CRC field has to be stored.
Wolfgang Betz 0:4fb29d9ee571 672 * This parameter is an uint8_t array of 3 elements.
Wolfgang Betz 0:4fb29d9ee571 673 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 674 */
Wolfgang Betz 0:4fb29d9ee571 675 #define SpiritPktStackGetReceivedCrcField(cCrcFieldVect) SpiritPktCommonGetReceivedCrcField(cCrcFieldVect)
Wolfgang Betz 0:4fb29d9ee571 676
Wolfgang Betz 0:4fb29d9ee571 677 /**
Wolfgang Betz 0:4fb29d9ee571 678 * @brief Sets the AUTO ACKNOLEDGEMENT mechanism on the receiver. When the feature is enabled and
Wolfgang Betz 0:4fb29d9ee571 679 * a data packet has been correctly received, then an acknowledgement packet is sent back to the originator of the received
Wolfgang Betz 0:4fb29d9ee571 680 * packet. If the PIGGYBACKING bit is also set, payload data will be read from the FIFO; otherwise an empty packet is sent
Wolfgang Betz 0:4fb29d9ee571 681 * only containing the source and destination addresses and the sequence number of the packet being acknowledged.
Wolfgang Betz 0:4fb29d9ee571 682 * @param xAutoAck new state for autoack.
Wolfgang Betz 0:4fb29d9ee571 683 * This parameter can be: S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 684 * @param xPiggybacking new state for autoack.
Wolfgang Betz 0:4fb29d9ee571 685 * This parameter can be: S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 686 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 687 */
Wolfgang Betz 0:4fb29d9ee571 688 #define SpiritPktStackAutoAck(xAutoAck, xPiggybacking) SpiritPktCommonAutoAck(xAutoAck, xPiggybacking)
Wolfgang Betz 0:4fb29d9ee571 689
Wolfgang Betz 0:4fb29d9ee571 690
Wolfgang Betz 0:4fb29d9ee571 691 /**
Wolfgang Betz 0:4fb29d9ee571 692 * @brief Sets the AUTO ACKNOLEDGEMENT mechanism on the transmitter. On the transmitter side, the NACK_TX field can be used to require or not an acknowledgment for each individual packet: if
Wolfgang Betz 0:4fb29d9ee571 693 * NACK_TX is set to "1" then acknowledgment will not be required; if NACK_TX is set to "0" then acknowledgment will be
Wolfgang Betz 0:4fb29d9ee571 694 * required.
Wolfgang Betz 0:4fb29d9ee571 695 * @param xNewState new state for TX_AUTOACK.
Wolfgang Betz 0:4fb29d9ee571 696 * This parameter can be: S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 697 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 698 */
Wolfgang Betz 0:4fb29d9ee571 699 #define SpiritPktStackRequireAck(xNewState) SpiritPktCommonRequireAck(xNewState)
Wolfgang Betz 0:4fb29d9ee571 700
Wolfgang Betz 0:4fb29d9ee571 701
Wolfgang Betz 0:4fb29d9ee571 702 /**
Wolfgang Betz 0:4fb29d9ee571 703 * @brief Sets the TX sequence number to be used to start counting.
Wolfgang Betz 0:4fb29d9ee571 704 * @param cSeqNumberReload new value for Tx seq number reload.
Wolfgang Betz 0:4fb29d9ee571 705 * This parameter can be: S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 706 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 707 */
Wolfgang Betz 0:4fb29d9ee571 708 #define SpiritPktStackSetTransmittedSeqNumberReload(cSeqNumberReload) SpiritPktCommonSetTransmittedSeqNumberReload(cSeqNumberReload)
Wolfgang Betz 0:4fb29d9ee571 709
Wolfgang Betz 0:4fb29d9ee571 710
Wolfgang Betz 0:4fb29d9ee571 711 /**
Wolfgang Betz 0:4fb29d9ee571 712 * @brief Sets the max number of automatic retransmission.
Wolfgang Betz 0:4fb29d9ee571 713 * @param xNMaxReTx max number of retransmission.
Wolfgang Betz 0:4fb29d9ee571 714 * This parameter can be any value of @ref PktNMaxReTx.
Wolfgang Betz 0:4fb29d9ee571 715 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 716 */
Wolfgang Betz 0:4fb29d9ee571 717 #define SpiritPktStackSetNMaxReTx(xNMaxReTx) SpiritPktCommonSetNMaxReTx((PktNMaxReTx)xNMaxReTx)
Wolfgang Betz 0:4fb29d9ee571 718
Wolfgang Betz 0:4fb29d9ee571 719
Wolfgang Betz 0:4fb29d9ee571 720 /**
Wolfgang Betz 0:4fb29d9ee571 721 * @brief Returns the max number of automatic retransmission.
Wolfgang Betz 0:4fb29d9ee571 722 * @param None.
Wolfgang Betz 0:4fb29d9ee571 723 * @retval uint8_t Max number of retransmissions.
Wolfgang Betz 0:4fb29d9ee571 724 */
Wolfgang Betz 0:4fb29d9ee571 725 #define SpiritPktStackGetNMaxReTx() SpiritPktCommonGetNMaxReTx()
Wolfgang Betz 0:4fb29d9ee571 726
Wolfgang Betz 0:4fb29d9ee571 727
Wolfgang Betz 0:4fb29d9ee571 728 /**
Wolfgang Betz 0:4fb29d9ee571 729 * @brief Returns the TX ACK request.
Wolfgang Betz 0:4fb29d9ee571 730 * @param None.
Wolfgang Betz 0:4fb29d9ee571 731 * @retval SpiritFunctionalState.
Wolfgang Betz 0:4fb29d9ee571 732 */
Wolfgang Betz 0:4fb29d9ee571 733 #define SpiritPktStackGetGetTxAckRequest() SpiritPktCommonGetTxAckRequest()
Wolfgang Betz 0:4fb29d9ee571 734
Wolfgang Betz 0:4fb29d9ee571 735 /**
Wolfgang Betz 0:4fb29d9ee571 736 * @brief Returns the destination address of the received packet.
Wolfgang Betz 0:4fb29d9ee571 737 * @param None.
Wolfgang Betz 0:4fb29d9ee571 738 * @retval uint8_t Destination address of the received packet.
Wolfgang Betz 0:4fb29d9ee571 739 */
Wolfgang Betz 0:4fb29d9ee571 740 #define SpiritPktStackGetReceivedDestAddress() SpiritPktCommonGetReceivedDestAddress()
Wolfgang Betz 0:4fb29d9ee571 741
Wolfgang Betz 0:4fb29d9ee571 742
Wolfgang Betz 0:4fb29d9ee571 743 /**
Wolfgang Betz 0:4fb29d9ee571 744 * @brief Returns the source address of the received packet.
Wolfgang Betz 0:4fb29d9ee571 745 * @param None.
Wolfgang Betz 0:4fb29d9ee571 746 * @retval uint8_t Source address of the received packet.
Wolfgang Betz 0:4fb29d9ee571 747 */
Wolfgang Betz 0:4fb29d9ee571 748 #define SpiritPktStackGetReceivedSourceAddress() SpiritPktCommonGetReceivedSourceAddress()
Wolfgang Betz 0:4fb29d9ee571 749
Wolfgang Betz 0:4fb29d9ee571 750
Wolfgang Betz 0:4fb29d9ee571 751 /**
Wolfgang Betz 0:4fb29d9ee571 752 * @brief Returns the sequence number of the received packet.
Wolfgang Betz 0:4fb29d9ee571 753 * @param None.
Wolfgang Betz 0:4fb29d9ee571 754 * @retval uint8_t Received Sequence number.
Wolfgang Betz 0:4fb29d9ee571 755 */
Wolfgang Betz 0:4fb29d9ee571 756 #define SpiritPktStackGetReceivedSeqNumber() SpiritPktCommonGetReceivedSeqNumber()
Wolfgang Betz 0:4fb29d9ee571 757
Wolfgang Betz 0:4fb29d9ee571 758
Wolfgang Betz 0:4fb29d9ee571 759 /**
Wolfgang Betz 0:4fb29d9ee571 760 * @brief Returns the Nack bit of the received packet
Wolfgang Betz 0:4fb29d9ee571 761 * @param None.
Wolfgang Betz 0:4fb29d9ee571 762 * @retval uint8_t Value of the NAck bit.
Wolfgang Betz 0:4fb29d9ee571 763 */
Wolfgang Betz 0:4fb29d9ee571 764 #define SpiritPktStackGetReceivedNackRx() SpiritPktCommonGetReceivedNackRx()
Wolfgang Betz 0:4fb29d9ee571 765
Wolfgang Betz 0:4fb29d9ee571 766
Wolfgang Betz 0:4fb29d9ee571 767 /**
Wolfgang Betz 0:4fb29d9ee571 768 * @brief Returns the sequence number of the transmitted packet.
Wolfgang Betz 0:4fb29d9ee571 769 * @param None.
Wolfgang Betz 0:4fb29d9ee571 770 * @retval uint8_t Sequence number of the transmitted packet.
Wolfgang Betz 0:4fb29d9ee571 771 */
Wolfgang Betz 0:4fb29d9ee571 772 #define SpiritPktStackGetTransmittedSeqNumber() SpiritPktCommonGetTransmittedSeqNumber()
Wolfgang Betz 0:4fb29d9ee571 773
Wolfgang Betz 0:4fb29d9ee571 774
Wolfgang Betz 0:4fb29d9ee571 775 /**
Wolfgang Betz 0:4fb29d9ee571 776 * @brief Returns the number of retransmission done on the transmitted packet.
Wolfgang Betz 0:4fb29d9ee571 777 * @param None.
Wolfgang Betz 0:4fb29d9ee571 778 * @retval uint8_t Number of retransmissions done until now.
Wolfgang Betz 0:4fb29d9ee571 779 */
Wolfgang Betz 0:4fb29d9ee571 780 #define SpiritPktStackGetNReTx() SpiritPktCommonGetNReTx()
Wolfgang Betz 0:4fb29d9ee571 781
Wolfgang Betz 0:4fb29d9ee571 782
Wolfgang Betz 0:4fb29d9ee571 783 /**
Wolfgang Betz 0:4fb29d9ee571 784 * @brief If enabled RX packet is accepted only if the masked control field matches the
Wolfgang Betz 0:4fb29d9ee571 785 * masked control field reference (CONTROL_MASK & CONTROL_FIELD_REF == CONTROL_MASK & RX_CONTROL_FIELD).
Wolfgang Betz 0:4fb29d9ee571 786 * @param xNewState new state for Control filtering enable bit.
Wolfgang Betz 0:4fb29d9ee571 787 * This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 788 * @retval None.
Wolfgang Betz 0:4fb29d9ee571 789 * @note This filtering control is enabled by default but the control mask is by default set to 0.
Wolfgang Betz 0:4fb29d9ee571 790 * As a matter of fact the user has to enable the control filtering bit after the packet initialization
Wolfgang Betz 0:4fb29d9ee571 791 * because the PktInit routine disables it.
Wolfgang Betz 0:4fb29d9ee571 792 */
Wolfgang Betz 0:4fb29d9ee571 793 #define SpiritPktStackFilterOnControlField(xNewState) SpiritPktCommonFilterOnControlField(xNewState)
Wolfgang Betz 0:4fb29d9ee571 794
Wolfgang Betz 0:4fb29d9ee571 795
Wolfgang Betz 0:4fb29d9ee571 796 /**
Wolfgang Betz 0:4fb29d9ee571 797 * @brief Returns the enable bit of the control field filtering.
Wolfgang Betz 0:4fb29d9ee571 798 * @param None.
Wolfgang Betz 0:4fb29d9ee571 799 * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE.
Wolfgang Betz 0:4fb29d9ee571 800 */
Wolfgang Betz 0:4fb29d9ee571 801 #define SpiritPktStackGetFilterOnControlField() SpiritPktCommonGetFilterOnControlField();
Wolfgang Betz 0:4fb29d9ee571 802
Wolfgang Betz 0:4fb29d9ee571 803
Wolfgang Betz 0:4fb29d9ee571 804 /**
Wolfgang Betz 0:4fb29d9ee571 805 *@}
Wolfgang Betz 0:4fb29d9ee571 806 */
Wolfgang Betz 0:4fb29d9ee571 807
Wolfgang Betz 0:4fb29d9ee571 808
Wolfgang Betz 0:4fb29d9ee571 809 /**
Wolfgang Betz 0:4fb29d9ee571 810 * @defgroup PktStack_Exported_Functions Pkt STack Exported Functions
Wolfgang Betz 0:4fb29d9ee571 811 * @{
Wolfgang Betz 0:4fb29d9ee571 812 */
Wolfgang Betz 0:4fb29d9ee571 813
Wolfgang Betz 0:4fb29d9ee571 814 void SpiritPktStackInit(PktStackInit* pxPktStackInit);
Wolfgang Betz 0:4fb29d9ee571 815 void SpiritPktStackGetInfo(PktStackInit* pxPktStackInit);
Wolfgang Betz 0:4fb29d9ee571 816 void SpiritPktStackAddressesInit(PktStackAddressesInit* pxPktStackAddresses);
Wolfgang Betz 0:4fb29d9ee571 817 void SpiritPktStackGetAddressesInfo(PktStackAddressesInit* pxPktStackAddresses);
Wolfgang Betz 0:4fb29d9ee571 818 void SpiritPktStackLlpInit(PktStackLlpInit* pxPktStackLlpInit);
Wolfgang Betz 0:4fb29d9ee571 819 void SpiritPktStackLlpGetInfo(PktStackLlpInit* pxPktStackLlpInit);
Wolfgang Betz 0:4fb29d9ee571 820 void SpiritPktStackSetFormat(void);
Wolfgang Betz 0:4fb29d9ee571 821 void SpiritPktStackSetPayloadLength(uint16_t nPayloadLength);
Wolfgang Betz 0:4fb29d9ee571 822 uint16_t SpiritPktStackGetPayloadLength(void);
Wolfgang Betz 0:4fb29d9ee571 823 void SpiritPktStackSetVarLengthWidth(uint16_t nMaxPayloadLength, StackControlLength xControlLength);
Wolfgang Betz 0:4fb29d9ee571 824 void SpiritPktStackSetRxSourceMask(uint8_t cMask);
Wolfgang Betz 0:4fb29d9ee571 825 uint8_t SpiritPktStackGetRxSourceMask(void);
Wolfgang Betz 0:4fb29d9ee571 826 uint16_t SpiritPktStackGetReceivedPktLength(void);
Wolfgang Betz 0:4fb29d9ee571 827 void SpiritPktStackFilterOnSourceAddress(SpiritFunctionalState xNewState);
Wolfgang Betz 0:4fb29d9ee571 828 void SpiritPktStackSetAddressLength(void);
Wolfgang Betz 0:4fb29d9ee571 829
Wolfgang Betz 0:4fb29d9ee571 830 /**
Wolfgang Betz 0:4fb29d9ee571 831 *@}
Wolfgang Betz 0:4fb29d9ee571 832 */
Wolfgang Betz 0:4fb29d9ee571 833
Wolfgang Betz 0:4fb29d9ee571 834 /**
Wolfgang Betz 0:4fb29d9ee571 835 *@}
Wolfgang Betz 0:4fb29d9ee571 836 */
Wolfgang Betz 0:4fb29d9ee571 837
Wolfgang Betz 0:4fb29d9ee571 838
Wolfgang Betz 0:4fb29d9ee571 839 /**
Wolfgang Betz 0:4fb29d9ee571 840 *@}
Wolfgang Betz 0:4fb29d9ee571 841 */
Wolfgang Betz 0:4fb29d9ee571 842
Wolfgang Betz 0:4fb29d9ee571 843 #ifdef __cplusplus
Wolfgang Betz 0:4fb29d9ee571 844 }
Wolfgang Betz 0:4fb29d9ee571 845 #endif
Wolfgang Betz 0:4fb29d9ee571 846
Wolfgang Betz 0:4fb29d9ee571 847 #endif
Wolfgang Betz 0:4fb29d9ee571 848
Wolfgang Betz 0:4fb29d9ee571 849 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/