SX126xDevKit

Dependencies:   mbed DmTftLibrary SX126xLib

Committer:
GregCr
Date:
Fri Mar 09 13:28:34 2018 +0000
Revision:
1:b96176a4ccb8
Parent:
0:e5420f1a8a1a
Child:
2:8e1b4210df6b
V1.0

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