Source code for the SX126xDVK1xAS Dev Kit. This example code has only been tested on the Nucleo L476RG

Dependencies:   mbed DmTftLibrary SX126xLib

Committer:
GregCr
Date:
Tue Sep 05 08:15:37 2017 +0000
Revision:
0:e5420f1a8a1a
Child:
1:b96176a4ccb8
Candidate Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregCr 0:e5420f1a8a1a 1 /*
GregCr 0:e5420f1a8a1a 2 ______ _
GregCr 0:e5420f1a8a1a 3 / _____) _ | |
GregCr 0:e5420f1a8a1a 4 ( (____ _____ ____ _| |_ _____ ____| |__
GregCr 0:e5420f1a8a1a 5 \____ \| ___ | (_ _) ___ |/ ___) _ \
GregCr 0:e5420f1a8a1a 6 _____) ) ____| | | || |_| ____( (___| | | |
GregCr 0:e5420f1a8a1a 7 (______/|_____)_|_|_| \__)_____)\____)_| |_|
GregCr 0:e5420f1a8a1a 8 (C)2016 Semtech
GregCr 0:e5420f1a8a1a 9
GregCr 0:e5420f1a8a1a 10 Description: Display demo menus and manage touch sensor, header
GregCr 0:e5420f1a8a1a 11
GregCr 0:e5420f1a8a1a 12 Maintainer: Gregory Cristian & Gilbert Menth
GregCr 0:e5420f1a8a1a 13 */
GregCr 0:e5420f1a8a1a 14
GregCr 0:e5420f1a8a1a 15 #ifndef MENU_H
GregCr 0:e5420f1a8a1a 16 #define MENU_H
GregCr 0:e5420f1a8a1a 17
GregCr 0:e5420f1a8a1a 18 #include "DisplayDriver.h"
GregCr 0:e5420f1a8a1a 19 #include "DmTouchCalibration.h"
GregCr 0:e5420f1a8a1a 20
GregCr 0:e5420f1a8a1a 21 #define SX1261 1
GregCr 0:e5420f1a8a1a 22 #define SX1262 0
GregCr 0:e5420f1a8a1a 23
GregCr 0:e5420f1a8a1a 24 /*!
GregCr 0:e5420f1a8a1a 25 * \brief TFT calibration structure.
GregCr 0:e5420f1a8a1a 26 */
GregCr 0:e5420f1a8a1a 27 typedef struct
GregCr 0:e5420f1a8a1a 28 {
GregCr 0:e5420f1a8a1a 29 bool ScreenCalibrated;
GregCr 0:e5420f1a8a1a 30 CalibrationMatrix Calibration;
GregCr 0:e5420f1a8a1a 31 }MenuSettings_t;
GregCr 0:e5420f1a8a1a 32
GregCr 0:e5420f1a8a1a 33 /*!
GregCr 0:e5420f1a8a1a 34 * \brief Available pages in menu.
GregCr 0:e5420f1a8a1a 35 */
GregCr 0:e5420f1a8a1a 36 enum MenuPages
GregCr 0:e5420f1a8a1a 37 {
GregCr 0:e5420f1a8a1a 38 START_PAGE = 0,
GregCr 0:e5420f1a8a1a 39 PAGE_PING_PONG,
GregCr 0:e5420f1a8a1a 40 PAGE_PER,
GregCr 0:e5420f1a8a1a 41 PAGE_RADIO_PARAM,
GregCr 0:e5420f1a8a1a 42 PAGE_RADIO_PARAM_FREQ,
GregCr 0:e5420f1a8a1a 43 PAGE_UTILITIES,
GregCr 0:e5420f1a8a1a 44 PAGE_RADIO_TEST,
GregCr 0:e5420f1a8a1a 45 PAGE_SLEEP_MODE,
GregCr 0:e5420f1a8a1a 46 PAGE_STBY_RC_MODE,
GregCr 0:e5420f1a8a1a 47 PAGE_STBY_XOSC_MODE,
GregCr 0:e5420f1a8a1a 48 PAGE_TX_CW,
GregCr 0:e5420f1a8a1a 49 PAGE_CONT_MODULATION,
GregCr 0:e5420f1a8a1a 50 PAGE_CONT_RX
GregCr 0:e5420f1a8a1a 51 };
GregCr 0:e5420f1a8a1a 52
GregCr 0:e5420f1a8a1a 53
GregCr 0:e5420f1a8a1a 54 /*!
GregCr 0:e5420f1a8a1a 55 * \brief Common var to manage TFT calibration.
GregCr 0:e5420f1a8a1a 56 */
GregCr 0:e5420f1a8a1a 57 extern MenuSettings_t MenuSettings;
GregCr 0:e5420f1a8a1a 58
GregCr 0:e5420f1a8a1a 59
GregCr 0:e5420f1a8a1a 60 /*!
GregCr 0:e5420f1a8a1a 61 * \brief Init menu settings.
GregCr 0:e5420f1a8a1a 62 */
GregCr 0:e5420f1a8a1a 63 void MenuInit( uint8_t deviceConnected );
GregCr 0:e5420f1a8a1a 64
GregCr 0:e5420f1a8a1a 65 /*!
GregCr 0:e5420f1a8a1a 66 * \brief Permanently display Handler for touch sensor.
GregCr 0:e5420f1a8a1a 67 *
GregCr 0:e5420f1a8a1a 68 * \param [in] refresh Flag indicates refresh display required (touch)
GregCr 0:e5420f1a8a1a 69 *
GregCr 0:e5420f1a8a1a 70 * \retval CurrentPage The updated current page
GregCr 0:e5420f1a8a1a 71 */
GregCr 0:e5420f1a8a1a 72 uint8_t MenuHandler( bool refresh );
GregCr 0:e5420f1a8a1a 73
GregCr 0:e5420f1a8a1a 74 /*!
GregCr 0:e5420f1a8a1a 75 * \brief Update or refresh the activated menu page.
GregCr 0:e5420f1a8a1a 76 *
GregCr 0:e5420f1a8a1a 77 * \param [in] page Page to display
GregCr 0:e5420f1a8a1a 78 */
GregCr 0:e5420f1a8a1a 79 void MenuSetPage( uint8_t page );
GregCr 0:e5420f1a8a1a 80
GregCr 0:e5420f1a8a1a 81 /*!
GregCr 0:e5420f1a8a1a 82 * \brief Writes 3 lines on display, with current radio parameters.
GregCr 0:e5420f1a8a1a 83 *
GregCr 0:e5420f1a8a1a 84 * \param [in] page Current page to choose what to display.
GregCr 0:e5420f1a8a1a 85 */
GregCr 0:e5420f1a8a1a 86 void DisplayCurrentRadioParams( uint8_t page );
GregCr 0:e5420f1a8a1a 87
GregCr 0:e5420f1a8a1a 88 /*!
GregCr 0:e5420f1a8a1a 89 * \brief Return text with current frame type.
GregCr 0:e5420f1a8a1a 90 *
GregCr 0:e5420f1a8a1a 91 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 92 */
GregCr 0:e5420f1a8a1a 93 char* GetMenuRadioFrameType( void );
GregCr 0:e5420f1a8a1a 94
GregCr 0:e5420f1a8a1a 95 /*!
GregCr 0:e5420f1a8a1a 96 * \brief Return text with current Radio Modulation Parameters1.
GregCr 0:e5420f1a8a1a 97 *
GregCr 0:e5420f1a8a1a 98 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 99 */
GregCr 0:e5420f1a8a1a 100 char* GetRadioModulationParameters1( void );
GregCr 0:e5420f1a8a1a 101
GregCr 0:e5420f1a8a1a 102 /*!
GregCr 0:e5420f1a8a1a 103 * \brief Return text with current Radio Modulatio nParameters2.
GregCr 0:e5420f1a8a1a 104 *
GregCr 0:e5420f1a8a1a 105 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 106 */
GregCr 0:e5420f1a8a1a 107 char* GetRadioModulationParameters2( void );
GregCr 0:e5420f1a8a1a 108
GregCr 0:e5420f1a8a1a 109 /*!
GregCr 0:e5420f1a8a1a 110 * \brief Return text with current Radio Modulation Parameters3.
GregCr 0:e5420f1a8a1a 111 *
GregCr 0:e5420f1a8a1a 112 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 113 */
GregCr 0:e5420f1a8a1a 114 char* GetRadioModulationParameters3( void );
GregCr 0:e5420f1a8a1a 115
GregCr 0:e5420f1a8a1a 116 /*!
GregCr 0:e5420f1a8a1a 117 * \brief Return text with current Radio Modulation Parameters4.
GregCr 0:e5420f1a8a1a 118 *
GregCr 0:e5420f1a8a1a 119 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 120 */
GregCr 0:e5420f1a8a1a 121 char* GetRadioModulationParameters4( void );
GregCr 0:e5420f1a8a1a 122
GregCr 0:e5420f1a8a1a 123 /*!
GregCr 0:e5420f1a8a1a 124 * \brief Return text with current Radio Frequency.
GregCr 0:e5420f1a8a1a 125 *
GregCr 0:e5420f1a8a1a 126 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 127 */
GregCr 0:e5420f1a8a1a 128 char* GetRadioFrequency( void );
GregCr 0:e5420f1a8a1a 129
GregCr 0:e5420f1a8a1a 130 /*!
GregCr 0:e5420f1a8a1a 131 * \brief Return text with current Frequency Error.
GregCr 0:e5420f1a8a1a 132 *
GregCr 0:e5420f1a8a1a 133 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 134 */
GregCr 0:e5420f1a8a1a 135 char* GetMenuDemoFreqError( void );
GregCr 0:e5420f1a8a1a 136
GregCr 0:e5420f1a8a1a 137 /*!
GregCr 0:e5420f1a8a1a 138 * \brief Return text with current Radio Frequency [GHz] format #.###.
GregCr 0:e5420f1a8a1a 139 *
GregCr 0:e5420f1a8a1a 140 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 141 */
GregCr 0:e5420f1a8a1a 142 char* GetRadioFrequencyMHz( void );
GregCr 0:e5420f1a8a1a 143
GregCr 0:e5420f1a8a1a 144 /*!
GregCr 0:e5420f1a8a1a 145 * \brief Return text with current Radio Freq Base.
GregCr 0:e5420f1a8a1a 146 *
GregCr 0:e5420f1a8a1a 147 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 148 */
GregCr 0:e5420f1a8a1a 149 char* GetRadioFreqBase( void );
GregCr 0:e5420f1a8a1a 150
GregCr 0:e5420f1a8a1a 151 /*!
GregCr 0:e5420f1a8a1a 152 * \brief Return text with Radio preset Frequency 1.
GregCr 0:e5420f1a8a1a 153 *
GregCr 0:e5420f1a8a1a 154 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 155 */
GregCr 0:e5420f1a8a1a 156 char* GetRadioFreqBasePS1( void );
GregCr 0:e5420f1a8a1a 157
GregCr 0:e5420f1a8a1a 158 /*!
GregCr 0:e5420f1a8a1a 159 * \brief Return text with Radio preset Frequency 2.
GregCr 0:e5420f1a8a1a 160 *
GregCr 0:e5420f1a8a1a 161 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 162 */
GregCr 0:e5420f1a8a1a 163 char* GetRadioFreqBasePS2( void );
GregCr 0:e5420f1a8a1a 164
GregCr 0:e5420f1a8a1a 165 /*!
GregCr 0:e5420f1a8a1a 166 * \brief Return text with Radio preset Frequency 3.
GregCr 0:e5420f1a8a1a 167 *
GregCr 0:e5420f1a8a1a 168 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 169 */
GregCr 0:e5420f1a8a1a 170 char* GetRadioFreqBasePS3( void );
GregCr 0:e5420f1a8a1a 171
GregCr 0:e5420f1a8a1a 172 /*!
GregCr 0:e5420f1a8a1a 173 * \brief Return text with current Radio Tx Power.
GregCr 0:e5420f1a8a1a 174 *
GregCr 0:e5420f1a8a1a 175 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 176 */
GregCr 0:e5420f1a8a1a 177 char* GetRadioTxPower( void );
GregCr 0:e5420f1a8a1a 178
GregCr 0:e5420f1a8a1a 179 /*!
GregCr 0:e5420f1a8a1a 180 * \brief Return text with current Radio Payload Length.
GregCr 0:e5420f1a8a1a 181 *
GregCr 0:e5420f1a8a1a 182 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 183 */
GregCr 0:e5420f1a8a1a 184 char* GetRadioPayloadLength( void );
GregCr 0:e5420f1a8a1a 185
GregCr 0:e5420f1a8a1a 186 /*!
GregCr 0:e5420f1a8a1a 187 * \brief Return text with Max Num Packet.
GregCr 0:e5420f1a8a1a 188 *
GregCr 0:e5420f1a8a1a 189 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 190 */
GregCr 0:e5420f1a8a1a 191 char* GetMenuDemoMaxNumPacket( void );
GregCr 0:e5420f1a8a1a 192
GregCr 0:e5420f1a8a1a 193 /*!
GregCr 0:e5420f1a8a1a 194 * \brief Return text with current Demo Num Sent Packet.
GregCr 0:e5420f1a8a1a 195 *
GregCr 0:e5420f1a8a1a 196 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 197 */
GregCr 0:e5420f1a8a1a 198 char* GetMenuDemoNumSentPacket( void );
GregCr 0:e5420f1a8a1a 199
GregCr 0:e5420f1a8a1a 200 /*!
GregCr 0:e5420f1a8a1a 201 * \brief Return text with current Rx frame Ok count.
GregCr 0:e5420f1a8a1a 202 *
GregCr 0:e5420f1a8a1a 203 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 204 */
GregCr 0:e5420f1a8a1a 205 char* GetMenuDemoRxOk( void );
GregCr 0:e5420f1a8a1a 206
GregCr 0:e5420f1a8a1a 207 /*!
GregCr 0:e5420f1a8a1a 208 * \brief Return text with current Rx frame Ko count.
GregCr 0:e5420f1a8a1a 209 *
GregCr 0:e5420f1a8a1a 210 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 211 */
GregCr 0:e5420f1a8a1a 212 char* GetMenuDemoRxKo( void );
GregCr 0:e5420f1a8a1a 213
GregCr 0:e5420f1a8a1a 214 /*!
GregCr 0:e5420f1a8a1a 215 * \brief Return text with current Rx frame Ok (on slave side) count.
GregCr 0:e5420f1a8a1a 216 *
GregCr 0:e5420f1a8a1a 217 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 218 */
GregCr 0:e5420f1a8a1a 219 char* GetMenuDemoRxOkSlave( void );
GregCr 0:e5420f1a8a1a 220
GregCr 0:e5420f1a8a1a 221 /*!
GregCr 0:e5420f1a8a1a 222 * \brief Return text with current Rx frame Ko (on slave side) count.
GregCr 0:e5420f1a8a1a 223 *
GregCr 0:e5420f1a8a1a 224 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 225 */
GregCr 0:e5420f1a8a1a 226 char* GetMenuDemoRxKoSlave( void );
GregCr 0:e5420f1a8a1a 227
GregCr 0:e5420f1a8a1a 228 /*!
GregCr 0:e5420f1a8a1a 229 * \brief Return text with current Result PerCent1, format ###.##.
GregCr 0:e5420f1a8a1a 230 *
GregCr 0:e5420f1a8a1a 231 * \param [in] value value to compute in [%]
GregCr 0:e5420f1a8a1a 232 * \param [in] reference reference value for % computation
GregCr 0:e5420f1a8a1a 233 *
GregCr 0:e5420f1a8a1a 234 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 235 */
GregCr 0:e5420f1a8a1a 236 char* GetMenuDemoResultPerCent1( uint32_t value, uint32_t reference );
GregCr 0:e5420f1a8a1a 237
GregCr 0:e5420f1a8a1a 238 /*!
GregCr 0:e5420f1a8a1a 239 * \brief Return text with current Result PerCent2, format ###.##.
GregCr 0:e5420f1a8a1a 240 *
GregCr 0:e5420f1a8a1a 241 * \param [in] value value to compute in [%]
GregCr 0:e5420f1a8a1a 242 * \param [in] reference reference value for % computation
GregCr 0:e5420f1a8a1a 243 *
GregCr 0:e5420f1a8a1a 244 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 245 */
GregCr 0:e5420f1a8a1a 246 char* GetMenuDemoResultPerCent2( uint32_t value, uint32_t reference );
GregCr 0:e5420f1a8a1a 247
GregCr 0:e5420f1a8a1a 248 /*!
GregCr 0:e5420f1a8a1a 249 * \brief Return text with current Rssi.
GregCr 0:e5420f1a8a1a 250 *
GregCr 0:e5420f1a8a1a 251 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 252 */
GregCr 0:e5420f1a8a1a 253 char* GetMenuDemoRssi( void );
GregCr 0:e5420f1a8a1a 254
GregCr 0:e5420f1a8a1a 255 /*!
GregCr 0:e5420f1a8a1a 256 * \brief Return text with current Snr.
GregCr 0:e5420f1a8a1a 257 *
GregCr 0:e5420f1a8a1a 258 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 259 */
GregCr 0:e5420f1a8a1a 260 char* GetMenuDemoSnr( void );
GregCr 0:e5420f1a8a1a 261
GregCr 0:e5420f1a8a1a 262 /*!
GregCr 0:e5420f1a8a1a 263 * \brief Return text with Total Packet for the test.
GregCr 0:e5420f1a8a1a 264 *
GregCr 0:e5420f1a8a1a 265 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 266 */
GregCr 0:e5420f1a8a1a 267 char* GetTotalPackets( void );
GregCr 0:e5420f1a8a1a 268
GregCr 0:e5420f1a8a1a 269 /*!
GregCr 0:e5420f1a8a1a 270 * \brief Return text with current Radio Power Mode Value.
GregCr 0:e5420f1a8a1a 271 *
GregCr 0:e5420f1a8a1a 272 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 273 */
GregCr 0:e5420f1a8a1a 274 char* GetMenuDemoRadioPowerMode( void );
GregCr 0:e5420f1a8a1a 275
GregCr 0:e5420f1a8a1a 276 /*!
GregCr 0:e5420f1a8a1a 277 * \brief Return text with current Rx Boosted Setting.
GregCr 0:e5420f1a8a1a 278 *
GregCr 0:e5420f1a8a1a 279 * \retval text Pointer on text to display
GregCr 0:e5420f1a8a1a 280 */
GregCr 0:e5420f1a8a1a 281 char* GetMenuDemoRadioBoostedRx( void );
GregCr 0:e5420f1a8a1a 282
GregCr 0:e5420f1a8a1a 283 #endif // MENU_H