Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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).
source/libs/spirit1/SPIRIT1_Library/Inc/SPIRIT_PktBasic.h@67:93bec0baf1de, 2017-07-06 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wolfgang Betz |
67:93bec0baf1de | 1 | /** |
Wolfgang Betz |
67:93bec0baf1de | 2 | ****************************************************************************** |
Wolfgang Betz |
67:93bec0baf1de | 3 | * @file SPIRIT_PktBasic.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 Basic 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 Basic |
Wolfgang Betz |
67:93bec0baf1de | 12 | * packets. |
Wolfgang Betz |
67:93bec0baf1de | 13 | * The user can obtain a packet configuration filling the structure |
Wolfgang Betz |
67:93bec0baf1de | 14 | * <i>@ref PktBasicInit</i>, defining in it some general parameters |
Wolfgang Betz |
67:93bec0baf1de | 15 | * for the Spirit Basic packet format. |
Wolfgang Betz |
67:93bec0baf1de | 16 | * Another structure the user can fill is <i>@ref PktBasicAddressesInit</i> |
Wolfgang Betz |
67:93bec0baf1de | 17 | * to define the addresses which will be used during the communication. |
Wolfgang Betz |
67:93bec0baf1de | 18 | * Moreover, functions to set the payload length and the destination address |
Wolfgang Betz |
67:93bec0baf1de | 19 | * are provided. |
Wolfgang Betz |
67:93bec0baf1de | 20 | * |
Wolfgang Betz |
67:93bec0baf1de | 21 | * <b>Example:</b> |
Wolfgang Betz |
67:93bec0baf1de | 22 | * @code |
Wolfgang Betz |
67:93bec0baf1de | 23 | * |
Wolfgang Betz |
67:93bec0baf1de | 24 | * PktBasicInit basicInit={ |
Wolfgang Betz |
67:93bec0baf1de | 25 | * PKT_PREAMBLE_LENGTH_08BYTES, // preamble length in bytes |
Wolfgang Betz |
67:93bec0baf1de | 26 | * PKT_SYNC_LENGTH_4BYTES, // sync word length in bytes |
Wolfgang Betz |
67:93bec0baf1de | 27 | * 0x1A2635A8, // sync word |
Wolfgang Betz |
67:93bec0baf1de | 28 | * PKT_LENGTH_VAR, // variable or fixed payload length |
Wolfgang Betz |
67:93bec0baf1de | 29 | * 7, // length field width in bits (used only for variable length) |
Wolfgang Betz |
67:93bec0baf1de | 30 | * PKT_NO_CRC, // CRC mode |
Wolfgang Betz |
67:93bec0baf1de | 31 | * PKT_CONTROL_LENGTH_0BYTES, // control field length |
Wolfgang Betz |
67:93bec0baf1de | 32 | * S_ENABLE, // address field |
Wolfgang Betz |
67:93bec0baf1de | 33 | * S_DISABLE, // FEC |
Wolfgang Betz |
67:93bec0baf1de | 34 | * S_ENABLE // whitening |
Wolfgang Betz |
67:93bec0baf1de | 35 | * }; |
Wolfgang Betz |
67:93bec0baf1de | 36 | * |
Wolfgang Betz |
67:93bec0baf1de | 37 | * PktBasicAddressesInit addressInit={ |
Wolfgang Betz |
67:93bec0baf1de | 38 | * S_ENABLE, // enable/disable filtering on my address |
Wolfgang Betz |
67:93bec0baf1de | 39 | * 0x34, // my address (address of the current node) |
Wolfgang Betz |
67:93bec0baf1de | 40 | * S_DISABLE, // enable/disable filtering on multicast address |
Wolfgang Betz |
67:93bec0baf1de | 41 | * 0xEE, // multicast address |
Wolfgang Betz |
67:93bec0baf1de | 42 | * S_DISABLE, // enable/disable filtering on broadcast address |
Wolfgang Betz |
67:93bec0baf1de | 43 | * 0xFF // broadcast address |
Wolfgang Betz |
67:93bec0baf1de | 44 | * }; |
Wolfgang Betz |
67:93bec0baf1de | 45 | * |
Wolfgang Betz |
67:93bec0baf1de | 46 | * ... |
Wolfgang Betz |
67:93bec0baf1de | 47 | * |
Wolfgang Betz |
67:93bec0baf1de | 48 | * SpiritPktBasicInit(&basicInit); |
Wolfgang Betz |
67:93bec0baf1de | 49 | * SpiritPktBasicAddressesInit(&addressInit); |
Wolfgang Betz |
67:93bec0baf1de | 50 | * |
Wolfgang Betz |
67:93bec0baf1de | 51 | * ... |
Wolfgang Betz |
67:93bec0baf1de | 52 | * |
Wolfgang Betz |
67:93bec0baf1de | 53 | * SpiritPktBasicSetPayloadLength(20); |
Wolfgang Betz |
67:93bec0baf1de | 54 | * SpiritPktBasicSetDestinationAddress(0x44); |
Wolfgang Betz |
67:93bec0baf1de | 55 | * |
Wolfgang Betz |
67:93bec0baf1de | 56 | * ... |
Wolfgang Betz |
67:93bec0baf1de | 57 | * |
Wolfgang Betz |
67:93bec0baf1de | 58 | * @endcode |
Wolfgang Betz |
67:93bec0baf1de | 59 | * |
Wolfgang Betz |
67:93bec0baf1de | 60 | * The module provides some other functions that can be used to modify |
Wolfgang Betz |
67:93bec0baf1de | 61 | * or read only some configuration parameters. |
Wolfgang Betz |
67:93bec0baf1de | 62 | * |
Wolfgang Betz |
67:93bec0baf1de | 63 | * |
Wolfgang Betz |
67:93bec0baf1de | 64 | * @attention |
Wolfgang Betz |
67:93bec0baf1de | 65 | * |
Wolfgang Betz |
67:93bec0baf1de | 66 | * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> |
Wolfgang Betz |
67:93bec0baf1de | 67 | * |
Wolfgang Betz |
67:93bec0baf1de | 68 | * Redistribution and use in source and binary forms, with or without modification, |
Wolfgang Betz |
67:93bec0baf1de | 69 | * are permitted provided that the following conditions are met: |
Wolfgang Betz |
67:93bec0baf1de | 70 | * 1. Redistributions of source code must retain the above copyright notice, |
Wolfgang Betz |
67:93bec0baf1de | 71 | * this list of conditions and the following disclaimer. |
Wolfgang Betz |
67:93bec0baf1de | 72 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
Wolfgang Betz |
67:93bec0baf1de | 73 | * this list of conditions and the following disclaimer in the documentation |
Wolfgang Betz |
67:93bec0baf1de | 74 | * and/or other materials provided with the distribution. |
Wolfgang Betz |
67:93bec0baf1de | 75 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
Wolfgang Betz |
67:93bec0baf1de | 76 | * may be used to endorse or promote products derived from this software |
Wolfgang Betz |
67:93bec0baf1de | 77 | * without specific prior written permission. |
Wolfgang Betz |
67:93bec0baf1de | 78 | * |
Wolfgang Betz |
67:93bec0baf1de | 79 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
Wolfgang Betz |
67:93bec0baf1de | 80 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
Wolfgang Betz |
67:93bec0baf1de | 81 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
Wolfgang Betz |
67:93bec0baf1de | 82 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
Wolfgang Betz |
67:93bec0baf1de | 83 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
Wolfgang Betz |
67:93bec0baf1de | 84 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
Wolfgang Betz |
67:93bec0baf1de | 85 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
Wolfgang Betz |
67:93bec0baf1de | 86 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
Wolfgang Betz |
67:93bec0baf1de | 87 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
Wolfgang Betz |
67:93bec0baf1de | 88 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Wolfgang Betz |
67:93bec0baf1de | 89 | * |
Wolfgang Betz |
67:93bec0baf1de | 90 | ****************************************************************************** |
Wolfgang Betz |
67:93bec0baf1de | 91 | */ |
Wolfgang Betz |
67:93bec0baf1de | 92 | |
Wolfgang Betz |
67:93bec0baf1de | 93 | /* Define to prevent recursive inclusion -------------------------------------*/ |
Wolfgang Betz |
67:93bec0baf1de | 94 | #ifndef __SPIRIT_PKT_BASIC_H |
Wolfgang Betz |
67:93bec0baf1de | 95 | #define __SPIRIT_PKT_BASIC_H |
Wolfgang Betz |
67:93bec0baf1de | 96 | |
Wolfgang Betz |
67:93bec0baf1de | 97 | /* Includes ------------------------------------------------------------------*/ |
Wolfgang Betz |
67:93bec0baf1de | 98 | |
Wolfgang Betz |
67:93bec0baf1de | 99 | #include "SPIRIT_Regs.h" |
Wolfgang Betz |
67:93bec0baf1de | 100 | #include "SPIRIT_Types.h" |
Wolfgang Betz |
67:93bec0baf1de | 101 | #include "SPIRIT_PktCommon.h" |
Wolfgang Betz |
67:93bec0baf1de | 102 | |
Wolfgang Betz |
67:93bec0baf1de | 103 | #ifdef __cplusplus |
Wolfgang Betz |
67:93bec0baf1de | 104 | extern "C" { |
Wolfgang Betz |
67:93bec0baf1de | 105 | #endif |
Wolfgang Betz |
67:93bec0baf1de | 106 | |
Wolfgang Betz |
67:93bec0baf1de | 107 | |
Wolfgang Betz |
67:93bec0baf1de | 108 | |
Wolfgang Betz |
67:93bec0baf1de | 109 | /** |
Wolfgang Betz |
67:93bec0baf1de | 110 | * @addtogroup SPIRIT_Libraries |
Wolfgang Betz |
67:93bec0baf1de | 111 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 112 | */ |
Wolfgang Betz |
67:93bec0baf1de | 113 | |
Wolfgang Betz |
67:93bec0baf1de | 114 | |
Wolfgang Betz |
67:93bec0baf1de | 115 | /** |
Wolfgang Betz |
67:93bec0baf1de | 116 | * @defgroup SPIRIT_PktBasic Pkt Basic |
Wolfgang Betz |
67:93bec0baf1de | 117 | * @brief Configuration and management of SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 118 | * @details See the file <i>@ref SPIRIT_PktBasic.h</i> for more details. |
Wolfgang Betz |
67:93bec0baf1de | 119 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 120 | */ |
Wolfgang Betz |
67:93bec0baf1de | 121 | |
Wolfgang Betz |
67:93bec0baf1de | 122 | /** |
Wolfgang Betz |
67:93bec0baf1de | 123 | * @defgroup PktBasic_Exported_Types Pkt Basic Exported Types |
Wolfgang Betz |
67:93bec0baf1de | 124 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 125 | */ |
Wolfgang Betz |
67:93bec0baf1de | 126 | |
Wolfgang Betz |
67:93bec0baf1de | 127 | |
Wolfgang Betz |
67:93bec0baf1de | 128 | /** |
Wolfgang Betz |
67:93bec0baf1de | 129 | * @brief Preamble length in bytes enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 130 | */ |
Wolfgang Betz |
67:93bec0baf1de | 131 | typedef PktPreambleLength BasicPreambleLength; |
Wolfgang Betz |
67:93bec0baf1de | 132 | |
Wolfgang Betz |
67:93bec0baf1de | 133 | #define IS_BASIC_PREAMBLE_LENGTH IS_PKT_PREAMBLE_LENGTH |
Wolfgang Betz |
67:93bec0baf1de | 134 | |
Wolfgang Betz |
67:93bec0baf1de | 135 | /** |
Wolfgang Betz |
67:93bec0baf1de | 136 | * @brief Sync length in bytes enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 137 | */ |
Wolfgang Betz |
67:93bec0baf1de | 138 | typedef PktSyncLength BasicSyncLength; |
Wolfgang Betz |
67:93bec0baf1de | 139 | |
Wolfgang Betz |
67:93bec0baf1de | 140 | #define IS_BASIC_SYNC_LENGTH IS_PKT_SYNC_LENGTH |
Wolfgang Betz |
67:93bec0baf1de | 141 | |
Wolfgang Betz |
67:93bec0baf1de | 142 | |
Wolfgang Betz |
67:93bec0baf1de | 143 | |
Wolfgang Betz |
67:93bec0baf1de | 144 | /** |
Wolfgang Betz |
67:93bec0baf1de | 145 | * @brief CRC length in bytes enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 146 | */ |
Wolfgang Betz |
67:93bec0baf1de | 147 | typedef PktCrcMode BasicCrcMode; |
Wolfgang Betz |
67:93bec0baf1de | 148 | |
Wolfgang Betz |
67:93bec0baf1de | 149 | #define IS_BASIC_CRC_MODE IS_PKT_CRC_MODE |
Wolfgang Betz |
67:93bec0baf1de | 150 | |
Wolfgang Betz |
67:93bec0baf1de | 151 | |
Wolfgang Betz |
67:93bec0baf1de | 152 | /** |
Wolfgang Betz |
67:93bec0baf1de | 153 | * @brief Fixed or variable payload length enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 154 | */ |
Wolfgang Betz |
67:93bec0baf1de | 155 | typedef PktFixVarLength BasicFixVarLength; |
Wolfgang Betz |
67:93bec0baf1de | 156 | |
Wolfgang Betz |
67:93bec0baf1de | 157 | #define IS_BASIC_FIX_VAR_LENGTH IS_PKT_FIX_VAR_LENGTH |
Wolfgang Betz |
67:93bec0baf1de | 158 | |
Wolfgang Betz |
67:93bec0baf1de | 159 | /** |
Wolfgang Betz |
67:93bec0baf1de | 160 | * @brief Control length in bytes enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 161 | */ |
Wolfgang Betz |
67:93bec0baf1de | 162 | typedef PktControlLength BasicControlLength; |
Wolfgang Betz |
67:93bec0baf1de | 163 | |
Wolfgang Betz |
67:93bec0baf1de | 164 | #define IS_BASIC_CONTROL_LENGTH IS_PKT_CONTROL_LENGTH |
Wolfgang Betz |
67:93bec0baf1de | 165 | |
Wolfgang Betz |
67:93bec0baf1de | 166 | /** |
Wolfgang Betz |
67:93bec0baf1de | 167 | * @brief Sync words enumeration. |
Wolfgang Betz |
67:93bec0baf1de | 168 | */ |
Wolfgang Betz |
67:93bec0baf1de | 169 | typedef PktSyncX BasicSyncX; |
Wolfgang Betz |
67:93bec0baf1de | 170 | |
Wolfgang Betz |
67:93bec0baf1de | 171 | #define IS_BASIC_SYNCx IS_PKT_SYNCx |
Wolfgang Betz |
67:93bec0baf1de | 172 | |
Wolfgang Betz |
67:93bec0baf1de | 173 | |
Wolfgang Betz |
67:93bec0baf1de | 174 | /** |
Wolfgang Betz |
67:93bec0baf1de | 175 | * @brief SPIRIT Basic Packet Init structure definition. This structure allows users to set the main options |
Wolfgang Betz |
67:93bec0baf1de | 176 | * for the Basic packet. |
Wolfgang Betz |
67:93bec0baf1de | 177 | */ |
Wolfgang Betz |
67:93bec0baf1de | 178 | typedef struct |
Wolfgang Betz |
67:93bec0baf1de | 179 | { |
Wolfgang Betz |
67:93bec0baf1de | 180 | |
Wolfgang Betz |
67:93bec0baf1de | 181 | BasicPreambleLength xPreambleLength; /*!< Specifies the preamble length. |
Wolfgang Betz |
67:93bec0baf1de | 182 | This parameter can be any value of @ref BasicPreambleLength */ |
Wolfgang Betz |
67:93bec0baf1de | 183 | BasicSyncLength xSyncLength; /*!< Specifies the sync word length. The 32bit word passed (lSyncWords) will be stored in the SYNCx registers from the MSb |
Wolfgang Betz |
67:93bec0baf1de | 184 | until the number of bytes in xSyncLength has been stored. |
Wolfgang Betz |
67:93bec0baf1de | 185 | This parameter can be any value of @ref BasicSyncLength */ |
Wolfgang Betz |
67:93bec0baf1de | 186 | uint32_t lSyncWords; /*!< Specifies the sync words. |
Wolfgang Betz |
67:93bec0baf1de | 187 | This parameter is a uint32_t word with format: 0x|SYNC1|SYNC2|SYNC3|SYNC4| */ |
Wolfgang Betz |
67:93bec0baf1de | 188 | BasicFixVarLength xFixVarLength; /*!< Specifies if a fixed length of packet has to be used. |
Wolfgang Betz |
67:93bec0baf1de | 189 | This parameter can be any value of @ref BasicFixVarLength */ |
Wolfgang Betz |
67:93bec0baf1de | 190 | uint8_t cPktLengthWidth; /*!< Specifies the size of the length of packet in bits. This field is useful only if |
Wolfgang Betz |
67:93bec0baf1de | 191 | the field xFixVarLength is set to BASIC_LENGTH_VAR. For Basic packets the length width |
Wolfgang Betz |
67:93bec0baf1de | 192 | is log2( max payload length + control length (0 to 4) + address length (0 or 1)). |
Wolfgang Betz |
67:93bec0baf1de | 193 | This parameter is an uint8_t */ |
Wolfgang Betz |
67:93bec0baf1de | 194 | BasicCrcMode xCrcMode; /*!< Specifies the CRC word length of packet. |
Wolfgang Betz |
67:93bec0baf1de | 195 | This parameter can be any value of @ref BasicCrcMode */ |
Wolfgang Betz |
67:93bec0baf1de | 196 | BasicControlLength xControlLength; /*!< Specifies the length of a control field to be sent. |
Wolfgang Betz |
67:93bec0baf1de | 197 | This parameter can be any value of @ref BasicControlLength */ |
Wolfgang Betz |
67:93bec0baf1de | 198 | SpiritFunctionalState xAddressField; /*!< Specifies if the destination address has to be sent. |
Wolfgang Betz |
67:93bec0baf1de | 199 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 200 | SpiritFunctionalState xFec; /*!< Specifies if FEC has to be enabled. |
Wolfgang Betz |
67:93bec0baf1de | 201 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 202 | SpiritFunctionalState xDataWhitening; /*!< Specifies if data whitening has to be enabled. |
Wolfgang Betz |
67:93bec0baf1de | 203 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 204 | }PktBasicInit; |
Wolfgang Betz |
67:93bec0baf1de | 205 | |
Wolfgang Betz |
67:93bec0baf1de | 206 | |
Wolfgang Betz |
67:93bec0baf1de | 207 | /** |
Wolfgang Betz |
67:93bec0baf1de | 208 | * @brief SPIRIT Basic Packet address structure definition. This structure allows users to specify |
Wolfgang Betz |
67:93bec0baf1de | 209 | * the node/multicast/broadcast addresses and the correspondent filtering options. |
Wolfgang Betz |
67:93bec0baf1de | 210 | */ |
Wolfgang Betz |
67:93bec0baf1de | 211 | typedef struct |
Wolfgang Betz |
67:93bec0baf1de | 212 | { |
Wolfgang Betz |
67:93bec0baf1de | 213 | |
Wolfgang Betz |
67:93bec0baf1de | 214 | SpiritFunctionalState xFilterOnMyAddress; /*!< If set RX packet is accepted if its destination address matches with cMyAddress. |
Wolfgang Betz |
67:93bec0baf1de | 215 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 216 | uint8_t cMyAddress; /*!< Specifies the TX packet source address (address of this node). |
Wolfgang Betz |
67:93bec0baf1de | 217 | This parameter is an uint8_t */ |
Wolfgang Betz |
67:93bec0baf1de | 218 | SpiritFunctionalState xFilterOnMulticastAddress; /*!< If set RX packet is accepted if its destination address matches with cMulticastAddress. |
Wolfgang Betz |
67:93bec0baf1de | 219 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 220 | uint8_t cMulticastAddress; /*!< Specifies the Multicast group address for this node. |
Wolfgang Betz |
67:93bec0baf1de | 221 | This parameter is an uint8_t */ |
Wolfgang Betz |
67:93bec0baf1de | 222 | SpiritFunctionalState xFilterOnBroadcastAddress; /*!< If set RX packet is accepted if its destination address matches with cBroadcastAddress. |
Wolfgang Betz |
67:93bec0baf1de | 223 | This parameter can be S_ENABLE or S_DISABLE */ |
Wolfgang Betz |
67:93bec0baf1de | 224 | uint8_t cBroadcastAddress; /*!< Specifies the Broadcast address for this node. |
Wolfgang Betz |
67:93bec0baf1de | 225 | This parameter is an uint8_t */ |
Wolfgang Betz |
67:93bec0baf1de | 226 | }PktBasicAddressesInit; |
Wolfgang Betz |
67:93bec0baf1de | 227 | |
Wolfgang Betz |
67:93bec0baf1de | 228 | /** |
Wolfgang Betz |
67:93bec0baf1de | 229 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 230 | */ |
Wolfgang Betz |
67:93bec0baf1de | 231 | |
Wolfgang Betz |
67:93bec0baf1de | 232 | |
Wolfgang Betz |
67:93bec0baf1de | 233 | /** |
Wolfgang Betz |
67:93bec0baf1de | 234 | * @defgroup PktBasic_Exported_Constants Pkt Basic Exported Constants |
Wolfgang Betz |
67:93bec0baf1de | 235 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 236 | */ |
Wolfgang Betz |
67:93bec0baf1de | 237 | |
Wolfgang Betz |
67:93bec0baf1de | 238 | #define IS_BASIC_LENGTH_WIDTH_BITS IS_PKT_LENGTH_WIDTH_BITS |
Wolfgang Betz |
67:93bec0baf1de | 239 | |
Wolfgang Betz |
67:93bec0baf1de | 240 | |
Wolfgang Betz |
67:93bec0baf1de | 241 | /** |
Wolfgang Betz |
67:93bec0baf1de | 242 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 243 | */ |
Wolfgang Betz |
67:93bec0baf1de | 244 | |
Wolfgang Betz |
67:93bec0baf1de | 245 | |
Wolfgang Betz |
67:93bec0baf1de | 246 | /** |
Wolfgang Betz |
67:93bec0baf1de | 247 | * @defgroup PktBasic_Exported_Macros Pkt Basic Exported Macros |
Wolfgang Betz |
67:93bec0baf1de | 248 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 249 | */ |
Wolfgang Betz |
67:93bec0baf1de | 250 | |
Wolfgang Betz |
67:93bec0baf1de | 251 | /** |
Wolfgang Betz |
67:93bec0baf1de | 252 | * @brief Macro used to compute per lower part of the packet length |
Wolfgang Betz |
67:93bec0baf1de | 253 | * for Spirit Basic packets, to write in the PCKTLEN0 register. |
Wolfgang Betz |
67:93bec0baf1de | 254 | * @param nLength Length of the packet payload. |
Wolfgang Betz |
67:93bec0baf1de | 255 | * This parameter is an uint16_t. |
Wolfgang Betz |
67:93bec0baf1de | 256 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 257 | */ |
Wolfgang Betz |
67:93bec0baf1de | 258 | #define BASIC_BUILD_PCKTLEN0(nLength) BUILD_PCKTLEN0(nLength) |
Wolfgang Betz |
67:93bec0baf1de | 259 | |
Wolfgang Betz |
67:93bec0baf1de | 260 | |
Wolfgang Betz |
67:93bec0baf1de | 261 | /** |
Wolfgang Betz |
67:93bec0baf1de | 262 | * @brief Macro used to compute per upper part of the packet length |
Wolfgang Betz |
67:93bec0baf1de | 263 | * for Spirit Basic packets, to write the PCKTLEN1 register. |
Wolfgang Betz |
67:93bec0baf1de | 264 | * @param nLengthLength of the packet payload. |
Wolfgang Betz |
67:93bec0baf1de | 265 | * This parameter is an uint16_t. |
Wolfgang Betz |
67:93bec0baf1de | 266 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 267 | */ |
Wolfgang Betz |
67:93bec0baf1de | 268 | #define BASIC_BUILD_PCKTLEN1(nLength) BUILD_PCKTLEN1(nLength) |
Wolfgang Betz |
67:93bec0baf1de | 269 | |
Wolfgang Betz |
67:93bec0baf1de | 270 | /** |
Wolfgang Betz |
67:93bec0baf1de | 271 | * @brief Sets the CONTROL field length for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 272 | * @param xControlLength length of CONTROL field in bytes. |
Wolfgang Betz |
67:93bec0baf1de | 273 | * This parameter can be any value of @ref PktControlLength. |
Wolfgang Betz |
67:93bec0baf1de | 274 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 275 | */ |
Wolfgang Betz |
67:93bec0baf1de | 276 | #define SpiritPktBasicSetControlLength(xControlLength) SpiritPktCommonSetControlLength(xControlLength) |
Wolfgang Betz |
67:93bec0baf1de | 277 | |
Wolfgang Betz |
67:93bec0baf1de | 278 | |
Wolfgang Betz |
67:93bec0baf1de | 279 | /** |
Wolfgang Betz |
67:93bec0baf1de | 280 | * @brief Returns the CONTROL field length for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 281 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 282 | * @retval uint8_t Control field length. |
Wolfgang Betz |
67:93bec0baf1de | 283 | */ |
Wolfgang Betz |
67:93bec0baf1de | 284 | #define SpiritPktBasicGetControlLength() SpiritPktCommonGetControlLength() |
Wolfgang Betz |
67:93bec0baf1de | 285 | |
Wolfgang Betz |
67:93bec0baf1de | 286 | |
Wolfgang Betz |
67:93bec0baf1de | 287 | /** |
Wolfgang Betz |
67:93bec0baf1de | 288 | * @brief Sets the PREAMBLE field length for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 289 | * @param xPreambleLength length of PREAMBLE field in bytes. |
Wolfgang Betz |
67:93bec0baf1de | 290 | * This parameter can be any value of @ref BasicPreambleLength. |
Wolfgang Betz |
67:93bec0baf1de | 291 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 292 | */ |
Wolfgang Betz |
67:93bec0baf1de | 293 | #define SpiritPktBasicSetPreambleLength(xPreambleLength) SpiritPktCommonSetPreambleLength((PktPreambleLength)xPreambleLength) |
Wolfgang Betz |
67:93bec0baf1de | 294 | |
Wolfgang Betz |
67:93bec0baf1de | 295 | |
Wolfgang Betz |
67:93bec0baf1de | 296 | /** |
Wolfgang Betz |
67:93bec0baf1de | 297 | * @brief Returns the PREAMBLE field length mode for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 298 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 299 | * @retval uint8_t Preamble field length in bytes. |
Wolfgang Betz |
67:93bec0baf1de | 300 | */ |
Wolfgang Betz |
67:93bec0baf1de | 301 | #define SpiritPktBasicGetPreambleLength() SpiritPktCommonGetPreambleLength() |
Wolfgang Betz |
67:93bec0baf1de | 302 | |
Wolfgang Betz |
67:93bec0baf1de | 303 | |
Wolfgang Betz |
67:93bec0baf1de | 304 | /** |
Wolfgang Betz |
67:93bec0baf1de | 305 | * @brief Sets the SYNC field length for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 306 | * @param xSyncLength length of SYNC field in bytes. |
Wolfgang Betz |
67:93bec0baf1de | 307 | * This parameter can be any value of @ref BasicSyncLength. |
Wolfgang Betz |
67:93bec0baf1de | 308 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 309 | */ |
Wolfgang Betz |
67:93bec0baf1de | 310 | #define SpiritPktBasicSetSyncLength(xSyncLength) SpiritPktCommonSetSyncLength((PktSyncLength)xSyncLength) |
Wolfgang Betz |
67:93bec0baf1de | 311 | |
Wolfgang Betz |
67:93bec0baf1de | 312 | |
Wolfgang Betz |
67:93bec0baf1de | 313 | /** |
Wolfgang Betz |
67:93bec0baf1de | 314 | * @brief Returns the SYNC field length for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 315 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 316 | * @retval uint8_t SYNC field length in bytes. |
Wolfgang Betz |
67:93bec0baf1de | 317 | */ |
Wolfgang Betz |
67:93bec0baf1de | 318 | #define SpiritPktBasicGetSyncLength() SpiritPktCommonGetSyncLength() |
Wolfgang Betz |
67:93bec0baf1de | 319 | |
Wolfgang Betz |
67:93bec0baf1de | 320 | |
Wolfgang Betz |
67:93bec0baf1de | 321 | /** |
Wolfgang Betz |
67:93bec0baf1de | 322 | * @brief Sets fixed or variable payload length mode for SPIRIT packets. |
Wolfgang Betz |
67:93bec0baf1de | 323 | * @param xFixVarLength variable or fixed length. |
Wolfgang Betz |
67:93bec0baf1de | 324 | * BASIC_FIXED_LENGTH_VAR -> variable (the length is extracted from the received packet). |
Wolfgang Betz |
67:93bec0baf1de | 325 | * BASIC_FIXED_LENGTH_FIX -> fix (the length is set by PCKTLEN0 and PCKTLEN1). |
Wolfgang Betz |
67:93bec0baf1de | 326 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 327 | */ |
Wolfgang Betz |
67:93bec0baf1de | 328 | #define SpiritPktBasicSetFixVarLength(xFixVarLength) SpiritPktCommonSetFixVarLength((PktFixVarLength)xFixVarLength) |
Wolfgang Betz |
67:93bec0baf1de | 329 | |
Wolfgang Betz |
67:93bec0baf1de | 330 | |
Wolfgang Betz |
67:93bec0baf1de | 331 | /** |
Wolfgang Betz |
67:93bec0baf1de | 332 | * @brief Enables or Disables the CRC filtering. |
Wolfgang Betz |
67:93bec0baf1de | 333 | * @param xNewState new state for CRC_CHECK. |
Wolfgang Betz |
67:93bec0baf1de | 334 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 335 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 336 | */ |
Wolfgang Betz |
67:93bec0baf1de | 337 | #define SpiritPktBasicFilterOnCrc(xNewState) SpiritPktCommonFilterOnCrc(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 338 | |
Wolfgang Betz |
67:93bec0baf1de | 339 | |
Wolfgang Betz |
67:93bec0baf1de | 340 | /** |
Wolfgang Betz |
67:93bec0baf1de | 341 | * @brief Returns the CRC filtering bit. |
Wolfgang Betz |
67:93bec0baf1de | 342 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 343 | * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 344 | */ |
Wolfgang Betz |
67:93bec0baf1de | 345 | #define SpiritPktBasicGetFilterOnCrc() SpiritPktCommonGetFilterOnCrc() |
Wolfgang Betz |
67:93bec0baf1de | 346 | |
Wolfgang Betz |
67:93bec0baf1de | 347 | |
Wolfgang Betz |
67:93bec0baf1de | 348 | /** |
Wolfgang Betz |
67:93bec0baf1de | 349 | * @brief Sets the CRC mode for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 350 | * @param xCrcMode CRC mode. |
Wolfgang Betz |
67:93bec0baf1de | 351 | * This parameter can be any value of @ref BasicCrcMode. |
Wolfgang Betz |
67:93bec0baf1de | 352 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 353 | */ |
Wolfgang Betz |
67:93bec0baf1de | 354 | #define SpiritPktBasicSetCrcMode(xCrcMode) SpiritPktCommonSetCrcMode((PktCrcMode)xCrcMode) |
Wolfgang Betz |
67:93bec0baf1de | 355 | |
Wolfgang Betz |
67:93bec0baf1de | 356 | |
Wolfgang Betz |
67:93bec0baf1de | 357 | /** |
Wolfgang Betz |
67:93bec0baf1de | 358 | * @brief Returns the CRC mode for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 359 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 360 | * @retval BasicCrcMode Crc mode. |
Wolfgang Betz |
67:93bec0baf1de | 361 | */ |
Wolfgang Betz |
67:93bec0baf1de | 362 | #define SpiritPktBasicGetCrcMode() (BasicCrcMode)SpiritPktCommonGetCrcMode() |
Wolfgang Betz |
67:93bec0baf1de | 363 | |
Wolfgang Betz |
67:93bec0baf1de | 364 | |
Wolfgang Betz |
67:93bec0baf1de | 365 | /** |
Wolfgang Betz |
67:93bec0baf1de | 366 | * @brief Enables or Disables WHITENING for SPIRIT packets. |
Wolfgang Betz |
67:93bec0baf1de | 367 | * @param xNewState new state for WHITENING mode. |
Wolfgang Betz |
67:93bec0baf1de | 368 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 369 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 370 | */ |
Wolfgang Betz |
67:93bec0baf1de | 371 | #define SpiritPktBasicWhitening(xNewState) SpiritPktCommonWhitening(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 372 | |
Wolfgang Betz |
67:93bec0baf1de | 373 | |
Wolfgang Betz |
67:93bec0baf1de | 374 | /** |
Wolfgang Betz |
67:93bec0baf1de | 375 | * @brief Enables or Disables FEC for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 376 | * @param xNewState new state for FEC mode. |
Wolfgang Betz |
67:93bec0baf1de | 377 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 378 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 379 | */ |
Wolfgang Betz |
67:93bec0baf1de | 380 | #define SpiritPktBasicFec(xNewState) SpiritPktCommonFec(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 381 | |
Wolfgang Betz |
67:93bec0baf1de | 382 | |
Wolfgang Betz |
67:93bec0baf1de | 383 | /** |
Wolfgang Betz |
67:93bec0baf1de | 384 | * @brief Sets a specific SYNC word for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 385 | * @param xSyncX SYNC word number to be set. |
Wolfgang Betz |
67:93bec0baf1de | 386 | * This parameter can be any value of @ref BasicSyncX. |
Wolfgang Betz |
67:93bec0baf1de | 387 | * @param cSyncWord SYNC word. |
Wolfgang Betz |
67:93bec0baf1de | 388 | * This parameter is an uint8_t. |
Wolfgang Betz |
67:93bec0baf1de | 389 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 390 | */ |
Wolfgang Betz |
67:93bec0baf1de | 391 | #define SpiritPktBasicSetSyncxWord(xSyncX, cSyncWord) SpiritPktCommonSetSyncxWord((PktSyncX)xSyncX, cSyncWord) |
Wolfgang Betz |
67:93bec0baf1de | 392 | |
Wolfgang Betz |
67:93bec0baf1de | 393 | |
Wolfgang Betz |
67:93bec0baf1de | 394 | /** |
Wolfgang Betz |
67:93bec0baf1de | 395 | * @brief Returns a specific SYNC words for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 396 | * @param xSyncX SYNC word number to be get. |
Wolfgang Betz |
67:93bec0baf1de | 397 | * This parameter can be any value of @ref BasicSyncX. |
Wolfgang Betz |
67:93bec0baf1de | 398 | * @retval uint8_t Sync word x. |
Wolfgang Betz |
67:93bec0baf1de | 399 | */ |
Wolfgang Betz |
67:93bec0baf1de | 400 | #define SpiritPktBasicGetSyncxWord(xSyncX) SpiritPktCommonGetSyncxWord(xSyncX) |
Wolfgang Betz |
67:93bec0baf1de | 401 | |
Wolfgang Betz |
67:93bec0baf1de | 402 | |
Wolfgang Betz |
67:93bec0baf1de | 403 | /** |
Wolfgang Betz |
67:93bec0baf1de | 404 | * @brief Sets multiple SYNC words for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 405 | * @param lSyncWords SYNC words to be set with format: 0x|SYNC1|SYNC2|SYNC3|SYNC4|. |
Wolfgang Betz |
67:93bec0baf1de | 406 | * This parameter is a uint32_t. |
Wolfgang Betz |
67:93bec0baf1de | 407 | * @param xSyncLength SYNC length in bytes. The 32bit word passed will be stored in the SYNCx registers from the MSb |
Wolfgang Betz |
67:93bec0baf1de | 408 | * until the number of bytes in xSyncLength has been stored. |
Wolfgang Betz |
67:93bec0baf1de | 409 | * This parameter is a @ref BasicSyncLength. |
Wolfgang Betz |
67:93bec0baf1de | 410 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 411 | */ |
Wolfgang Betz |
67:93bec0baf1de | 412 | #define SpiritPktBasicSetSyncWords(lSyncWords, xSyncLength) SpiritPktCommonSetSyncWords(lSyncWords, (PktSyncLength)xSyncLength) |
Wolfgang Betz |
67:93bec0baf1de | 413 | |
Wolfgang Betz |
67:93bec0baf1de | 414 | |
Wolfgang Betz |
67:93bec0baf1de | 415 | /** |
Wolfgang Betz |
67:93bec0baf1de | 416 | * @brief Returns multiple SYNC words for SPIRIT Basic packets. |
Wolfgang Betz |
67:93bec0baf1de | 417 | * @param xSyncLength SYNC length in bytes. The 32bit word passed will be stored in the SYNCx registers from the MSb |
Wolfgang Betz |
67:93bec0baf1de | 418 | * until the number of bytes in xSyncLength has been stored. |
Wolfgang Betz |
67:93bec0baf1de | 419 | * This parameter is a pointer to @ref BasicSyncLength. |
Wolfgang Betz |
67:93bec0baf1de | 420 | * @retval uint32_t Sync words. The format of the read 32 bit word is 0x|SYNC1|SYNC2|SYNC3|SYNC4|. |
Wolfgang Betz |
67:93bec0baf1de | 421 | */ |
Wolfgang Betz |
67:93bec0baf1de | 422 | #define SpiritPktBasicGetSyncWords(xSyncLength) SpiritPktCommonGetSyncWords((PktSyncLength)xSyncLength) |
Wolfgang Betz |
67:93bec0baf1de | 423 | |
Wolfgang Betz |
67:93bec0baf1de | 424 | |
Wolfgang Betz |
67:93bec0baf1de | 425 | /** |
Wolfgang Betz |
67:93bec0baf1de | 426 | * @brief Returns the SPIRIT variable length width (in number of bits). |
Wolfgang Betz |
67:93bec0baf1de | 427 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 428 | * @retval Variable length width in bits. |
Wolfgang Betz |
67:93bec0baf1de | 429 | */ |
Wolfgang Betz |
67:93bec0baf1de | 430 | #define SpiritPktBasicGetVarLengthWidth() SpiritPktCommonGetVarLengthWidth() |
Wolfgang Betz |
67:93bec0baf1de | 431 | |
Wolfgang Betz |
67:93bec0baf1de | 432 | |
Wolfgang Betz |
67:93bec0baf1de | 433 | /** |
Wolfgang Betz |
67:93bec0baf1de | 434 | * @brief Sets the destination address for the Tx packet. |
Wolfgang Betz |
67:93bec0baf1de | 435 | * @param cAddress destination address. |
Wolfgang Betz |
67:93bec0baf1de | 436 | * This parameter is an uint8_t. |
Wolfgang Betz |
67:93bec0baf1de | 437 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 438 | */ |
Wolfgang Betz |
67:93bec0baf1de | 439 | #define SpiritPktBasicSetDestinationAddress(cAddress) SpiritPktCommonSetDestinationAddress(cAddress) |
Wolfgang Betz |
67:93bec0baf1de | 440 | |
Wolfgang Betz |
67:93bec0baf1de | 441 | |
Wolfgang Betz |
67:93bec0baf1de | 442 | /** |
Wolfgang Betz |
67:93bec0baf1de | 443 | * @brief Returns the settled destination address. |
Wolfgang Betz |
67:93bec0baf1de | 444 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 445 | * @retval uint8_t Transmitted destination address. |
Wolfgang Betz |
67:93bec0baf1de | 446 | */ |
Wolfgang Betz |
67:93bec0baf1de | 447 | #define SpiritPktBasicGetTransmittedDestAddress() SpiritPktCommonGetTransmittedDestAddress() |
Wolfgang Betz |
67:93bec0baf1de | 448 | |
Wolfgang Betz |
67:93bec0baf1de | 449 | |
Wolfgang Betz |
67:93bec0baf1de | 450 | /** |
Wolfgang Betz |
67:93bec0baf1de | 451 | * @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 | 452 | * my address, then the packet is accepted (this is the address of the node). |
Wolfgang Betz |
67:93bec0baf1de | 453 | * @param cAddress Address of the present node. |
Wolfgang Betz |
67:93bec0baf1de | 454 | * This parameter is an uint8_t. |
Wolfgang Betz |
67:93bec0baf1de | 455 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 456 | */ |
Wolfgang Betz |
67:93bec0baf1de | 457 | #define SpiritPktBasicSetMyAddress(cAddress) SpiritPktCommonSetMyAddress(cAddress) |
Wolfgang Betz |
67:93bec0baf1de | 458 | |
Wolfgang Betz |
67:93bec0baf1de | 459 | |
Wolfgang Betz |
67:93bec0baf1de | 460 | /** |
Wolfgang Betz |
67:93bec0baf1de | 461 | * @brief Returns the address of the present node. |
Wolfgang Betz |
67:93bec0baf1de | 462 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 463 | * @retval uint8_t My address (address of this node). |
Wolfgang Betz |
67:93bec0baf1de | 464 | */ |
Wolfgang Betz |
67:93bec0baf1de | 465 | #define SpiritPktBasicGetMyAddress() SpiritPktCommonGetMyAddress() |
Wolfgang Betz |
67:93bec0baf1de | 466 | |
Wolfgang Betz |
67:93bec0baf1de | 467 | |
Wolfgang Betz |
67:93bec0baf1de | 468 | /** |
Wolfgang Betz |
67:93bec0baf1de | 469 | * @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 | 470 | * BROADCAST_ADDR register, then the packet is accepted. |
Wolfgang Betz |
67:93bec0baf1de | 471 | * @param cAddress Broadcast address. |
Wolfgang Betz |
67:93bec0baf1de | 472 | * This parameter is an uint8_t. |
Wolfgang Betz |
67:93bec0baf1de | 473 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 474 | */ |
Wolfgang Betz |
67:93bec0baf1de | 475 | #define SpiritPktBasicSetBroadcastAddress(cAddress) SpiritPktCommonSetBroadcastAddress(cAddress) |
Wolfgang Betz |
67:93bec0baf1de | 476 | |
Wolfgang Betz |
67:93bec0baf1de | 477 | |
Wolfgang Betz |
67:93bec0baf1de | 478 | /** |
Wolfgang Betz |
67:93bec0baf1de | 479 | * @brief Returns the broadcast address. |
Wolfgang Betz |
67:93bec0baf1de | 480 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 481 | * @retval uint8_t Broadcast address. |
Wolfgang Betz |
67:93bec0baf1de | 482 | */ |
Wolfgang Betz |
67:93bec0baf1de | 483 | #define SpiritPktBasicGetBroadcastAddress() SpiritPktCommonGetBroadcastAddress() |
Wolfgang Betz |
67:93bec0baf1de | 484 | |
Wolfgang Betz |
67:93bec0baf1de | 485 | |
Wolfgang Betz |
67:93bec0baf1de | 486 | /** |
Wolfgang Betz |
67:93bec0baf1de | 487 | * @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 | 488 | * MULTICAST_ADDR register, then the packet is accepted. |
Wolfgang Betz |
67:93bec0baf1de | 489 | * @param cAddress Multicast address. |
Wolfgang Betz |
67:93bec0baf1de | 490 | * This parameter is an uint8_t. |
Wolfgang Betz |
67:93bec0baf1de | 491 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 492 | */ |
Wolfgang Betz |
67:93bec0baf1de | 493 | #define SpiritPktBasicSetMulticastAddress(cAddress) SpiritPktCommonSetMulticastAddress(cAddress) |
Wolfgang Betz |
67:93bec0baf1de | 494 | |
Wolfgang Betz |
67:93bec0baf1de | 495 | |
Wolfgang Betz |
67:93bec0baf1de | 496 | /** |
Wolfgang Betz |
67:93bec0baf1de | 497 | * @brief Returns the multicast address. |
Wolfgang Betz |
67:93bec0baf1de | 498 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 499 | * @retval uint8_t Multicast address. |
Wolfgang Betz |
67:93bec0baf1de | 500 | */ |
Wolfgang Betz |
67:93bec0baf1de | 501 | #define SpiritPktBasicGetMulticastAddress() SpiritPktCommonGetMulticastAddress() |
Wolfgang Betz |
67:93bec0baf1de | 502 | |
Wolfgang Betz |
67:93bec0baf1de | 503 | |
Wolfgang Betz |
67:93bec0baf1de | 504 | /** |
Wolfgang Betz |
67:93bec0baf1de | 505 | * @brief Sets the control mask. The 1 bits of the CONTROL_MASK indicate the |
Wolfgang Betz |
67:93bec0baf1de | 506 | * bits to be used in filtering. (All 0s no filtering) |
Wolfgang Betz |
67:93bec0baf1de | 507 | * @param lMask Control mask. |
Wolfgang Betz |
67:93bec0baf1de | 508 | * This parameter is an uint32_t. |
Wolfgang Betz |
67:93bec0baf1de | 509 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 510 | */ |
Wolfgang Betz |
67:93bec0baf1de | 511 | #define SpiritPktBasicSetCtrlMask(lMask) SpiritPktCommonSetCtrlMask(lMask) |
Wolfgang Betz |
67:93bec0baf1de | 512 | |
Wolfgang Betz |
67:93bec0baf1de | 513 | |
Wolfgang Betz |
67:93bec0baf1de | 514 | /** |
Wolfgang Betz |
67:93bec0baf1de | 515 | * @brief Returns the control mask. The 1 bits of the CONTROL_MASK indicate the |
Wolfgang Betz |
67:93bec0baf1de | 516 | * bits to be used in filtering. (All 0s no filtering) |
Wolfgang Betz |
67:93bec0baf1de | 517 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 518 | * @retval uint32_t Control mask. |
Wolfgang Betz |
67:93bec0baf1de | 519 | */ |
Wolfgang Betz |
67:93bec0baf1de | 520 | #define SpiritPktBasicGetCtrlMask() SpiritPktCommonGetCtrlMask() |
Wolfgang Betz |
67:93bec0baf1de | 521 | |
Wolfgang Betz |
67:93bec0baf1de | 522 | |
Wolfgang Betz |
67:93bec0baf1de | 523 | /** |
Wolfgang Betz |
67:93bec0baf1de | 524 | * @brief Sets the control field reference. If the bits enabled by the |
Wolfgang Betz |
67:93bec0baf1de | 525 | * CONTROL_MASK match the ones of the control fields extracted from the received packet |
Wolfgang Betz |
67:93bec0baf1de | 526 | * then the packet is accepted. |
Wolfgang Betz |
67:93bec0baf1de | 527 | * @param lReference Control reference. |
Wolfgang Betz |
67:93bec0baf1de | 528 | * This parameter is an uint32_t. |
Wolfgang Betz |
67:93bec0baf1de | 529 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 530 | */ |
Wolfgang Betz |
67:93bec0baf1de | 531 | #define SpiritPktBasicSetCtrlReference(lReference) SpiritPktCommonSetCtrlReference(lReference) |
Wolfgang Betz |
67:93bec0baf1de | 532 | |
Wolfgang Betz |
67:93bec0baf1de | 533 | |
Wolfgang Betz |
67:93bec0baf1de | 534 | /** |
Wolfgang Betz |
67:93bec0baf1de | 535 | * @brief Returns the control field reference. |
Wolfgang Betz |
67:93bec0baf1de | 536 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 537 | * @retval uint32_t Control reference. |
Wolfgang Betz |
67:93bec0baf1de | 538 | */ |
Wolfgang Betz |
67:93bec0baf1de | 539 | #define SpiritPktBasicGetCtrlReference() SpiritPktCommonGetCtrlReference() |
Wolfgang Betz |
67:93bec0baf1de | 540 | |
Wolfgang Betz |
67:93bec0baf1de | 541 | |
Wolfgang Betz |
67:93bec0baf1de | 542 | /** |
Wolfgang Betz |
67:93bec0baf1de | 543 | * @brief Sets the TX control field. |
Wolfgang Betz |
67:93bec0baf1de | 544 | * @param lField Tx control field. |
Wolfgang Betz |
67:93bec0baf1de | 545 | * This parameter is an uint32_t. |
Wolfgang Betz |
67:93bec0baf1de | 546 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 547 | */ |
Wolfgang Betz |
67:93bec0baf1de | 548 | #define SpiritPktBasicSetTransmittedCtrlField(lField) SpiritPktCommonSetTransmittedCtrlField(lField) |
Wolfgang Betz |
67:93bec0baf1de | 549 | |
Wolfgang Betz |
67:93bec0baf1de | 550 | |
Wolfgang Betz |
67:93bec0baf1de | 551 | /** |
Wolfgang Betz |
67:93bec0baf1de | 552 | * @brief Returns the TX control field. |
Wolfgang Betz |
67:93bec0baf1de | 553 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 554 | * @retval uint32_t Control field of the transmitted packet. |
Wolfgang Betz |
67:93bec0baf1de | 555 | */ |
Wolfgang Betz |
67:93bec0baf1de | 556 | #define SpiritPktBasicGetTransmittedCtrlField() SpiritPktCommonGetTransmittedCtrlField() |
Wolfgang Betz |
67:93bec0baf1de | 557 | |
Wolfgang Betz |
67:93bec0baf1de | 558 | |
Wolfgang Betz |
67:93bec0baf1de | 559 | /** |
Wolfgang Betz |
67:93bec0baf1de | 560 | * @brief If enabled RX packet is accepted if its destination address matches with My address. |
Wolfgang Betz |
67:93bec0baf1de | 561 | * @param xNewState new state for DEST_VS_SOURCE_ADDRESS. |
Wolfgang Betz |
67:93bec0baf1de | 562 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 563 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 564 | */ |
Wolfgang Betz |
67:93bec0baf1de | 565 | #define SpiritPktBasicFilterOnMyAddress(xNewState) SpiritPktCommonFilterOnMyAddress(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 566 | |
Wolfgang Betz |
67:93bec0baf1de | 567 | |
Wolfgang Betz |
67:93bec0baf1de | 568 | /** |
Wolfgang Betz |
67:93bec0baf1de | 569 | * @brief If enabled RX packet is accepted if its destination address matches with multicast address. |
Wolfgang Betz |
67:93bec0baf1de | 570 | * @param xNewState new state for DEST_VS_MULTICAST_ADDRESS. |
Wolfgang Betz |
67:93bec0baf1de | 571 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 572 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 573 | */ |
Wolfgang Betz |
67:93bec0baf1de | 574 | #define SpiritPktBasicFilterOnMulticastAddress(xNewState) SpiritPktCommonFilterOnMulticastAddress(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 575 | |
Wolfgang Betz |
67:93bec0baf1de | 576 | |
Wolfgang Betz |
67:93bec0baf1de | 577 | /** |
Wolfgang Betz |
67:93bec0baf1de | 578 | * @brief If enabled RX packet is accepted if its destination address matches with broadcast address. |
Wolfgang Betz |
67:93bec0baf1de | 579 | * @param xNewState new state for DEST_VS_BROADCAST_ADDRESS. |
Wolfgang Betz |
67:93bec0baf1de | 580 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 581 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 582 | */ |
Wolfgang Betz |
67:93bec0baf1de | 583 | #define SpiritPktBasicFilterOnBroadcastAddress(xNewState) SpiritPktCommonFilterOnBroadcastAddress(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 584 | |
Wolfgang Betz |
67:93bec0baf1de | 585 | |
Wolfgang Betz |
67:93bec0baf1de | 586 | /** |
Wolfgang Betz |
67:93bec0baf1de | 587 | * @brief Returns the enable bit of the my address filtering. |
Wolfgang Betz |
67:93bec0baf1de | 588 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 589 | * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 590 | */ |
Wolfgang Betz |
67:93bec0baf1de | 591 | #define SpiritPktBasicGetFilterOnMyAddress() SpiritPktCommonGetFilterOnMyAddress(); |
Wolfgang Betz |
67:93bec0baf1de | 592 | |
Wolfgang Betz |
67:93bec0baf1de | 593 | |
Wolfgang Betz |
67:93bec0baf1de | 594 | /** |
Wolfgang Betz |
67:93bec0baf1de | 595 | * @brief Returns the enable bit of the multicast address filtering. |
Wolfgang Betz |
67:93bec0baf1de | 596 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 597 | * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 598 | */ |
Wolfgang Betz |
67:93bec0baf1de | 599 | #define SpiritPktBasicGetFilterOnMulticastAddress() SpiritPktCommonGetFilterOnMulticastAddress(); |
Wolfgang Betz |
67:93bec0baf1de | 600 | |
Wolfgang Betz |
67:93bec0baf1de | 601 | |
Wolfgang Betz |
67:93bec0baf1de | 602 | /** |
Wolfgang Betz |
67:93bec0baf1de | 603 | * @brief Returns the enable bit of the broadcast address filtering. |
Wolfgang Betz |
67:93bec0baf1de | 604 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 605 | * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 606 | */ |
Wolfgang Betz |
67:93bec0baf1de | 607 | #define SpiritPktBasicGetFilterOnBroadcastAddress() SpiritPktCommonGetFilterOnBroadcastAddress(); |
Wolfgang Betz |
67:93bec0baf1de | 608 | |
Wolfgang Betz |
67:93bec0baf1de | 609 | |
Wolfgang Betz |
67:93bec0baf1de | 610 | /** |
Wolfgang Betz |
67:93bec0baf1de | 611 | * @brief Returns the destination address of the received packet. |
Wolfgang Betz |
67:93bec0baf1de | 612 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 613 | * @retval uint8_t Destination address of the received packet. |
Wolfgang Betz |
67:93bec0baf1de | 614 | */ |
Wolfgang Betz |
67:93bec0baf1de | 615 | #define SpiritPktBasicGetReceivedDestAddress() SpiritPktCommonGetReceivedDestAddress() |
Wolfgang Betz |
67:93bec0baf1de | 616 | |
Wolfgang Betz |
67:93bec0baf1de | 617 | |
Wolfgang Betz |
67:93bec0baf1de | 618 | /** |
Wolfgang Betz |
67:93bec0baf1de | 619 | * @brief Returns the control field of the received packet. |
Wolfgang Betz |
67:93bec0baf1de | 620 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 621 | * @retval uint32_t Received control field. |
Wolfgang Betz |
67:93bec0baf1de | 622 | */ |
Wolfgang Betz |
67:93bec0baf1de | 623 | #define SpiritPktBasicGetReceivedCtrlField() SpiritPktCommonGetReceivedCtrlField() |
Wolfgang Betz |
67:93bec0baf1de | 624 | |
Wolfgang Betz |
67:93bec0baf1de | 625 | |
Wolfgang Betz |
67:93bec0baf1de | 626 | /** |
Wolfgang Betz |
67:93bec0baf1de | 627 | * @brief Returns the CRC field of the received packet. |
Wolfgang Betz |
67:93bec0baf1de | 628 | * @param cCrcFieldVect array in which the CRC field has to be stored. |
Wolfgang Betz |
67:93bec0baf1de | 629 | * This parameter is an uint8_t array of 3 elements. |
Wolfgang Betz |
67:93bec0baf1de | 630 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 631 | */ |
Wolfgang Betz |
67:93bec0baf1de | 632 | #define SpiritPktBasicGetReceivedCrcField(cCrcFieldVect) SpiritPktCommonGetReceivedCrcField(cCrcFieldVect) |
Wolfgang Betz |
67:93bec0baf1de | 633 | |
Wolfgang Betz |
67:93bec0baf1de | 634 | |
Wolfgang Betz |
67:93bec0baf1de | 635 | /** |
Wolfgang Betz |
67:93bec0baf1de | 636 | * @brief If enabled RX packet is accepted only if the masked control field matches the |
Wolfgang Betz |
67:93bec0baf1de | 637 | * masked control field reference (CONTROL_MASK & CONTROL_FIELD_REF == CONTROL_MASK & RX_CONTROL_FIELD). |
Wolfgang Betz |
67:93bec0baf1de | 638 | * @param xNewState new state for Control filtering enable bit. |
Wolfgang Betz |
67:93bec0baf1de | 639 | * This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 640 | * @retval None. |
Wolfgang Betz |
67:93bec0baf1de | 641 | * @note This filtering control is enabled by default but the control mask is by default set to 0. |
Wolfgang Betz |
67:93bec0baf1de | 642 | * As a matter of fact the user has to enable the control filtering bit after the packet initialization |
Wolfgang Betz |
67:93bec0baf1de | 643 | * because the PktInit routine disables it. |
Wolfgang Betz |
67:93bec0baf1de | 644 | */ |
Wolfgang Betz |
67:93bec0baf1de | 645 | #define SpiritPktBasicFilterOnControlField(xNewState) SpiritPktCommonFilterOnControlField(xNewState) |
Wolfgang Betz |
67:93bec0baf1de | 646 | |
Wolfgang Betz |
67:93bec0baf1de | 647 | |
Wolfgang Betz |
67:93bec0baf1de | 648 | /** |
Wolfgang Betz |
67:93bec0baf1de | 649 | * @brief Returns the enable bit of the control field filtering. |
Wolfgang Betz |
67:93bec0baf1de | 650 | * @param None. |
Wolfgang Betz |
67:93bec0baf1de | 651 | * @retval SpiritFunctionalState This parameter can be S_ENABLE or S_DISABLE. |
Wolfgang Betz |
67:93bec0baf1de | 652 | */ |
Wolfgang Betz |
67:93bec0baf1de | 653 | #define SpiritPktBasicGetFilterOnControlField() SpiritPktCommonGetFilterOnControlField(); |
Wolfgang Betz |
67:93bec0baf1de | 654 | |
Wolfgang Betz |
67:93bec0baf1de | 655 | /** |
Wolfgang Betz |
67:93bec0baf1de | 656 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 657 | */ |
Wolfgang Betz |
67:93bec0baf1de | 658 | |
Wolfgang Betz |
67:93bec0baf1de | 659 | |
Wolfgang Betz |
67:93bec0baf1de | 660 | /** |
Wolfgang Betz |
67:93bec0baf1de | 661 | * @defgroup PktBasic_Exported_Functions Pkt Basic Exported Functions |
Wolfgang Betz |
67:93bec0baf1de | 662 | * @{ |
Wolfgang Betz |
67:93bec0baf1de | 663 | */ |
Wolfgang Betz |
67:93bec0baf1de | 664 | |
Wolfgang Betz |
67:93bec0baf1de | 665 | void SpiritPktBasicInit(PktBasicInit* pxPktBasicInit); |
Wolfgang Betz |
67:93bec0baf1de | 666 | void SpiritPktBasicGetInfo(PktBasicInit* pxPktBasicInit); |
Wolfgang Betz |
67:93bec0baf1de | 667 | void SpiritPktBasicAddressesInit(PktBasicAddressesInit* pxPktBasicAddresses); |
Wolfgang Betz |
67:93bec0baf1de | 668 | void SpiritPktBasicGetAddressesInfo(PktBasicAddressesInit* pxPktBasicAddresses); |
Wolfgang Betz |
67:93bec0baf1de | 669 | void SpiritPktBasicSetFormat(void); |
Wolfgang Betz |
67:93bec0baf1de | 670 | void SpiritPktBasicAddressField(SpiritFunctionalState xAddressField); |
Wolfgang Betz |
67:93bec0baf1de | 671 | SpiritFunctionalState SpiritPktBasicGetAddressField(void); |
Wolfgang Betz |
67:93bec0baf1de | 672 | void SpiritPktBasicSetPayloadLength(uint16_t nPayloadLength); |
Wolfgang Betz |
67:93bec0baf1de | 673 | uint16_t SpiritPktBasicGetPayloadLength(void); |
Wolfgang Betz |
67:93bec0baf1de | 674 | uint16_t SpiritPktBasicGetReceivedPktLength(void); |
Wolfgang Betz |
67:93bec0baf1de | 675 | void SpiritPktBasicSetVarLengthWidth(uint16_t nMaxPayloadLength,SpiritFunctionalState xAddressField, BasicControlLength xControlLength); |
Wolfgang Betz |
67:93bec0baf1de | 676 | |
Wolfgang Betz |
67:93bec0baf1de | 677 | /** |
Wolfgang Betz |
67:93bec0baf1de | 678 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 679 | */ |
Wolfgang Betz |
67:93bec0baf1de | 680 | |
Wolfgang Betz |
67:93bec0baf1de | 681 | /** |
Wolfgang Betz |
67:93bec0baf1de | 682 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 683 | */ |
Wolfgang Betz |
67:93bec0baf1de | 684 | |
Wolfgang Betz |
67:93bec0baf1de | 685 | |
Wolfgang Betz |
67:93bec0baf1de | 686 | /** |
Wolfgang Betz |
67:93bec0baf1de | 687 | *@} |
Wolfgang Betz |
67:93bec0baf1de | 688 | */ |
Wolfgang Betz |
67:93bec0baf1de | 689 | |
Wolfgang Betz |
67:93bec0baf1de | 690 | #ifdef __cplusplus |
Wolfgang Betz |
67:93bec0baf1de | 691 | } |
Wolfgang Betz |
67:93bec0baf1de | 692 | #endif |
Wolfgang Betz |
67:93bec0baf1de | 693 | |
Wolfgang Betz |
67:93bec0baf1de | 694 | #endif |
Wolfgang Betz |
67:93bec0baf1de | 695 | |
Wolfgang Betz |
67:93bec0baf1de | 696 | /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/ |