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:
Tue Nov 22 11:40:10 2016 +0100
Revision:
34:edda6a7238ec
Child:
67:93bec0baf1de
Perform re-naming

Who changed what in which revision?

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