HelloWorld_IDS01A4 mbed application for Spirit1 P2P demo.

Dependencies:   mbed

Fork of HelloWorld_IDS01A5_Program by rosarium pila

mbed 2.0 (a.k.a classic) HelloWorld example for Spirit1 to transfer data from one node to another.
To send the predefined data packet from the sender to the receiver, user needs to press User Button on the board. The LED on the receiver expansion board will toggle on reception of data successfully.
Data packets sent and received can be seen on USB serial terminal.

EVALUATION BOARDS RF FREQUENCY DESCRIPTION :
X-NUCLEO-IDS01A4 868 MHz 868 MHz RF expansion board based on SPIRIT1

Committer:
rosarium
Date:
Thu May 25 16:38:55 2017 +0000
Revision:
0:2ddc0583bcec
First draft version of HelloWorld_IDS01A5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosarium 0:2ddc0583bcec 1 /**
rosarium 0:2ddc0583bcec 2 ******************************************************************************
rosarium 0:2ddc0583bcec 3 * @file SPIRIT_General.h
rosarium 0:2ddc0583bcec 4 * @author VMA division - AMS
rosarium 0:2ddc0583bcec 5 * @version 3.2.2
rosarium 0:2ddc0583bcec 6 * @date 08-July-2015
rosarium 0:2ddc0583bcec 7 * @brief Configuration and management of SPIRIT General functionalities.
rosarium 0:2ddc0583bcec 8 * @details
rosarium 0:2ddc0583bcec 9 *
rosarium 0:2ddc0583bcec 10 * @attention
rosarium 0:2ddc0583bcec 11 *
rosarium 0:2ddc0583bcec 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 13 *
rosarium 0:2ddc0583bcec 14 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 15 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 16 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 17 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 19 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 20 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 22 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 23 * without specific prior written permission.
rosarium 0:2ddc0583bcec 24 *
rosarium 0:2ddc0583bcec 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 35 *
rosarium 0:2ddc0583bcec 36 ******************************************************************************
rosarium 0:2ddc0583bcec 37 */
rosarium 0:2ddc0583bcec 38
rosarium 0:2ddc0583bcec 39 /* Define to prevent recursive inclusion -------------------------------------*/
rosarium 0:2ddc0583bcec 40 #ifndef __SPIRIT_GENERAL_H
rosarium 0:2ddc0583bcec 41 #define __SPIRIT_GENERAL_H
rosarium 0:2ddc0583bcec 42
rosarium 0:2ddc0583bcec 43
rosarium 0:2ddc0583bcec 44 /* Includes ------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 45
rosarium 0:2ddc0583bcec 46 #include "SPIRIT_Regs.h"
rosarium 0:2ddc0583bcec 47 #include "SPIRIT_Types.h"
rosarium 0:2ddc0583bcec 48
rosarium 0:2ddc0583bcec 49
rosarium 0:2ddc0583bcec 50 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 51 extern "C" {
rosarium 0:2ddc0583bcec 52 #endif
rosarium 0:2ddc0583bcec 53
rosarium 0:2ddc0583bcec 54 /**
rosarium 0:2ddc0583bcec 55 * @addtogroup SPIRIT_Libraries
rosarium 0:2ddc0583bcec 56 * @{
rosarium 0:2ddc0583bcec 57 */
rosarium 0:2ddc0583bcec 58
rosarium 0:2ddc0583bcec 59
rosarium 0:2ddc0583bcec 60 /**
rosarium 0:2ddc0583bcec 61 * @defgroup SPIRIT_General General
rosarium 0:2ddc0583bcec 62 * @brief Configuration and management of SPIRIT General functionalities.
rosarium 0:2ddc0583bcec 63 * @details See the file <i>@ref SPIRIT_General.h</i> for more details.
rosarium 0:2ddc0583bcec 64 * @{
rosarium 0:2ddc0583bcec 65 */
rosarium 0:2ddc0583bcec 66
rosarium 0:2ddc0583bcec 67 /**
rosarium 0:2ddc0583bcec 68 * @defgroup General_Exported_Types General Exported Types
rosarium 0:2ddc0583bcec 69 * @{
rosarium 0:2ddc0583bcec 70 */
rosarium 0:2ddc0583bcec 71
rosarium 0:2ddc0583bcec 72
rosarium 0:2ddc0583bcec 73 /**
rosarium 0:2ddc0583bcec 74 * @brief SPIRIT ModeExtRef enumeration
rosarium 0:2ddc0583bcec 75 */
rosarium 0:2ddc0583bcec 76
rosarium 0:2ddc0583bcec 77 typedef enum
rosarium 0:2ddc0583bcec 78 {
rosarium 0:2ddc0583bcec 79 MODE_EXT_XO = 0,
rosarium 0:2ddc0583bcec 80 MODE_EXT_XIN = !MODE_EXT_XO
rosarium 0:2ddc0583bcec 81 } ModeExtRef;
rosarium 0:2ddc0583bcec 82
rosarium 0:2ddc0583bcec 83 #define IS_MODE_EXT(MODE) (MODE == MODE_EXT_XO || \
rosarium 0:2ddc0583bcec 84 MODE == MODE_EXT_XIN)
rosarium 0:2ddc0583bcec 85
rosarium 0:2ddc0583bcec 86
rosarium 0:2ddc0583bcec 87 /**
rosarium 0:2ddc0583bcec 88 * @brief SPIRIT BatteryLevel enumeration
rosarium 0:2ddc0583bcec 89 */
rosarium 0:2ddc0583bcec 90
rosarium 0:2ddc0583bcec 91 typedef enum
rosarium 0:2ddc0583bcec 92 {
rosarium 0:2ddc0583bcec 93 BLD_LVL_2_7_V = 0,
rosarium 0:2ddc0583bcec 94 BLD_LVL_2_5_V = 1,
rosarium 0:2ddc0583bcec 95 BLD_LVL_2_3_V = 2,
rosarium 0:2ddc0583bcec 96 BLD_LVL_2_1_V = 3
rosarium 0:2ddc0583bcec 97 } BatteryLevel;
rosarium 0:2ddc0583bcec 98
rosarium 0:2ddc0583bcec 99 #define IS_BLD_LVL(MODE) (MODE == BLD_LVL_2_7_V || \
rosarium 0:2ddc0583bcec 100 MODE == BLD_LVL_2_5_V || \
rosarium 0:2ddc0583bcec 101 MODE == BLD_LVL_2_3_V || \
rosarium 0:2ddc0583bcec 102 MODE == BLD_LVL_2_1_V)
rosarium 0:2ddc0583bcec 103
rosarium 0:2ddc0583bcec 104
rosarium 0:2ddc0583bcec 105 /**
rosarium 0:2ddc0583bcec 106 * @brief SPIRIT GmConf enumeration
rosarium 0:2ddc0583bcec 107 */
rosarium 0:2ddc0583bcec 108
rosarium 0:2ddc0583bcec 109 typedef enum
rosarium 0:2ddc0583bcec 110 {
rosarium 0:2ddc0583bcec 111 GM_SU_13_2 = 0,
rosarium 0:2ddc0583bcec 112 GM_SU_18_2,
rosarium 0:2ddc0583bcec 113 GM_SU_21_5,
rosarium 0:2ddc0583bcec 114 GM_SU_25_6,
rosarium 0:2ddc0583bcec 115 GM_SU_28_8,
rosarium 0:2ddc0583bcec 116 GM_SU_33_9,
rosarium 0:2ddc0583bcec 117 GM_SU_38_5,
rosarium 0:2ddc0583bcec 118 GM_SU_43_0
rosarium 0:2ddc0583bcec 119 } GmConf;
rosarium 0:2ddc0583bcec 120
rosarium 0:2ddc0583bcec 121 #define IS_GM_CONF(MODE) (MODE == GM_SU_13_2 || \
rosarium 0:2ddc0583bcec 122 MODE == GM_SU_18_2 || \
rosarium 0:2ddc0583bcec 123 MODE == GM_SU_21_5 || \
rosarium 0:2ddc0583bcec 124 MODE == GM_SU_25_6 || \
rosarium 0:2ddc0583bcec 125 MODE == GM_SU_28_8 || \
rosarium 0:2ddc0583bcec 126 MODE == GM_SU_33_9 || \
rosarium 0:2ddc0583bcec 127 MODE == GM_SU_38_5 || \
rosarium 0:2ddc0583bcec 128 MODE == GM_SU_43_0)
rosarium 0:2ddc0583bcec 129
rosarium 0:2ddc0583bcec 130
rosarium 0:2ddc0583bcec 131 /**
rosarium 0:2ddc0583bcec 132 * @brief SPIRIT packet type enumeration
rosarium 0:2ddc0583bcec 133 */
rosarium 0:2ddc0583bcec 134
rosarium 0:2ddc0583bcec 135 typedef enum
rosarium 0:2ddc0583bcec 136 {
rosarium 0:2ddc0583bcec 137 PKT_BASIC = 0x00,
rosarium 0:2ddc0583bcec 138 PKT_MBUS = 0x02,
rosarium 0:2ddc0583bcec 139 PKT_STACK
rosarium 0:2ddc0583bcec 140
rosarium 0:2ddc0583bcec 141 } PacketType;
rosarium 0:2ddc0583bcec 142
rosarium 0:2ddc0583bcec 143 #define IS_PKT_TYPE(TYPE) (TYPE == PKT_BASIC || \
rosarium 0:2ddc0583bcec 144 TYPE == PKT_MBUS || \
rosarium 0:2ddc0583bcec 145 TYPE == PKT_STACK || \
rosarium 0:2ddc0583bcec 146 )
rosarium 0:2ddc0583bcec 147
rosarium 0:2ddc0583bcec 148
rosarium 0:2ddc0583bcec 149 /**
rosarium 0:2ddc0583bcec 150 * @brief SPIRIT version type enumeration
rosarium 0:2ddc0583bcec 151 */
rosarium 0:2ddc0583bcec 152
rosarium 0:2ddc0583bcec 153 typedef enum
rosarium 0:2ddc0583bcec 154 {
rosarium 0:2ddc0583bcec 155 SPIRIT_VERSION_2_1 = 0x01, /* Deprecated */
rosarium 0:2ddc0583bcec 156 SPIRIT_VERSION_3_0, /* The only version of SPIRIT1 */
rosarium 0:2ddc0583bcec 157 } SpiritVersion;
rosarium 0:2ddc0583bcec 158
rosarium 0:2ddc0583bcec 159
rosarium 0:2ddc0583bcec 160 /**
rosarium 0:2ddc0583bcec 161 * @}
rosarium 0:2ddc0583bcec 162 */
rosarium 0:2ddc0583bcec 163
rosarium 0:2ddc0583bcec 164
rosarium 0:2ddc0583bcec 165 /**
rosarium 0:2ddc0583bcec 166 * @defgroup General_Exported_Constants General Exported Constants
rosarium 0:2ddc0583bcec 167 * @{
rosarium 0:2ddc0583bcec 168 */
rosarium 0:2ddc0583bcec 169
rosarium 0:2ddc0583bcec 170
rosarium 0:2ddc0583bcec 171 /**
rosarium 0:2ddc0583bcec 172 * @}
rosarium 0:2ddc0583bcec 173 */
rosarium 0:2ddc0583bcec 174
rosarium 0:2ddc0583bcec 175
rosarium 0:2ddc0583bcec 176 /**
rosarium 0:2ddc0583bcec 177 * @defgroup General_Exported_Macros General Exported Macros
rosarium 0:2ddc0583bcec 178 * @{
rosarium 0:2ddc0583bcec 179 */
rosarium 0:2ddc0583bcec 180 #define SpiritGeneralLibraryVersion() "Spirit1_Libraries_v.3.2.0"
rosarium 0:2ddc0583bcec 181
rosarium 0:2ddc0583bcec 182
rosarium 0:2ddc0583bcec 183 /**
rosarium 0:2ddc0583bcec 184 * @}
rosarium 0:2ddc0583bcec 185 */
rosarium 0:2ddc0583bcec 186
rosarium 0:2ddc0583bcec 187
rosarium 0:2ddc0583bcec 188 /**
rosarium 0:2ddc0583bcec 189 * @defgroup General_Exported_Functions General Exported Functions
rosarium 0:2ddc0583bcec 190 * @{
rosarium 0:2ddc0583bcec 191 */
rosarium 0:2ddc0583bcec 192
rosarium 0:2ddc0583bcec 193
rosarium 0:2ddc0583bcec 194 void SpiritGeneralBatteryLevel(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 195 void SpiritGeneralSetBatteryLevel(BatteryLevel xBatteryLevel);
rosarium 0:2ddc0583bcec 196 BatteryLevel SpiritGeneralGetBatteryLevel(void);
rosarium 0:2ddc0583bcec 197 void SpiritGeneralBrownOut(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 198 void SpiritGeneralHighPwr(SpiritFunctionalState xNewState);
rosarium 0:2ddc0583bcec 199 void SpiritGeneralSetExtRef(ModeExtRef xExtMode);
rosarium 0:2ddc0583bcec 200 ModeExtRef SpiritGeneralGetExtRef(void);
rosarium 0:2ddc0583bcec 201 void SpiritGeneralSetXoGm(GmConf xGm);
rosarium 0:2ddc0583bcec 202 GmConf SpiritGeneralGetXoGm(void);
rosarium 0:2ddc0583bcec 203 PacketType SpiritGeneralGetPktType(void);
rosarium 0:2ddc0583bcec 204 uint16_t SpiritGeneralGetDevicePartNumber(void);
rosarium 0:2ddc0583bcec 205 uint8_t SpiritGeneralGetSpiritVersion(void);
rosarium 0:2ddc0583bcec 206
rosarium 0:2ddc0583bcec 207 /**
rosarium 0:2ddc0583bcec 208 * @}
rosarium 0:2ddc0583bcec 209 */
rosarium 0:2ddc0583bcec 210
rosarium 0:2ddc0583bcec 211 /**
rosarium 0:2ddc0583bcec 212 * @}
rosarium 0:2ddc0583bcec 213 */
rosarium 0:2ddc0583bcec 214
rosarium 0:2ddc0583bcec 215
rosarium 0:2ddc0583bcec 216 /**
rosarium 0:2ddc0583bcec 217 * @}
rosarium 0:2ddc0583bcec 218 */
rosarium 0:2ddc0583bcec 219
rosarium 0:2ddc0583bcec 220
rosarium 0:2ddc0583bcec 221 #ifdef __cplusplus
rosarium 0:2ddc0583bcec 222 }
rosarium 0:2ddc0583bcec 223 #endif
rosarium 0:2ddc0583bcec 224
rosarium 0:2ddc0583bcec 225 #endif
rosarium 0:2ddc0583bcec 226
rosarium 0:2ddc0583bcec 227 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/