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 Jul 06 11:13:31 2017 +0200
Revision:
67:93bec0baf1de
Parent:
34:edda6a7238ec
Clarify some comments

Who changed what in which revision?

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