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

Dependencies:   mbed DmTftLibrary SX126xLib

Committer:
mantoine
Date:
Mon Jan 07 23:02:45 2019 +0100
Revision:
3:c3ab10127815
Parent:
2:8e1b4210df6b
Updated erroneous path to SX126xLib library.

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