This code holds the complete demo set for the sx1280: PingPong, PER and Ranging Outdoor demo application. >>>>> This code MUST run on the mbed library release 127 or everything will be painfully slow.

Dependencies:   mbed SX1280Lib DmTftLibrary

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Menu.h Source File

Menu.h

00001 /*
00002   ______                              _
00003  / _____)             _              | |
00004 ( (____  _____ ____ _| |_ _____  ____| |__
00005  \____ \| ___ |    (_   _) ___ |/ ___)  _ \
00006  _____) ) ____| | | || |_| ____( (___| | | |
00007 (______/|_____)_|_|_| \__)_____)\____)_| |_|
00008     (C)2016 Semtech
00009 
00010 Description: Display demo menus and manage touch sensor, header
00011 
00012 Maintainer: Gregory Cristian & Gilbert Menth
00013 */
00014 
00015 #ifndef MENU_H
00016 #define MENU_H
00017 
00018 
00019 #include "DisplayDriver.h"
00020 #include "DmTouchCalibration.h"
00021 
00022 
00023 /*!
00024  * \brief TFT calibration structure.
00025  */
00026 typedef struct
00027 {
00028     bool ScreenCalibrated;
00029     CalibrationMatrix Calibration;
00030 }MenuSettings_t;
00031 
00032 /*!
00033  * \brief Available pages in menu.
00034  */
00035 enum MenuPages
00036 {
00037     START_PAGE = 0,
00038     PAGE_PING_PONG,
00039     PAGE_PER,
00040     PAGE_RANGING_MASTER,
00041     PAGE_RANGING_SLAVE,
00042     PAGE_RANGING_PARAM,
00043     PAGE_RADIO_PARAM,
00044     PAGE_RADIO_PARAM_FREQ,
00045     PAGE_UTILITIES,
00046     PAGE_RADIO_TEST,
00047     PAGE_SLEEP_MODE,
00048     PAGE_STBY_RC_MODE,
00049     PAGE_STBY_XOSC_MODE,
00050     PAGE_TX_CW,
00051     PAGE_CONT_MODULATION
00052 };
00053 
00054 
00055 /*!
00056  * \brief Common var to manage TFT calibration.
00057  */
00058 extern MenuSettings_t MenuSettings;
00059 
00060 
00061 /*!
00062  * \brief Init menu settings.
00063  */
00064 void MenuInit( void );
00065 
00066 /*!
00067  * \brief Permanently display Handler for touch sensor.
00068  *
00069  * \param [in]  refresh       Flag indicates refresh display required (touch)
00070  *
00071  * \retval      CurrentPage   The updated current page
00072  */
00073 uint8_t MenuHandler( bool refresh );
00074 
00075 /*!
00076  * \brief Update or refresh the activated menu page.
00077  *
00078  * \param [in]  page          Page to display
00079  */
00080 void MenuSetPage( uint8_t page );
00081 
00082 /*!
00083  * \brief Writes 3 lines on display, with current radio parameters.
00084  *
00085  * \param [in]  page          Current page to choose what to display.
00086  */
00087 void DisplayCurrentRadioParams( uint8_t page );
00088 
00089 /*!
00090  * \brief Return text with current frame type.
00091  *
00092  * \retval      text          Pointer on text to display
00093  */
00094 char* GetMenuRadioFrameType( void );
00095 
00096 /*!
00097  * \brief Return text with current Radio Modulation Parameters1.
00098  *
00099  * \retval      text          Pointer on text to display
00100  */
00101 char* GetRadioModulationParameters1( void );
00102 
00103 /*!
00104  * \brief Return text with current Radio Modulatio nParameters2.
00105  *
00106  * \retval      text          Pointer on text to display
00107  */
00108 char* GetRadioModulationParameters2( void );
00109 
00110 /*!
00111  * \brief Return text with current Radio Modulation Parameters3.
00112  *
00113  * \retval      text          Pointer on text to display
00114  */
00115 char* GetRadioModulationParameters3( void );
00116 
00117 /*!
00118  * \brief Return text with current Radio Frequency.
00119  *
00120  * \retval      text          Pointer on text to display
00121  */
00122 char* GetRadioFrequency( void );
00123 /*!
00124  * \brief Update the radio frequency displayed on the screen.
00125  *
00126  * \param [in]  freq          freq in Hz
00127  */
00128 void UpdateRadioFrequency( unsigned long freq );
00129 
00130 /*!
00131  * \brief Return text with current Radio Frequency [GHz] format #.###.
00132  *
00133  * \retval      text          Pointer on text to display
00134  */
00135 char* GetRadioFrequencyGHz( void );
00136 
00137 /*!
00138  * \brief Return text with current Radio Freq Base.
00139  *
00140  * \retval      text          Pointer on text to display
00141  */
00142 char* GetRadioFreqBase( void );
00143 
00144 /*!
00145  * \brief Return text with Radio preset Frequency 1.
00146  *
00147  * \retval      text          Pointer on text to display
00148  */
00149 char* GetRadioFreqBasePS1( void );
00150 
00151 /*!
00152  * \brief Return text with Radio preset Frequency 2.
00153  *
00154  * \retval      text          Pointer on text to display
00155  */
00156 char* GetRadioFreqBasePS2( void );
00157 
00158 /*!
00159  * \brief Return text with Radio preset Frequency 3.
00160  *
00161  * \retval      text          Pointer on text to display
00162  */
00163 char* GetRadioFreqBasePS3( void );
00164 
00165 /*!
00166  * \brief Return text with current Radio Tx Power.
00167  *
00168  * \retval      text          Pointer on text to display
00169  */
00170 char* GetRadioTxPower( void );
00171 
00172 /*!
00173  * \brief Return text with current Radio Payload Length.
00174  *
00175  * \retval      text          Pointer on text to display
00176  */
00177 char* GetRadioPayloadLength( void );
00178 
00179 /*!
00180  * \brief Return text with Max Num Packet.
00181  *
00182  * \retval      text          Pointer on text to display
00183  */
00184 char* GetMenuDemoMaxNumPacket( void );
00185 
00186 /*!
00187  * \brief Return text with current Demo Num Sent Packet.
00188  *
00189  * \retval      text          Pointer on text to display
00190  */
00191 char* GetMenuDemoNumSentPacket( void );
00192 
00193 /*!
00194  * \brief Return text with current Rx frame Ok count.
00195  *
00196  * \retval      text          Pointer on text to display
00197  */
00198 char* GetMenuDemoRxOk( void );
00199 
00200 /*!
00201  * \brief Return text with current Rx frame Ko count.
00202  *
00203  * \retval      text          Pointer on text to display
00204  */
00205 char* GetMenuDemoRxKo( void );
00206 
00207 /*!
00208  * \brief Return text with current Rx frame Ok (on slave side) count.
00209  *
00210  * \retval      text          Pointer on text to display
00211  */
00212 char* GetMenuDemoRxOkSlave( void );
00213 
00214 /*!
00215  * \brief Return text with current Rx frame Ko (on slave side) count.
00216  *
00217  * \retval      text          Pointer on text to display
00218  */
00219 char* GetMenuDemoRxKoSlave( void );
00220 
00221 /*!
00222  * \brief Return text with current Result PerCent1, format ###.##.
00223  *
00224  * \param [in]  value         value to compute in [%]
00225  * \param [in]  reference     reference value for % computation
00226  *
00227  * \retval      text          Pointer on text to display
00228  */
00229 char* GetMenuDemoResultPerCent1( uint32_t value, uint32_t reference );
00230 
00231 /*!
00232  * \brief Return text with current Result PerCent2, format ###.##.
00233  *
00234  * \param [in]  value         value to compute in [%]
00235  * \param [in]  reference     reference value for % computation
00236  *
00237  * \retval      text          Pointer on text to display
00238  */
00239 char* GetMenuDemoResultPerCent2( uint32_t value, uint32_t reference );
00240 
00241 /*!
00242  * \brief Return text with current Rssi.
00243  *
00244  * \retval      text          Pointer on text to display
00245  */
00246 char* GetMenuDemoRssi( void );
00247 
00248 /*!
00249  * \brief Return text with current Snr.
00250  *
00251  * \retval      text          Pointer on text to display
00252  */
00253 char* GetMenuDemoSnr( void );
00254 
00255 /*!
00256  * \brief Return text with current Antenna Setting.
00257  *
00258  * \retval      text          Pointer on text to display
00259  */
00260 char* GetAntennaSetting( void );
00261 
00262 /*!
00263  * \brief Return text with Total Packet for the test.
00264  *
00265  * \retval      text          Pointer on text to display
00266  */
00267 char* GetTotalPackets( void );
00268 
00269 /*!
00270  * \brief Return text with current GPS Time.
00271  *
00272  * \retval      text          Pointer on text to display
00273  */
00274 char* GetGpsTime( void );
00275 
00276 /*!
00277  * \brief Return text with current GPS Position.
00278  *
00279  * \retval      text          Pointer on text to display
00280  */
00281 char* GetGpsPos( void );
00282 
00283 /*!
00284  * \brief Return text with current Proximity Value.
00285  *
00286  * \retval      text          Pointer on text to display
00287  */
00288 char* GetProximityValue( void );
00289 
00290 /*!
00291  * \brief Return text with current Radio Power Mode Value.
00292  *
00293  * \retval      text          Pointer on text to display
00294  */
00295 char* GetMenuDemoRadioPowerMode( void );
00296 
00297 /*!
00298  * \brief Return text with current Frequency Error Value.
00299  *
00300  * \retval      text          Pointer on text to display
00301  */
00302 char* GetFrequencyError( void );
00303 
00304 /*!
00305  * \brief Return text with current Ranging Channels Successfully Done Value.
00306  *
00307  * \retval      text          Pointer on text to display
00308  */
00309 char* GetRngChannelsOk( void );
00310 
00311 /*!
00312  * \brief Return text with current Ranging Request Count Value.
00313  *
00314  * \retval      text          Pointer on text to display
00315  */
00316 char* GetRangingRequestCount( void );
00317 
00318 /*!
00319  * \brief Return text with current Ranging Address Value.
00320  *
00321  * \retval      text          Pointer on text to display
00322  */
00323 char* GetRangingAddress( void );
00324 
00325 /*!
00326  * \brief Return text with current Ranging Antenna Value.
00327  *
00328  * \retval      text          Pointer on text to display
00329  */
00330 char* GetRangingAntenna( void );
00331 
00332 /*!
00333  * \brief Return text with current Ranging Distance Unit.
00334  *
00335  * \retval      text          Pointer on text to display
00336  */
00337 char* GetRangingUnit( void );
00338 
00339 #endif // MENU_H
00340