Base 4 Scope (4 March 2022)

Dependencies:   mbed QEI DmTftLibrary

Revision:
23:b9d23a2f390e
Parent:
22:12c555cade79
Child:
27:654100855f5c
--- a/Display/Menu.cpp	Thu Jan 20 13:26:03 2022 +0000
+++ b/Display/Menu.cpp	Thu Feb 10 09:39:01 2022 +0000
@@ -1,6 +1,8 @@
 
 #include <stdio.h>
 #include "mbed.h"
+//#include "QEI.h"
+
 #include "Menu.h"
 #include "DisplayDriver.h"
 #include "Eeprom.h"
@@ -24,20 +26,20 @@
  * touched region (if pressed). CheckScreenFlag keep the status if Touchscreen
  * has been checked or not, until checked.
  */
-Ticker CheckScreenTouch;
+//Ticker CheckScreenTouch;
 volatile bool CheckScreenFlag = false;
 
 /*!
  * \brief This ticker give the rythme to refresh a page when continuous info
  * has to be printed in the same page.
  */
-Ticker CheckPageRefresh;
+//Ticker CheckPageRefresh;
 volatile bool PageRefresh = false;
 
 /*!
  * \brief This ticker give the rythme to avoid quick menu change
  */
-Ticker DebouncedScreenTouch;
+//Ticker DebouncedScreenTouch;
 volatile bool ScreenBeenDebounced = false;
 
 /*!
@@ -79,6 +81,8 @@
     BTN6_VALUE_TEXT,
     BTN7_BORDER,
     BTN7_MENU_TEXT,
+    BTN7_LABEL_TEXT,
+    BTN7_VALUE_TEXT,
     BTN8_BORDER,
     BTN8_MENU_TEXT,
     BTN9_BORDER,
@@ -124,7 +128,7 @@
     RNG_DS5_LINE,
     RNG_MST_SCR,
 };
-#define GRAPH_OBJECTS_COUNT     78
+#define GRAPH_OBJECTS_COUNT     80
 GraphObject_t MenuObjects[GRAPH_OBJECTS_COUNT] =
 {
 //  (Id,                Type,           Xpos,   Ypos,   Height, Width,  LineW,  BackColor,  FrontColor,     DoFill, FillCol,    Source,         TouchActive}
@@ -160,8 +164,10 @@
     {BTN6_MENU_TEXT,    GO_TEXT,        15,     258,    NULL,   200,    1,      BACK_COLOR, MENU_TEXT,      false,  NULL,       NULL,           false},
     {BTN6_LABEL_TEXT,   GO_TEXT,        15,     258,    NULL,   64,     1,      BACK_COLOR, TEXT_COLOR,     false,  NULL,       NULL,           false},
     {BTN6_VALUE_TEXT,   GO_TEXT,        79,     258,    NULL,   152,    1,      BACK_COLOR, TEXT_VALUE,     false,  NULL,       NULL,           false},
-    {BTN7_BORDER,       GO_RECTANGLE,   10,     285,    30,     106,    1,      BACK_COLOR, BUTTON_BORDER,  false,  NULL,       NULL,           false},
-    {BTN7_MENU_TEXT,    GO_TEXT,        15,     293,    NULL,   96,     1,      BACK_COLOR, MENU_TEXT,      false,  NULL,       NULL,           false},
+    {BTN7_BORDER,       GO_RECTANGLE,   10,     285,    30,     222,    1,      BACK_COLOR, BUTTON_BORDER,  false,  NULL,       NULL,           false},
+    {BTN7_MENU_TEXT,    GO_TEXT,        15,     293,    NULL,   200,    1,      BACK_COLOR, MENU_TEXT,      false,  NULL,       NULL,           false},
+    {BTN7_LABEL_TEXT,   GO_TEXT,        15,     293,    NULL,   64,     1,      BACK_COLOR, TEXT_COLOR,     false,  NULL,       NULL,           false},
+    {BTN7_VALUE_TEXT,   GO_TEXT,        79,     293,    NULL,   152,    1,      BACK_COLOR, TEXT_VALUE,     false,  NULL,       NULL,           false},
     {BTN8_BORDER,       GO_RECTANGLE,   125,    285,    30,     107,    1,      BACK_COLOR, BUTTON_BORDER,  false,  NULL,       NULL,           false},
     {BTN8_MENU_TEXT,    GO_TEXT,        130,    293,    NULL,   96,     1,      BACK_COLOR, MENU_TEXT,      false,  NULL,       NULL,           false},
     {BTN9_BORDER,       GO_RECTANGLE,   125,    40,     30,     107,    1,      BACK_COLOR, BUTTON_BORDER,  false,  NULL,       NULL,           false},
@@ -233,2303 +239,130 @@
  */
 //static FreqBase CurrentFreqBase = FB100K;
 
-
-void CheckScreen( void );
-void CheckRefresh( void );
-void DebouncedScreen( void );
-void DrawActiveButton( uint8_t buttonId, uint8_t* text1, uint8_t* text2 );
-void ButtonChangeText( uint8_t buttonId, uint8_t* text1, uint8_t* text2 );
-void RemoveButton( uint8_t buttonId );
-void DrawText( uint8_t lineId, uint8_t* text0, uint8_t* text1, uint8_t* text2 );
-
-
 void MenuInit( void )
 {
     DisplayDriverInit( );
     GraphObjectDraw( &( MenuObjects[PAGE_BORDER] ), NULL, false, false );
 //    GraphObjectDraw( &( MenuObjects[TITLE_LINE] ), NULL, false, false );
 //    MenuSetPage( START_PAGE );
-    CheckScreenTouch.attach_us( &CheckScreen, 100000 );     // every 100 ms
+
+//    CheckScreenTouch.attach_us( &CheckScreen, 100000 );     // every 100 ms
 
     // Page Utilities only for GPS and proximity sensor :
-    CheckPageRefresh.attach_us( &CheckRefresh, 1000000 );   // every 1 s
+//    CheckPageRefresh.attach_us( &CheckRefresh, 1000000 );   // every 1 s
 }
 
-void    StabilusMenu    (void) {
+extern  DigitalIn   userButton;
+//
+extern  AnalogIn    adc_temp;
+extern  AnalogIn    adc_vref;
+extern  AnalogIn    adc_vbat;
+//
+//extern  QEI Stabilus322699;
 
-    uint8_t graphObjectTouched = 0xFF;
-//    static uint8_t refresh = false;
+//void    StabilusMenu    (uint32_t ms_0001, uint32_t ms_0002, uint32_t ms_0003, int32_t i32_Pulses) {
+//void    StabilusMenu    (uint32_t ms_0001, uint32_t ms_0002, int32_t i32_Pulses) {
+//void    StabilusMenu    (int32_t i32_Pulses) {
+//void    StabilusMenu    (void) {
+void    StabilusMenu    (uint32_t ms_0001, uint32_t ms_0002, uint32_t ms_0003, int32_t i32_Pulses) {
+//int32_t i32_Pulses;
 
-    if  (CheckScreenFlag == true) {
-        if  (ScreenBeenDebounced == false) {
-            ScreenBeenDebounced = true;
-            CheckScreenFlag = false;
-            DebouncedScreenTouch.attach_us  (&DebouncedScreen,
-                                            150000);            // every 150 ms
-            GraphObjectTouched  (MenuObjects,
-                                GRAPH_OBJECTS_COUNT,
-                                &graphObjectTouched);
-        }
-    }
+static bool InProgress =    false;
+uint8_t graphObjectTouched = 0xFF;
 
-    StabilusMainPage( graphObjectTouched );
-}
-
-extern DigitalIn userButton;
-
-void    StabilusMainPage (uint8_t graphObjectTouched) {
-
+    if  (InProgress)
+        return;
+    else {
+    static uint32_t ms_0001_prec;
+    static uint32_t ms_0002_prec;
+    static uint32_t ms_0003_prec;
+    static bool PBPushed_prec;
+    
+    static bool Touched_Prec;
+    static int32_t  Pulses_Prec;
+    
+    static uint16_t  x_Prec;
+    static uint16_t  y_Prec;
+    
     uint16_t x, y = 0;
     bool touched = false;
     bool PBPushed = false;
 
-    TouchedXYT (&x, &y, &touched);
-    sprintf (StringText,
-            "Screen Touched: %d", touched);
-    DrawText    (TITLE_TEXT, (uint8_t*)StringText, NULL , NULL);
-
-    if  (touched == true) {
-        sprintf (StringText,
-                "x: %d", x);
-        DrawActiveButton    (BTN2_BORDER, (uint8_t*)StringText, NULL);
-    
-        sprintf (StringText,
-                "Y: %d", y);
-        DrawActiveButton    (BTN3_BORDER, (uint8_t*)StringText, NULL);
-    }
-    else {
-        DrawActiveButton    (BTN2_BORDER, (uint8_t*) "No Touch ...", NULL);
-        DrawActiveButton    (BTN3_BORDER, (uint8_t*) "No Touch ...", NULL);
-    }
-
-    PBPushed = userButton;
-    sprintf (StringText,
-            "PB Released: %d", PBPushed);
-    DrawActiveButton    (BTN4_BORDER, (uint8_t*)StringText, NULL);
-    
-    //    DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Radio Test Modes", NULL );
-    //    DrawActiveButton( BTN6_BORDER, ( uint8_t* )"Radio Settings", NULL );
-    //    DrawActiveButton( BTN7_BORDER, ( uint8_t* )"Utilities", NULL );
-
-//    CurrentPage = START_PAGE;
-}
-
-/*
-uint8_t MenuHandler( bool refresh )
-{
-    uint8_t graphObjectTouched = 0xFF;
-
-    if( ( CheckScreenFlag == true ) && ( Eeprom.EepromData.DemoSettings.RngStatus != RNG_PROCESS ) )
-    {
-        if( ScreenBeenDebounced == false )
-        {
-            ScreenBeenDebounced = true;
-            CheckScreenFlag = false;
-            DebouncedScreenTouch.attach_us( &DebouncedScreen, 150000 ); // every 150 ms
-            GraphObjectTouched( MenuObjects, GRAPH_OBJECTS_COUNT, &graphObjectTouched );
-        }
-    }
-    else
-    {
-        // in the Utilities page, GPS infos must be refresh each second
-        if( CurrentPage == PAGE_UTILITIES )
-        {
-            if( PageRefresh == true )
-            {
-                PageRefresh = false;
-                refresh = true;
-            }
-        }
-    }
-
-    if( refresh == true )
-    {
-        MenuSetPage( CurrentPage );
-    }
-    else if( ( graphObjectTouched != 0xFF ) || ( refresh == true ) )
-    {
-        switch( CurrentPage )
-        {
-            case START_PAGE:
-                if( graphObjectTouched == BTN2_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                    {
-                        Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_LORA;
-                    }
-                    EepromLoadSettings( ( RadioPacketTypes_t )Eeprom.EepromData.DemoSettings.ModulationType );
-                    MenuSetPage( PAGE_PING_PONG );
-                }
-                else if( graphObjectTouched == BTN3_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                    {
-                        Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_LORA;
-                    }
-                    EepromLoadSettings( ( RadioPacketTypes_t )Eeprom.EepromData.DemoSettings.ModulationType );
-                    MenuSetPage( PAGE_PER );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    EepromLoadSettings( PACKET_TYPE_RANGING );
-                    if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                    {
-                        MenuSetPage( PAGE_RANGING_MASTER );
-                    }
-                    else
-                    {
-                        MenuSetPage( PAGE_RANGING_SLAVE );
-                    }
-                }
-                else if( graphObjectTouched == BTN5_BORDER )
-                {
-                    EepromLoadSettings( ( RadioPacketTypes_t )Eeprom.EepromData.DemoSettings.ModulationType );
-                    MenuSetPage( PAGE_RADIO_TEST );
-                }    
-                else if( graphObjectTouched == BTN6_BORDER )
-                {
-                    EepromLoadSettings( ( RadioPacketTypes_t )Eeprom.EepromData.DemoSettings.ModulationType );
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    MenuSetPage( PAGE_UTILITIES );
-                }
-                break;
-
-            case PAGE_PING_PONG:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                    {
-                        Eeprom.EepromData.DemoSettings.Entity = SLAVE;
-                        ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                        DrawText( LINE3_COL0_TEXT, NULL, NULL, ( uint8_t* )" " );
-                        DrawText( LINE4_COL0_TEXT, NULL, NULL, ( uint8_t* )" " );
-                        DrawText( LINE5_COL0_TEXT, NULL, NULL, ( uint8_t* )" " );
-                        DrawText( LINE6_COL0_TEXT, NULL, NULL, ( uint8_t* )" " );
-                        DrawText( LINE7_COL0_TEXT, NULL, NULL, ( uint8_t* )" " );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.Entity = MASTER;
-                        ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                        DrawText( LINE3_COL0_TEXT, NULL, NULL, ( uint8_t* )"MASTER" );
-                    }
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( PAGE_PING_PONG );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                        Eeprom.EepromData.DemoSettings.CntPacketTx          = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxOK        = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave   = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxKO        = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxKOSlave   = 0;
-                        Eeprom.EepromData.DemoSettings.RxTimeOutCount       = 0;
-                        StopDemoApplication( );
-                        RunDemoApplicationPingPong( );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                        StopDemoApplication( );
-                        wait_ms( 200 ); // debouncing of the touch screen
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    StopDemoApplication( );
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_PING_PONG;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( refresh == true )
-                {
-                    MenuSetPage( PAGE_PING_PONG );
-                }
-                break;
-
-            case PAGE_PER:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                    {
-                        Eeprom.EepromData.DemoSettings.Entity = SLAVE;
-                        ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                        DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Rx OK", NULL, NULL );
-                        DrawText( LINE5_COL0_TEXT, ( uint8_t* )"Rx KO", NULL, NULL );
-                        DrawText( LINE6_COL0_TEXT, ( uint8_t* )"PER",   NULL, NULL );
-                        DrawText( LINE8_COL0_TEXT, ( uint8_t* )"Last Rssi", NULL, NULL );
-                        DrawText( LINE9_COL0_TEXT, ( uint8_t* )"Last SNR", NULL, NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.Entity = MASTER;
-                        ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                        DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Transmitted", ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                        DrawText( LINE5_COL0_TEXT, ( uint8_t* )" ", ( uint8_t* )" ", NULL );
-                        DrawText( LINE6_COL0_TEXT, ( uint8_t* )" ", ( uint8_t* )" ", NULL );
-                        DrawText( LINE8_COL0_TEXT, ( uint8_t* )" ", ( uint8_t* )" ", NULL );
-                        DrawText( LINE9_COL0_TEXT, ( uint8_t* )" ", ( uint8_t* )" ", NULL );
-                    }
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( PAGE_PER );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                        StopDemoApplication( );
-                        Eeprom.EepromData.DemoSettings.CntPacketTx          = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxOK        = 0;
-                        Eeprom.EepromData.DemoSettings.CntPacketRxKO        = 0;
-                        Eeprom.EepromData.DemoSettings.RxTimeOutCount       = 0;
-                        RunDemoApplicationPer( );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                        StopDemoApplication( );
-                        wait_ms( 200 ); // debouncing of the touch screen
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    StopDemoApplication( );
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_PER;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( refresh == true )
-                {
-                    MenuSetPage( PAGE_PER );
-                }
-                break;
-
-            case PAGE_RANGING_MASTER:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Entity = SLAVE;
-                    ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    StopDemoApplication( );
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( PAGE_RANGING_SLAVE );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"  PROCESS..", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"  REFRESH", NULL );
-                        StopDemoApplication( );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "SETTINGS" button can occure without "START"/"STOP" button
-                    // also "SETTINGS" should stop the demo
-                    StopDemoApplication( );
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_RANGING_MASTER;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == RNG_MST_SCR )
-                {
-                    // screen touched .. launch new measure
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"  PROCESS..", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"  REFRESH", NULL );
-                        StopDemoApplication( );
-                    }
-                }
-                else if( refresh == true )
-                {
-                    MenuSetPage( PAGE_RANGING_MASTER );
-                }
-                break;
-
-            case PAGE_RANGING_SLAVE:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Entity = MASTER;
-                    ButtonChangeText( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    StopDemoApplication( );
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( PAGE_RANGING_MASTER );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                        StopDemoApplication( );
-                        RunDemoApplicationRanging( );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                        StopDemoApplication( );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "SETTINGS" button can occure without "START"/"STOP" button
-                    // also "SETTINGS" should stop the demo
-                    StopDemoApplication( );
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_RANGING_SLAVE;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( refresh == true )
-                {
-                    MenuSetPage( PAGE_RANGING_SLAVE );
-                }
-                break;
-
-            case PAGE_RADIO_PARAM:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA )
-                    {
-                        Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_FLRC;
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-                    {
-                        Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_GFSK;
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_GFSK )
-                    {
-                        if( PreviousPage == START_PAGE )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_RANGING;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_LORA;
-                        }
-                    }
-                    else    // PACKET_TYPE_RANGING
-                    {
-                        if( PreviousPage == START_PAGE )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationType = PACKET_TYPE_LORA;
-                        }
-                    }
-                    EepromLoadSettings( ( RadioPacketTypes_t )Eeprom.EepromData.DemoSettings.ModulationType );
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    EepromSetRangingDefaultSettings( );
-                    EepromLoadSettings( PACKET_TYPE_RANGING );
-                    ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters1( ) );
-                    ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters2( ) );
-                    ButtonChangeText( BTN5_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters3( ) );
-                }
-                else if( graphObjectTouched == BTN1_BORDER )
-                {
-                    MenuSetPage( PAGE_RADIO_PARAM_FREQ );
-                }
-                else if( graphObjectTouched == BTN2_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.TxPower += 1;
-                    if( Eeprom.EepromData.DemoSettings.TxPower > DEMO_POWER_TX_MAX )
-                    {
-                        Eeprom.EepromData.DemoSettings.TxPower = DEMO_POWER_TX_MIN;
-                    }
-                    ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRadioTxPower( ) );
-                }
-                else if( graphObjectTouched == BTN3_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam1 < LORA_SF12 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam1 = Eeprom.EepromData.DemoSettings.ModulationParam1 + 0x10;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam1 = LORA_SF5;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam1 < LORA_SF10 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam1 = Eeprom.EepromData.DemoSettings.ModulationParam1 + 0x10;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam1 = LORA_SF5;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-                    {
-                        switch( Eeprom.EepromData.DemoSettings.ModulationParam1 )
-                        {
-                            case FLRC_BR_1_300_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_1_040_BW_1_2;
-                                break;
-
-                            case FLRC_BR_1_040_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_0_650_BW_0_6;
-                                break;
-
-                            case FLRC_BR_0_650_BW_0_6:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_0_520_BW_0_6;
-                                break;
-
-                            case FLRC_BR_0_520_BW_0_6:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_0_325_BW_0_3;
-                                break;
-
-                            case FLRC_BR_0_325_BW_0_3:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_0_260_BW_0_3;
-                                break;
-
-                            case FLRC_BR_0_260_BW_0_3:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = FLRC_BR_1_300_BW_1_2;
-                                break;
-                        }
-                    }
-                    else    // PACKET_TYPE_GFSK
-                    {
-                        switch( Eeprom.EepromData.DemoSettings.ModulationParam1 )
-                        {
-                            case GFSK_BLE_BR_2_000_BW_2_4:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_1_600_BW_2_4;
-                                break;
-
-                            case GFSK_BLE_BR_1_600_BW_2_4:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_1_000_BW_2_4;
-                                break;
-
-                            case GFSK_BLE_BR_1_000_BW_2_4:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_1_000_BW_1_2;
-                                break;
-
-                            case GFSK_BLE_BR_1_000_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_800_BW_2_4;
-                                break;
-
-                            case GFSK_BLE_BR_0_800_BW_2_4:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_800_BW_1_2;
-                                break;
-
-                            case GFSK_BLE_BR_0_800_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_500_BW_1_2;
-                                break;
-
-                            case GFSK_BLE_BR_0_500_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_500_BW_0_6;
-                                break;
-
-                            case GFSK_BLE_BR_0_500_BW_0_6:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_400_BW_1_2;
-                                break;
-
-                            case GFSK_BLE_BR_0_400_BW_1_2:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_400_BW_0_6;
-                                break;
-
-                            case GFSK_BLE_BR_0_400_BW_0_6:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_250_BW_0_6;
-                                break;
-
-                            case GFSK_BLE_BR_0_250_BW_0_6:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_250_BW_0_3;
-                                break;
-
-                            case GFSK_BLE_BR_0_250_BW_0_3:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_0_125_BW_0_3;
-                                break;
-
-                            case GFSK_BLE_BR_0_125_BW_0_3:
-                                Eeprom.EepromData.DemoSettings.ModulationParam1 = GFSK_BLE_BR_2_000_BW_2_4;
-                                break;
-                        }
-                    }
-                    ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters1( ) );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA )
-                    {
-                        switch( Eeprom.EepromData.DemoSettings.ModulationParam2 )
-                        {
-                            case LORA_BW_0200:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_0400;
-                                break;
-
-                            case LORA_BW_0400:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_0800;
-                                break;
-
-                            case LORA_BW_0800:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_1600;
-                                break;
+        InProgress =    true;
 
-                            case LORA_BW_1600:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_0200;
-                                break;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                    {
-                        switch( Eeprom.EepromData.DemoSettings.ModulationParam2 )
-                        {
-                            case LORA_BW_0400:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_0800;
-                                break;
-
-                            case LORA_BW_0800:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_1600;
-                                break;
-
-                            case LORA_BW_1600:
-                                Eeprom.EepromData.DemoSettings.ModulationParam2 = LORA_BW_0400;
-                                break;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam2 < FLRC_CR_1_0 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam2 = Eeprom.EepromData.DemoSettings.ModulationParam2 + 2;;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam2 = FLRC_CR_1_2;
-                        }
-                    }
-                    else    // PACKET_TYPE_GFSK
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam2 < GFSK_BLE_MOD_IND_4_00 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam2++;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam2 = GFSK_BLE_MOD_IND_0_35;
-                        }
-                    }
-                    ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters2( ) );
-                }
-                else if( graphObjectTouched == BTN5_BORDER )
-                {
-                    if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA ) || \
-                        ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING ) )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam3 < LORA_CR_LI_4_7 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam3++;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam3 = LORA_CR_4_5;
-                        }
-                    }
-                    else // PACKET_TYPE_GFSK and PACKET_TYPE_FLRC
-                    {
-                        if( Eeprom.EepromData.DemoSettings.ModulationParam3 < RADIO_MOD_SHAPING_BT_0_5 )
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam3 = Eeprom.EepromData.DemoSettings.ModulationParam3 + 0x10;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.ModulationParam3 = RADIO_MOD_SHAPING_BT_OFF;
-                        }
-                    }
-                    ButtonChangeText( BTN5_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters3( ) );
-                }
-                else if( graphObjectTouched == BTN6_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.PacketParam3 < 32 )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam3++;
-                        }
-                        else if( Eeprom.EepromData.DemoSettings.PacketParam3 <= ( DEMO_GFS_LORA_MAX_PAYLOAD - 8 ) )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam3 += 8;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam3 = DEMO_MIN_PAYLOAD;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.PacketParam5 < 32 )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5++;
-                        }
-                        else if( Eeprom.EepromData.DemoSettings.PacketParam5 <= ( DEMO_FLRC_MAX_PAYLOAD - 8 ) )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5 += 8;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5 = DEMO_MIN_PAYLOAD;
-                        }
-                    }
-                    else if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_GFSK )
-                    {
-                        if( Eeprom.EepromData.DemoSettings.PacketParam5 < 32 )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5++;
-                        }
-                        else if( Eeprom.EepromData.DemoSettings.PacketParam5 <= ( DEMO_GFS_LORA_MAX_PAYLOAD - 8 ) )
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5 += 8;
-                        }
-                        else
-                        {
-                            Eeprom.EepromData.DemoSettings.PacketParam5 = DEMO_MIN_PAYLOAD;
-                        }
-                    }
-                    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                    {
-                        MenuSetPage( PAGE_RANGING_PARAM );
-                    }
-                    else
-                    {
-                        ButtonChangeText( BTN6_BORDER, NULL, ( uint8_t* )GetRadioPayloadLength( ) );
-                    }
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    uint8_t modTmp = Eeprom.EepromData.DemoSettings.ModulationType;
-
-                    EepromMcuReadBuffer( 0, Eeprom.Buffer, EEPROM_BUFFER_SIZE );
-                    EepromLoadGeneralSettings( );
-                    EepromLoadSettings( ( RadioPacketTypes_t )modTmp );
-                    MenuSetPage( PreviousPage );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    switch( Eeprom.EepromData.DemoSettings.ModulationType )
-                    {
-                        case PACKET_TYPE_RANGING:
-                            EepromSaveSettings( RADIO_RANGING_PARAMS );
-                            break;
-
-                        case PACKET_TYPE_LORA:
-                            EepromSaveSettings( RADIO_LORA_PARAMS );
-                            break;
-
-                        case PACKET_TYPE_FLRC:
-                            EepromSaveSettings( RADIO_FLRC_PARAMS );
-                            break;
-
-                        case PACKET_TYPE_GFSK:
-                            EepromSaveSettings( RADIO_GFSK_PARAMS );
-                            break;
-                    }
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( PreviousPage );
-                }
-                break;
-
-            case PAGE_RANGING_PARAM:
-                if( graphObjectTouched == BTN1_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.RngRequestCount += 5;
-                    if( Eeprom.EepromData.DemoSettings.RngRequestCount >= DEMO_RNG_CHANNELS_COUNT_MAX )
-                    {
-                        Eeprom.EepromData.DemoSettings.RngRequestCount = DEMO_RNG_CHANNELS_COUNT_MIN;
-                    }
-                    ButtonChangeText( BTN1_BORDER, NULL, ( uint8_t* )GetRangingRequestCount( ) );
-                }
-                else if( graphObjectTouched == BTN2_BORDER )
-                {
-                    switch( Eeprom.EepromData.DemoSettings.RngAddress )
-                    {
-                        case DEMO_RNG_ADDR_1:
-                            Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_2;
-                            break;
-
-                        case DEMO_RNG_ADDR_2:
-                            Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_3;
-                            break;
-
-                        case DEMO_RNG_ADDR_3:
-                            Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_4;
-                            break;
-
-                        case DEMO_RNG_ADDR_4:
-                            Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_5;
-                            break;
-
-                        case DEMO_RNG_ADDR_5:
-                            Eeprom.EepromData.DemoSettings.RngAddress = DEMO_RNG_ADDR_1;
-                            break;
-                    }
-                    ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRangingAddress( ) );
-                }
-                else if( graphObjectTouched == BTN3_BORDER )
-                {
-                    switch( Eeprom.EepromData.DemoSettings.RngAntenna )
-                    {
-                        case DEMO_RNG_ANT_1:
-                            Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_0;
-                            break;
-
-                        case DEMO_RNG_ANT_0:
-                            Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_BOTH;
-                            break;
-
-                        case DEMO_RNG_ANT_BOTH:
-                            Eeprom.EepromData.DemoSettings.RngAntenna = DEMO_RNG_ANT_1;
-                            break;
-                    }
-                    ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRangingAntenna( ) );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.RngUnit++;
-                    if( Eeprom.EepromData.DemoSettings.RngUnit > DEMO_RNG_UNIT_SEL_MI )
-                    {
-                        Eeprom.EepromData.DemoSettings.RngUnit = DEMO_RNG_UNIT_SEL_M;
-                    }
-                    ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRangingUnit( ) );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    EepromMcuReadBuffer( 0, Eeprom.Buffer, EEPROM_BUFFER_SIZE );
-                    EepromLoadGeneralSettings( );
-                    EepromLoadSettings( PACKET_TYPE_RANGING );
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    EepromSaveSettings( RADIO_RANGING_PARAMS );
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
-
-            case PAGE_RADIO_PARAM_FREQ:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Frequency -= CurrentFreqBase;
-                    if( Eeprom.EepromData.DemoSettings.Frequency < DEMO_CENTRAL_FREQ_MIN )
-                    {
-                        Eeprom.EepromData.DemoSettings.Frequency = DEMO_CENTRAL_FREQ_MIN;
-                    }
-                    ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRadioFrequency( ) );
-                }
-                else if( graphObjectTouched == BTN1_BORDER )
-                {
-                    switch( CurrentFreqBase )
-                    {
-                        case FB1:
-                            CurrentFreqBase = FB10;
-                            break;
-
-                        case FB10:
-                            CurrentFreqBase = FB100;
-                            break;
-
-                        case FB100:
-                            CurrentFreqBase = FB1K;
-                            break;
-
-                        case FB1K:
-                            CurrentFreqBase = FB10K;
-                            break;
-
-                        case FB10K:
-                            CurrentFreqBase = FB100K;
-                            break;
-
-                        case FB100K:
-                            CurrentFreqBase = FB1M;
-                            break;
-
-                        case FB1M:
-                            CurrentFreqBase = FB10M;
-                            break;
-
-                        case FB10M:
-                            CurrentFreqBase = FB1;
-                            break;
-                    }
-                    ButtonChangeText( BTN1_BORDER, NULL, ( uint8_t* )GetRadioFreqBase( ) );
-                }
-                else if( graphObjectTouched == BTN3_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Frequency = DEMO_CENTRAL_FREQ_PRESET1;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Frequency = DEMO_CENTRAL_FREQ_PRESET2;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN5_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Frequency = DEMO_CENTRAL_FREQ_PRESET3;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    memcpy( &( Eeprom.EepromData.DemoSettings.Frequency ), Eeprom.Buffer + APP_FREQ_EEPROM_ADDR, 4 );
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.Frequency += CurrentFreqBase;
-                    if( Eeprom.EepromData.DemoSettings.Frequency > DEMO_CENTRAL_FREQ_MAX )
-                    {
-                        Eeprom.EepromData.DemoSettings.Frequency = DEMO_CENTRAL_FREQ_MAX;
-                    }
-                    ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRadioFrequency( ) );
-                }
-                break;
-
-            case PAGE_UTILITIES:
-                if( graphObjectTouched == BTN0_BORDER )
-                {
-                    FactoryReset( );
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.RadioPowerMode == USE_LDO )
-                    {
-                        Eeprom.EepromData.DemoSettings.RadioPowerMode = USE_DCDC;
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.RadioPowerMode = USE_LDO;
-                    }
-                    ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetMenuDemoRadioPowerMode( ) );
-                }
-                else if( graphObjectTouched == BTN5_BORDER )
-                {
-                    switch( Eeprom.EepromData.DemoSettings.MaxNumPacket )
-                    {
-                        case 0:
-                            Eeprom.EepromData.DemoSettings.MaxNumPacket = 100;
-                            break;
-
-                        case 100:
-                            Eeprom.EepromData.DemoSettings.MaxNumPacket = 200;
-                            break;
-
-                        case 200:
-                            Eeprom.EepromData.DemoSettings.MaxNumPacket = 500;
-                            break;
-
-                        case 500:
-                            Eeprom.EepromData.DemoSettings.MaxNumPacket = 1000;
-                            break;
-
-                        case 1000:
-                            Eeprom.EepromData.DemoSettings.MaxNumPacket = 0;
-                            break;
-                    }
-                    ButtonChangeText( BTN5_BORDER, NULL, ( uint8_t* )GetMenuDemoMaxNumPacket( ) );
-                }
-                else if( graphObjectTouched == BTN6_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.AntennaSwitch == 0 )
-                    {
-                        Eeprom.EepromData.DemoSettings.AntennaSwitch = 1;
-                        ButtonChangeText( BTN6_BORDER, NULL, ( uint8_t* )"ANT0" );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.AntennaSwitch = 0;
-                        ButtonChangeText( BTN6_BORDER, NULL, ( uint8_t* )"ANT1" );
-                    }
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    uint8_t modTmp = Eeprom.EepromData.DemoSettings.ModulationType;
-
-                    EepromMcuReadBuffer( 0, Eeprom.Buffer, EEPROM_BUFFER_SIZE );
-                    EepromLoadGeneralSettings( );
-                    EepromLoadSettings( ( RadioPacketTypes_t )modTmp );
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    EepromSaveSettings( DEMO_SETTINGS );
-                    MenuSetPage( START_PAGE );
-                }
-                else if( refresh == true )
-                {
-                    MenuSetPage( PAGE_UTILITIES );
-                }
-                break;
-
-            case PAGE_RADIO_TEST:
-                if( graphObjectTouched == BTN1_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( PAGE_SLEEP_MODE );
-                }
-                else if( graphObjectTouched == BTN2_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( PAGE_STBY_RC_MODE );
-                }
-                else if( graphObjectTouched == BTN3_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( PAGE_STBY_XOSC_MODE );
-                }
-                else if( graphObjectTouched == BTN4_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( PAGE_TX_CW );
-                }
-                else if( graphObjectTouched == BTN5_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( PAGE_CONT_MODULATION );
-                }
-                else if( graphObjectTouched == BTN7_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    MenuSetPage( START_PAGE );
-                }
-                break;
-
-            case PAGE_SLEEP_MODE:
-                if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                        RunDemoSleepMode( );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                        MenuSetPage( PAGE_SLEEP_MODE );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_SLEEP_MODE;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
-
-            case PAGE_STBY_RC_MODE:
-                if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        StopDemoApplication( );
-                        RunDemoStandbyRcMode( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_STBY_RC_MODE;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
-
-            case PAGE_STBY_XOSC_MODE:
-                if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        StopDemoApplication( );
-                        RunDemoStandbyXoscMode( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_STBY_XOSC_MODE;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
-
-            case PAGE_TX_CW:
-                if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        StopDemoApplication( );
-                        RunDemoTxCw( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_TX_CW;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
+        GraphObjectTouched  (MenuObjects,
+                            GRAPH_OBJECTS_COUNT,
+                            &graphObjectTouched);
 
-            case PAGE_CONT_MODULATION:
-                if( graphObjectTouched == BTN7_BORDER )
-                {
-                    StopDemoApplication( );
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    PreviousPage = START_PAGE; // clear Previous page
-                    MenuSetPage( START_PAGE );
-                }
-                else if( graphObjectTouched == BTN8_BORDER )
-                {
-                    if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = false;
-                        StopDemoApplication( );
-                        RunDemoTxContinuousModulation( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"    STOP", NULL );
-                    }
-                    else
-                    {
-                        Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                        StopDemoApplication( );
-                        ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                    }
-                }
-                else if( graphObjectTouched == BTN9_BORDER )
-                {
-                    Eeprom.EepromData.DemoSettings.HoldDemo = true;
-                    // "CANCEL" or "OK & SAVE" button of PAGE_RADIO_PARAM use
-                    // PreviousPage to set next page. Speed up the navigation.
-                    PreviousPage = PAGE_CONT_MODULATION;
-                    MenuSetPage( PAGE_RADIO_PARAM );
-                }
-                break;
-        }
-    }
-    return CurrentPage;
-}
-*/
-
-/*
-void MenuSetPage( uint8_t page )
-{
-    if( page != CurrentPage )
-    {
-        // remove all button and text (except title, page border and line)
-        // and disable all button (touchActive = false).
-        GraphObject_t clearRect = { NULL, GO_RECTANGLE, 3, 35, 282, 230, 1, \
-                                    BACK_COLOR, BACK_COLOR, true, BACK_COLOR, \
-                                    NULL, false };
-
-        GraphObjectClear( &clearRect, true );
-        for( uint8_t i = 0; i < GRAPH_OBJECTS_COUNT; i++ )
-        {
-            MenuObjects[i].TouchActive = false;
-        }
-    }
-
-    switch( page )
-    {
-        case START_PAGE:
-            DrawText( TITLE_TEXT, ( uint8_t* )"      SX1280 Demo Kit", NULL, NULL );
-            DisplayDriverDrawLogo( SemtechLogo, 20, 37 );
-            DrawActiveButton( BTN2_BORDER, ( uint8_t* )"DEMO Ping Pong", NULL );
-            DrawActiveButton( BTN3_BORDER, ( uint8_t* )"DEMO PER FHSS", NULL );
-            DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Outdoor ranging demo", NULL );
-            DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Radio Test Modes", NULL );
-            DrawActiveButton( BTN6_BORDER, ( uint8_t* )"Radio Settings", NULL );
-            DrawActiveButton( BTN7_BORDER, ( uint8_t* )"Utilities", NULL );
-            CurrentPage = START_PAGE;
-            break;
-
-        case PAGE_PING_PONG:
-            if( CurrentPage == PAGE_PING_PONG )
-            {
-                if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                }
-                if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                {
-                    DrawText( LINE4_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxOkSlave( ), ( uint8_t* )GetMenuDemoRxOk( ) );
-                    DrawText( LINE5_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxKoSlave( ), ( uint8_t* )GetMenuDemoRxKo( ) );
-                    DrawText( LINE6_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoResultPerCent1( Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave, Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave + Eeprom.EepromData.DemoSettings.CntPacketRxKOSlave ), \
-                              ( uint8_t* )GetMenuDemoResultPerCent2( Eeprom.EepromData.DemoSettings.CntPacketRxOK, Eeprom.EepromData.DemoSettings.CntPacketRxOK + Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount ) );
-                    DrawText( LINE7_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoResultPerCent1( Eeprom.EepromData.DemoSettings.CntPacketRxKOSlave, Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave + Eeprom.EepromData.DemoSettings.CntPacketRxKOSlave ), \
-                              ( uint8_t* )GetMenuDemoResultPerCent2( Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount, Eeprom.EepromData.DemoSettings.CntPacketRxOK + Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount ) );
-                    DrawText( LINE8_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRssi( ), NULL );
-                    DrawText( LINE9_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoSnr( ), NULL );
-                }
-                else
-                {
-                    DrawText( LINE4_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxOk( ), NULL );
-                    DrawText( LINE5_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxKo( ), NULL );
-                    DrawText( LINE6_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoResultPerCent1( Eeprom.EepromData.DemoSettings.CntPacketRxOK, Eeprom.EepromData.DemoSettings.CntPacketRxOK + Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount ), NULL );
-                    DrawText( LINE7_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoResultPerCent1( Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount, Eeprom.EepromData.DemoSettings.CntPacketRxOK + Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount ), NULL );
-                    DrawText( LINE8_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRssi( ), NULL );
-                    DrawText( LINE9_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoSnr( ), NULL );
-                }
-            }
-            else
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"      PING PONG Demo", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_PING_PONG );
-                DrawText( LINE3_COL0_TEXT, ( uint8_t* )GetTotalPackets( ), ( uint8_t* )" SLAVE", NULL );
-                DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Rx OK", ( uint8_t* )"     0", NULL );
-                DrawText( LINE5_COL0_TEXT, ( uint8_t* )"Rx KO", ( uint8_t* )"     0", NULL );
-                DrawText( LINE6_COL0_TEXT, ( uint8_t* )"Rx PSR", ( uint8_t* )"  0.00", NULL );
-                DrawText( LINE7_COL0_TEXT, ( uint8_t* )"Rx PER", ( uint8_t* )"  0.00", NULL );
-                DrawText( LINE8_COL0_TEXT, ( uint8_t* )"Last Rssi", ( uint8_t* )"     0", NULL );
-                DrawText( LINE9_COL0_TEXT, ( uint8_t* )"Last SNR", ( uint8_t* )"     0", NULL );
-                if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                    DrawText( LINE3_COL0_TEXT, NULL, NULL, ( uint8_t* )"MASTER" );
-                    DrawText( LINE4_COL0_TEXT, NULL, NULL, ( uint8_t* )"     0" );
-                    DrawText( LINE5_COL0_TEXT, NULL, NULL, ( uint8_t* )"     0" );
-                    DrawText( LINE6_COL0_TEXT, NULL, NULL, ( uint8_t* )"  0.00" );
-                    DrawText( LINE7_COL0_TEXT, NULL, NULL, ( uint8_t* )"  0.00" );
-                }
-                else
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                }
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-            }
-            CurrentPage = PAGE_PING_PONG;
-            break;
-
-        case PAGE_PER:
-            if( CurrentPage == PAGE_PER )
-            {
-                if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                }
-                if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                {
-                    DrawText( LINE4_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                }
-                else
-                {
-                    DrawText( LINE4_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxOk( ), NULL );
-                    DrawText( LINE5_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRxKo( ), NULL );
-                    DrawText( LINE6_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoResultPerCent1( Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount, Eeprom.EepromData.DemoSettings.CntPacketRxOK + Eeprom.EepromData.DemoSettings.CntPacketRxKO + Eeprom.EepromData.DemoSettings.RxTimeOutCount ), NULL );
-                    DrawText( LINE8_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoRssi( ), NULL );
-                    DrawText( LINE9_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoSnr( ), NULL );
-                }
-            }
-            else
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"     PER Demo FHSS", NULL, NULL );
-                DrawText( LINE3_COL0_TEXT, ( uint8_t* )"Test Total", ( uint8_t* )GetMenuDemoMaxNumPacket( ), NULL );
-                DisplayCurrentRadioParams( PAGE_PER );
-                if( Eeprom.EepromData.DemoSettings.Entity == MASTER )
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                    DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Transmitted", ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                }
-                else
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                    DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Rx OK", ( uint8_t* )"     0", NULL );
-                    DrawText( LINE5_COL0_TEXT, ( uint8_t* )"Rx KO", ( uint8_t* )"     0", NULL );
-                    DrawText( LINE6_COL0_TEXT, ( uint8_t* )"PER",   ( uint8_t* )"  0.00", NULL );
-                    DrawText( LINE8_COL0_TEXT, ( uint8_t* )"Last Rssi", ( uint8_t* )"     0", NULL );
-                    DrawText( LINE9_COL0_TEXT, ( uint8_t* )"Last SNR", ( uint8_t* )"     0", NULL );
-                }
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-            }
-            CurrentPage = PAGE_PER;
-            break;
-
-        case PAGE_RANGING_MASTER:
-            if( CurrentPage == PAGE_RANGING_MASTER )
-            {
-                if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"  REFRESH", NULL );
-                }
-                // Clear actual distance token
-                GraphObjectClear( &( MenuObjects[RNG_DIST_CIRCLE] ), true );
-                // update scale of circles
-                for( uint8_t i = SCALE_LINE_COUNT; i > 0; i-- )
-                {
-                    sprintf( StringText, "%d", i * ( Eeprom.EepromData.DemoSettings.RngFullScale / SCALE_LINE_COUNT ) );
-                    DrawText( RNG_DS1_TEXT + i - 1, ( uint8_t* )" ", NULL, NULL );
-                    DrawText( RNG_DS1_TEXT + i - 1, ( uint8_t* )StringText, NULL, NULL );
-                }
-                uint16_t DistPixel;
-                // Compute position (pixel) of token
-                // distance line high is 160px : it's the reference for distance graphical objects (represent full scale)
-                DistPixel = ( uint16_t )( Eeprom.EepromData.DemoSettings.RngDistance * 160.0 / Eeprom.EepromData.DemoSettings.RngFullScale );
-                MenuObjects[RNG_DIST_CIRCLE].FrontColor = WHITE;
-                // Need to change full scale ? yes if dist > fullscale or if dist < fullscale / SCALE_LINE_COUNT
-                // fullscale will be updated next time
-                if( DistPixel > 160 )
-                {
-                    DistPixel = 160;
-                    MenuObjects[RNG_DIST_CIRCLE].FrontColor = OBJECT_ERROR;
-                    Eeprom.EepromData.DemoSettings.RngFullScale = ( uint16_t )ceil( 1.2 * ( Eeprom.EepromData.DemoSettings.RngDistance / SCALE_LINE_COUNT ) ) * SCALE_LINE_COUNT;
-                    if( Eeprom.EepromData.DemoSettings.RngFullScale > RANGING_FULLSCALE_MAX )
-                    {
-                        Eeprom.EepromData.DemoSettings.RngFullScale = RANGING_FULLSCALE_MAX;
-                    }
-                }
-                else if( DistPixel < ( 160 / SCALE_LINE_COUNT ) )
-                {
-                    Eeprom.EepromData.DemoSettings.RngFullScale = ( uint16_t )ceil( 1.2 * ( Eeprom.EepromData.DemoSettings.RngDistance / SCALE_LINE_COUNT ) ) * SCALE_LINE_COUNT;
-                    if( Eeprom.EepromData.DemoSettings.RngFullScale < RANGING_FULLSCALE_MIN )
-                    {
-                        Eeprom.EepromData.DemoSettings.RngFullScale = RANGING_FULLSCALE_MIN;
-                    }
-                }
-                // Check timeout error
-                if( Eeprom.EepromData.DemoSettings.RngStatus != RNG_VALID )
-                {
-                    MenuObjects[RNG_DIST_CIRCLE].FrontColor = OBJECT_ERROR;
-                }
-                switch( Eeprom.EepromData.DemoSettings.RngUnit )
-                {
-                    case DEMO_RNG_UNIT_SEL_M:
-                        // Print distance on the top with decimal under 1000
-                        if( Eeprom.EepromData.DemoSettings.RngDistance >= 1000.0 )
-                        {
-                            sprintf( StringText, "Range: %5d m", ( uint16_t )Eeprom.EepromData.DemoSettings.RngDistance );
-                            sprintf( StringText2, "%6d", ( uint16_t )Eeprom.EepromData.DemoSettings.RngRawDistance );
-                        }
-                        else
-                        {
-                            sprintf( StringText, "Range: %5.1f m", Eeprom.EepromData.DemoSettings.RngDistance );
-                            sprintf( StringText2, "%6.1f", Eeprom.EepromData.DemoSettings.RngRawDistance );
-                        }
-                        break;
-
-                    case DEMO_RNG_UNIT_SEL_YD:
-                        // Print distance on the top with decimal under 1000
-                        if( Eeprom.EepromData.DemoSettings.RngDistance >= 1000.0 )
-                        {
-                            sprintf( StringText, "Range: %5d yd", ( uint16_t )Eeprom.EepromData.DemoSettings.RngDistance );
-                            sprintf( StringText2, "%6d", ( uint16_t )Eeprom.EepromData.DemoSettings.RngRawDistance );
-                        }
-                        else
-                        {
-                            sprintf( StringText, "Range: %5.1f yd", Eeprom.EepromData.DemoSettings.RngDistance );
-                            sprintf( StringText2, "%6.1f", Eeprom.EepromData.DemoSettings.RngRawDistance );
-                        }
-                        break;
-
-                    case DEMO_RNG_UNIT_SEL_MI:
-                        sprintf( StringText, "Range: %5.2f mi", Eeprom.EepromData.DemoSettings.RngDistance );
-                        sprintf( StringText2, "%6.1f", Eeprom.EepromData.DemoSettings.RngRawDistance );
-                        break;
-                }
-                DrawText( RNG_DIST_TEXT, ( uint8_t* )StringText, NULL, NULL );
-                DrawText( LINE5_COL0_TEXT, NULL, ( uint8_t* )StringText2, NULL );
-                DrawText( LINE6_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                DrawText( LINE7_COL0_TEXT, NULL, ( uint8_t* )GetFrequencyError( ), NULL );
-                DrawText( LINE8_COL0_TEXT, NULL, ( uint8_t* )GetRngChannelsOk( ), NULL );
-                sprintf( StringText, "%6d", Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave );
-                DrawText( LINE9_COL0_TEXT, NULL, ( uint8_t* )StringText, NULL );
-
-                // Draw token at its new position. 270 is the absolute px position (y) of distance 0
-                MenuObjects[RNG_DIST_CIRCLE].Ypos = 270 - DistPixel;
-                GraphObjectDraw( &( MenuObjects[RNG_DIST_CIRCLE] ), NULL, true, false );
+        TouchedXYT (&x, &y, &touched);
+        if  (
+                (touched != Touched_Prec) ||
+                (x != x_Prec) ||
+                (y != y_Prec) ||
+                (i32_Pulses !=  Pulses_Prec)
+    //            (Stabilus322699.getPulses() != Pulses_Prec)
+            ) {
+            sprintf (StringText,
+                    "Screen Touched: %d %d", touched, i32_Pulses);
+            DrawText    (TITLE_TEXT, (uint8_t*)StringText, NULL , NULL);
+    
+            if  (touched == true) {
+                sprintf (StringText,
+                        "x: %d", x);
+                DrawActiveButton    (BTN2_BORDER, (uint8_t*)StringText, NULL);
+            
+                sprintf (StringText,
+        //                "Y: %d %f", y, adc_vref.read());
+                        "Y: %d", y);
+                DrawActiveButton    (BTN3_BORDER, (uint8_t*)StringText, NULL);
             }
-            else
-            {  
-                GraphObject_t clearRect = { NULL, GO_RECTANGLE, 1, 284, 35, 238, \
-                                            1, BACK_COLOR, BACK_COLOR, true, \
-                                            BACK_COLOR, NULL, false };
-
-                DrawText( TITLE_TEXT, ( uint8_t* )"   Outdoor ranging demo", NULL, NULL );
-                DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   MASTER", NULL );
-                DisplayCurrentRadioParams( PAGE_RANGING_MASTER );
-                // Draw lines
-                GraphObjectDraw( &( MenuObjects[RNG_DS0_LINE] ), NULL, true, false );
-                for( uint8_t i = RNG_DS1_LINE; i <= RNG_DS5_LINE; i++ )
-                {
-                    GraphObjectDraw( &( MenuObjects[i] ), NULL, true, false );
-                }
-                // Draw around scale of distance
-                for( uint8_t i = SCALE_LINE_COUNT; i > 0; i-- )
-                {
-                    sprintf( StringText, "%d", i * ( Eeprom.EepromData.DemoSettings.RngFullScale / SCALE_LINE_COUNT ) );
-                    GraphObjectDraw( &( MenuObjects[RNG_DS1_LINE + i - 1] ), NULL, false, false );
-                    DrawText( RNG_DS1_TEXT + i - 1, ( uint8_t* )StringText, NULL, NULL );
-                }
-                // Clear the area for 2 downstair buttons (7 & 8)
-                // { Id, Type, Xpos, Ypos, Height, Width, LineWidth, BackColor,  \
-                     FrontColor,  DoFill, FillCol, Source,  TouchActive }
-                GraphObjectClear( &clearRect, true );
-                GraphObjectDraw( &( MenuObjects[PAGE_BORDER] ), NULL, false, false );
-                DrawText( RNG_DIST_TEXT, ( uint8_t* )"Range: -----", NULL, NULL );
-                DrawText( LINE5_COL0_TEXT, ( uint8_t* )"Raw [m]  :", ( uint8_t* )" -----", NULL );
-                DrawText( LINE6_COL0_TEXT, ( uint8_t* )"Packet   :", ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                DrawText( LINE7_COL0_TEXT, ( uint8_t* )"FEI [Hz] :", ( uint8_t* )GetFrequencyError( ), NULL );
-                DrawText( LINE8_COL0_TEXT, ( uint8_t* )"Channel  :", ( uint8_t* )GetRngChannelsOk( ), NULL );
-
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                // draw active rectangle for user touch (like "REFRESH" button)
-                GraphObjectDraw( &( MenuObjects[RNG_MST_SCR] ), NULL, false, true );
-            }
-            CurrentPage = PAGE_RANGING_MASTER;
-            break;
-
-        case PAGE_RANGING_SLAVE:
-            if( CurrentPage == PAGE_RANGING_SLAVE )
-            {
-                if( Eeprom.EepromData.DemoSettings.HoldDemo == true )
-                {
-                    ButtonChangeText( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                }
-                DrawText( LINE4_COL0_TEXT, NULL, ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                DrawText( LINE5_COL0_TEXT, NULL, ( uint8_t* )GetFrequencyError( ), NULL );
-                DrawText( LINE6_COL0_TEXT, NULL, ( uint8_t* )GetRngChannelsOk( ), NULL );
-                sprintf( StringText ,"  %s", GetRangingAntenna( ) );
-                DrawText( LINE7_COL0_TEXT, NULL, ( uint8_t* )StringText, NULL );
-            }
-            else
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"   Outdoor ranging demo", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_RANGING_SLAVE );
-                DrawText( LINE4_COL0_TEXT, ( uint8_t* )"Packet   :", ( uint8_t* )GetMenuDemoNumSentPacket( ), NULL );
-                DrawText( LINE5_COL0_TEXT, ( uint8_t* )"FEI [Hz] :", ( uint8_t* )GetFrequencyError( ), NULL );
-                DrawText( LINE6_COL0_TEXT, ( uint8_t* )"Channel  :", ( uint8_t* )GetRngChannelsOk( ), NULL );
-                sprintf( StringText ,"  %s", GetRangingAntenna( ) );
-                DrawText( LINE7_COL0_TEXT, ( uint8_t* )"Antenna :", ( uint8_t* )StringText, NULL );
-                DrawActiveButton( BTN0_BORDER, ( uint8_t* )"   SLAVE", NULL );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-            }
-            CurrentPage = PAGE_RANGING_SLAVE;
-            break;
-
-        case PAGE_RADIO_PARAM:
-            if( CurrentPage == PAGE_RADIO_PARAM )
-            {
-                if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                {
-                    if( PreviousPage == START_PAGE )
-                    {
-                        ButtonChangeText( BTN0_BORDER, NULL, ( uint8_t* )GetMenuRadioFrameType( ) );
-                    }
-                    else
-                    {
-                        RemoveButton( BTN0_BORDER );
-                    }
-                    DrawActiveButton( BTN6_BORDER, ( uint8_t* )"     RANGING SETTINGS", NULL );
-                    DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  BEST SET", NULL );
-                }
-                else
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"Mod:", ( uint8_t* )GetMenuRadioFrameType( ) );
-                    DrawActiveButton( BTN6_BORDER, ( uint8_t* )"Payload:", ( uint8_t* )GetRadioPayloadLength( ) );
-                    RemoveButton( BTN9_BORDER );
-                }
-                ButtonChangeText( BTN1_BORDER, NULL, ( uint8_t* )GetRadioFrequency( ) );
-                ButtonChangeText( BTN2_BORDER, NULL, ( uint8_t* )GetRadioTxPower( ) );
-                ButtonChangeText( BTN3_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters1( ) );
-                ButtonChangeText( BTN4_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters2( ) );
-                ButtonChangeText( BTN5_BORDER, NULL, ( uint8_t* )GetRadioModulationParameters3( ) );
-            }
-            else
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"      Radio Settings", NULL, NULL );
-                if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING )
-                {
-                    if( PreviousPage == START_PAGE )
-                    {
-                        DrawActiveButton( BTN0_BORDER, ( uint8_t* )"Mod:", ( uint8_t* )GetMenuRadioFrameType( ) );
-                    }
-                    DrawActiveButton( BTN6_BORDER, ( uint8_t* )"     RANGING SETTINGS", NULL );
-                    DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  BEST SET", NULL );
-                }
-                else
-                {
-                    DrawActiveButton( BTN0_BORDER, ( uint8_t* )"Mod:", ( uint8_t* )GetMenuRadioFrameType( ) );
-                    DrawActiveButton( BTN6_BORDER, ( uint8_t* )"Payload:", ( uint8_t* )GetRadioPayloadLength( ) );
-                }
-                DrawActiveButton( BTN1_BORDER, ( uint8_t* )"Freq:", ( uint8_t* )GetRadioFrequency( ) );
-                DrawActiveButton( BTN2_BORDER, ( uint8_t* )"Tx Pow:", ( uint8_t* )GetRadioTxPower( ) );
-                DrawActiveButton( BTN3_BORDER, ( uint8_t* )"Param 1:", ( uint8_t* )GetRadioModulationParameters1( ) );
-                DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Param 2:", ( uint8_t* )GetRadioModulationParameters2( ) );
-                DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Param 3:", ( uint8_t* )GetRadioModulationParameters3( ) );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"   CANCEL", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )" OK & SAVE", NULL );
-                CurrentPage = PAGE_RADIO_PARAM;
-            }
-            break;
-
-        case PAGE_RANGING_PARAM:
-            if( CurrentPage != PAGE_RANGING_PARAM )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"    Settings : Ranging", NULL, NULL );
-
-                DrawActiveButton( BTN1_BORDER, ( uint8_t* )"Request:", ( uint8_t* )GetRangingRequestCount( ) );
-                DrawActiveButton( BTN2_BORDER, ( uint8_t* )"Address:", ( uint8_t* )GetRangingAddress( ) );
-                DrawActiveButton( BTN3_BORDER, ( uint8_t* )"Antenna:", ( uint8_t* )GetRangingAntenna( ) );
-                DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Unit:", ( uint8_t* )GetRangingUnit( ) );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"   CANCEL", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )" OK & SAVE", NULL );
+            else {
+                DrawActiveButton    (BTN2_BORDER, (uint8_t*) "No Touch ...", NULL);
+                DrawActiveButton    (BTN3_BORDER, (uint8_t*) "No Touch ...", NULL);
             }
-            CurrentPage = PAGE_RANGING_PARAM;
-            break;
-
-        case PAGE_RADIO_PARAM_FREQ:
-            if( CurrentPage != PAGE_RADIO_PARAM_FREQ )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"   Radio Settings : Freq", NULL, NULL );
-                DrawActiveButton( BTN0_BORDER, ( uint8_t* )"     -", NULL );
-                DrawActiveButton( BTN1_BORDER, ( uint8_t* )"Step:", ( uint8_t* )GetRadioFreqBase( ) );
-                // do not draw boarder for indicate actual frequency (it is not a button)
-                ButtonChangeText( BTN2_BORDER, ( uint8_t* )"Freq:", ( uint8_t* )GetRadioFrequency( ) );
-                DrawActiveButton( BTN3_BORDER, ( uint8_t* )"Preset1:", ( uint8_t* )GetRadioFreqBasePS1( ) );
-                DrawActiveButton( BTN4_BORDER, ( uint8_t* )"Preset2:", ( uint8_t* )GetRadioFreqBasePS2( ) );
-                DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Preset3:", ( uint8_t* )GetRadioFreqBasePS3( ) );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"   CANCEL", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"     OK", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"     +", NULL );
-            }
-            CurrentPage = PAGE_RADIO_PARAM_FREQ;
-            break;
-
-        case PAGE_UTILITIES:
-            if( CurrentPage == PAGE_UTILITIES )
-            {
-                DrawText( LINE1_TEXT, ( uint8_t* )GetGpsTime( ), NULL, NULL );
-                DrawText( LINE2_TEXT, ( uint8_t* )GetGpsPos( ), NULL, NULL );
-                DrawText( LINE3_TEXT, ( uint8_t* )GetProximityValue( ), NULL, NULL );
-            }
-            else
-            {
-                char version_holder[50];
-                sprintf(&version_holder[0], "Version: %s (%s)", FIRMWARE_VERSION, FIRMWARE_DATE);
-                DrawText( TITLE_TEXT, ( uint8_t* )"         Utilities", NULL, NULL );
-                // FIRMWARE_VERSION is defined in DemoApplication.h
-                DrawText( LINE0_TEXT, ( uint8_t* )version_holder, NULL, NULL );
-                DrawText( LINE1_TEXT, ( uint8_t* )GetGpsTime( ), NULL, NULL );
-                DrawText( LINE2_TEXT, ( uint8_t* )GetGpsPos( ), NULL, NULL );
-                DrawText( LINE3_TEXT, ( uint8_t* )GetProximityValue( ), NULL, NULL );
-                DrawActiveButton( BTN0_BORDER, ( uint8_t* )"Fact. Reset", NULL );
-                DrawActiveButton( BTN4_BORDER, ( uint8_t* )"PA Mode:", ( uint8_t* )GetMenuDemoRadioPowerMode( ) );
-                DrawActiveButton( BTN5_BORDER, ( uint8_t* )"Packets:", ( uint8_t* )GetMenuDemoMaxNumPacket( ) );
-                DrawActiveButton( BTN6_BORDER, ( uint8_t* )"Antenna:", ( uint8_t* )GetAntennaSetting( ) );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"   CANCEL", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )" OK & SAVE", NULL );
-            }
-            CurrentPage = PAGE_UTILITIES;
-            break;
-
-        case PAGE_RADIO_TEST:
-            DrawText( TITLE_TEXT, ( uint8_t* )"     Radio Test Modes", NULL, NULL );
-            DrawActiveButton( BTN1_BORDER, ( uint8_t* )"        Sleep Mode", NULL );
-            DrawActiveButton( BTN2_BORDER, ( uint8_t* )"      Standby RC Mode", NULL );
-            DrawActiveButton( BTN3_BORDER, ( uint8_t* )"     Standby XOSC Mode", NULL );
-            DrawActiveButton( BTN4_BORDER, ( uint8_t* )"        Set Tx CW", NULL );
-            DrawActiveButton( BTN5_BORDER, ( uint8_t* )"    Set Cont. Modulation", NULL );
-            DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    BACK", NULL );
-            CurrentPage = PAGE_RADIO_TEST;
-            break;
-
-        case PAGE_SLEEP_MODE:
-            if( CurrentPage != PAGE_UTILITIES )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"        Sleep Mode", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_SLEEP_MODE );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                CurrentPage = PAGE_SLEEP_MODE;
-            }
-            break;
-
-        case PAGE_STBY_RC_MODE:
-            if( CurrentPage != PAGE_STBY_RC_MODE )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"     Standby RC Mode", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_STBY_RC_MODE );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                CurrentPage = PAGE_STBY_RC_MODE;
-            }
-            break;
-
-        case PAGE_STBY_XOSC_MODE:
-            if( CurrentPage != PAGE_STBY_XOSC_MODE )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"     Standby XOSC Mode", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_STBY_XOSC_MODE );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                CurrentPage = PAGE_STBY_XOSC_MODE;
-            }
-            break;
-
-        case PAGE_TX_CW:
-            if( CurrentPage != PAGE_TX_CW )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"        Set Tx CW", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_TX_CW );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                CurrentPage = PAGE_TX_CW;
-            }
-            break;
-
-        case PAGE_CONT_MODULATION:
-            if( CurrentPage != PAGE_CONT_MODULATION )
-            {
-                DrawText( TITLE_TEXT, ( uint8_t* )"   Set Cont. Modulation", NULL, NULL );
-                DisplayCurrentRadioParams( PAGE_CONT_MODULATION );
-                DrawActiveButton( BTN7_BORDER, ( uint8_t* )"    EXIT", NULL );
-                DrawActiveButton( BTN8_BORDER, ( uint8_t* )"   START", NULL );
-                DrawActiveButton( BTN9_BORDER, ( uint8_t* )"  SETTINGS", NULL );
-                CurrentPage = PAGE_CONT_MODULATION;
-            }
-            break;
-
-        default:
-            break;
-    }
-}
-*/
-
-/*
-void DisplayCurrentRadioParams( uint8_t page )
-{
-    switch( page )
-    {
-        case PAGE_SLEEP_MODE:
-        case PAGE_STBY_RC_MODE:
-        case PAGE_STBY_XOSC_MODE:
-        case PAGE_TX_CW:
-            // Do display different without packet settings (no modulation here)
-            // 2 + (9) + 4 + (7) + 2 + (4) = 28 (=<28 : ok)
-            sprintf( StringText ,"f:%s, P:%s, %s", GetRadioFrequencyGHz( ), \
-                     GetRadioTxPower( ), GetAntennaSetting( ) );
-            DrawText( LINE0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            sprintf( StringText ,"Radio Power Mode: %s", ( uint8_t* )GetMenuDemoRadioPowerMode( ) );
-            DrawText( LINE1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            sprintf( StringText ,"Press START to launch test" );
-            DrawText( LINE3_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            break;
+    
+            Touched_Prec =  touched;
+            x_Prec =    x;
+            y_Prec =    y;
+            //
+            Pulses_Prec =   i32_Pulses;
+        }
 
-        case PAGE_CONT_MODULATION:
-            // 2 + (9) + 4 + (7) + 2 + (4) = 28 (=<28 : ok)
-            sprintf( StringText ,"f:%s, P:%s, %s", GetRadioFrequencyGHz( ), \
-                     GetRadioTxPower( ), GetAntennaSetting( ) );
-            DrawText( LINE0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // (7) + 2 + (19) = 28 (=<28 : ok)
-            sprintf( StringText ,"%s: %s", GetMenuRadioFrameType( ), \
-                                           GetRadioModulationParameters1( ) );
-            DrawText( LINE1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // (3) + 2 + (10) + 2 + (8) = 25 (=<28 : ok)
-            sprintf( StringText ,"%s, %s, %s", GetRadioModulationParameters2( ), \
-                                               GetRadioModulationParameters3( ),
-                                               ( uint8_t* )GetMenuDemoRadioPowerMode( ) );
-            DrawText( LINE2_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            sprintf( StringText ,"Press START to launch test" );
-            DrawText( LINE4_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            break;
-
-        case PAGE_PING_PONG:    // standart display
-        case PAGE_PER:
-            // 2 + (9) + 4 + (7) + 2 + (4) = 28 (=<28 : ok)
-            sprintf( StringText ,"f:%s, P:%s, %s", GetRadioFrequencyGHz( ), \
-                     GetRadioTxPower( ), GetAntennaSetting( ) );
-            DrawText( LINE0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // (7) + 2 + (19) = 28 (=<28 : ok)
-            sprintf( StringText ,"%s: %s", GetMenuRadioFrameType( ), \
-                                           GetRadioModulationParameters1( ) );
-            DrawText( LINE1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // 3 + (3) + 2 + (10) + 2 + (8) = 28 (=<28 : ok)
-            sprintf( StringText ,"PL:%s, %s, %s", GetRadioPayloadLength( ), \
-                                                  GetRadioModulationParameters2( ), \
-                                                  GetRadioModulationParameters3( ) );
-            DrawText( LINE2_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            break;
-
-        case PAGE_RANGING_SLAVE:
-            // 2 + (9) + 4 + (7) = 22 (=<28 : ok)
-            sprintf( StringText ,"f:%s, P:%s", GetRadioFrequencyGHz( ), \
-                     GetRadioTxPower( ) );
-            DrawText( LINE0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // (7) + 2 + (19) = 28 (=<28 : ok)
-            sprintf( StringText ,"%s: %s", GetMenuRadioFrameType( ), \
-                                           GetRadioModulationParameters1( ) );
-            DrawText( LINE1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            // (10) + 2 + (8) = 20 (=<28 : ok)
-            sprintf( StringText ,"%s", GetRadioModulationParameters2( ) );
-            DrawText( LINE2_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            break;
-
-        case PAGE_RANGING_MASTER:
-            sprintf( StringText ,"f:%s", GetRadioFrequencyGHz( ) );
-            DrawText( LINE1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            DrawText( LINE2_COL0_TEXT, ( uint8_t* )"Antenna", ( uint8_t* )GetRangingAntenna( ), NULL );
-            sprintf( StringText ,"%s", GetRadioTxPower( ) );
-            MenuObjects[LINE3_COL1_TEXT].FrontColor = TEXT_COLOR;
-            DrawText( LINE3_COL0_TEXT, ( uint8_t* )"Tx Power", ( uint8_t* )StringText, NULL );
-            sprintf( StringText ,"%s", GetRadioModulationParameters2( ) );
-            DrawText( LINE4_COL0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            sprintf( StringText ,"%s", GetRadioModulationParameters1( ) );
-            MenuObjects[LINE4_COL1_TEXT].FrontColor = TEXT_COLOR;
-            DrawText( LINE4_COL1_TEXT, ( uint8_t* )StringText, NULL, NULL );
-            MenuObjects[LINE3_COL1_TEXT].FrontColor = TEXT_VALUE;
-            MenuObjects[LINE4_COL1_TEXT].FrontColor = TEXT_VALUE;
-            break;
-    }
-}
-*/
-
-/*
-char* GetMenuRadioFrameType( void )
-{
-    switch( Eeprom.EepromData.DemoSettings.ModulationType )
-    {
-        case PACKET_TYPE_FLRC:    return ( char* )" FLRC";
-        case PACKET_TYPE_RANGING: return ( char* )"RANGING";
-        case PACKET_TYPE_GFSK:    return ( char* )" GFSK";
-        case PACKET_TYPE_BLE:     return ( char* )"  BLE";
-        case PACKET_TYPE_LORA:
-        default:                  return ( char* )" LORA";
-    }
-}
-*/
-
-/*
-char* GetRadioModulationParameters1( void )
-{
-    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam1 )
-        {
-            case FLRC_BR_1_300_BW_1_2: return ( char* )"1.3 Mbps/BW 1.2 MHz";
-            case FLRC_BR_1_040_BW_1_2: return ( char* )"1.0 Mbps/BW 1.2 MHz";
-            case FLRC_BR_0_650_BW_0_6: return ( char* )"650 kbps/BW 600 kHz";
-            case FLRC_BR_0_520_BW_0_6: return ( char* )"520 kbps/BW 600 kHz";
-            case FLRC_BR_0_325_BW_0_3: return ( char* )"325 kbps/BW 300 kHz";
-            case FLRC_BR_0_260_BW_0_3: return ( char* )"260 kbps/BW 300 kHz";
-            default:                   return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_GFSK ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_BLE ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam1 )
-        {
-            case GFSK_BLE_BR_2_000_BW_2_4: return ( char* )"2.0 Mbps/BW 2.4 MHz";
-            case GFSK_BLE_BR_1_600_BW_2_4: return ( char* )"1.6 Mbps/BW 2.4 MHz";
-            case GFSK_BLE_BR_1_000_BW_2_4: return ( char* )"1.0 Mbps/BW 2.4 MHz";
-            case GFSK_BLE_BR_1_000_BW_1_2: return ( char* )"1.0 Mbps/BW 1.2 MHz";
-            case GFSK_BLE_BR_0_800_BW_2_4: return ( char* )"800 kbps/BW 2.4 MHz";
-            case GFSK_BLE_BR_0_800_BW_1_2: return ( char* )"800 kbps/BW 1.2 MHz";
-            case GFSK_BLE_BR_0_500_BW_1_2: return ( char* )"500 kbps/BW 1.2 MHz";
-            case GFSK_BLE_BR_0_500_BW_0_6: return ( char* )"500 kbps/BW 600 kHz";
-            case GFSK_BLE_BR_0_400_BW_1_2: return ( char* )"400 kbps/BW 1.2 MHz";
-            case GFSK_BLE_BR_0_400_BW_0_6: return ( char* )"400 kbps/BW 600 kHz";
-            case GFSK_BLE_BR_0_250_BW_0_6: return ( char* )"250 kbps/BW 600 kHz";
-            case GFSK_BLE_BR_0_250_BW_0_3: return ( char* )"250 kbps/BW 300 kHz";
-            case GFSK_BLE_BR_0_125_BW_0_3: return ( char* )"125 kbps/BW 300 kHz";
-            default:                      return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam1 )
-        {
-            case LORA_SF5:  return ( char* )"SF5";
-            case LORA_SF6:  return ( char* )"SF6";
-            case LORA_SF7:  return ( char* )"SF7";
-            case LORA_SF8:  return ( char* )"SF8";
-            case LORA_SF9:  return ( char* )"SF9";
-            case LORA_SF10: return ( char* )"SF10";
-            case LORA_SF11: return ( char* )"SF11";
-            case LORA_SF12: return ( char* )"SF12";
-            default:        return ( char* )"X";
+        if  (ms_0001 != ms_0001_prec) {
+            sprintf (StringText,
+        //            "adc_temp: %f", (adc_temp.read()* 100));
+                    "PreviousStep_ms: %d", ms_0001);
+            DrawActiveButton    (BTN4_BORDER, (uint8_t*)StringText, NULL);
+            ms_0001_prec = ms_0001;
         }
-    }
-    else
-    {
-        return ( char* )"";
-    }
-}
-*/
-
-/*
-char* GetRadioModulationParameters2( void )
-{
-    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam2 )
-        {
-            case FLRC_CR_1_2: return ( char* )"CR 1/2";
-            case FLRC_CR_3_4: return ( char* )"CR 3/4";
-            case FLRC_CR_1_0: return ( char* )"CR 1";
-            default:          return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_GFSK ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_BLE ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam2 )
-        {
-            case GFSK_BLE_MOD_IND_0_35: return ( char* )"Mod.i 0.35";
-            case GFSK_BLE_MOD_IND_0_50: return ( char* )"Mod.i 0.5";
-            case GFSK_BLE_MOD_IND_0_75: return ( char* )"Mod.i 0.75";
-            case GFSK_BLE_MOD_IND_1_00: return ( char* )"Mod.i 1";
-            case GFSK_BLE_MOD_IND_1_25: return ( char* )"Mod.i 1.25";
-            case GFSK_BLE_MOD_IND_1_50: return ( char* )"Mod.i 1.5";
-            case GFSK_BLE_MOD_IND_1_75: return ( char* )"Mod.i 1.75";
-            case GFSK_BLE_MOD_IND_2_00: return ( char* )"Mod.i 2";
-            case GFSK_BLE_MOD_IND_2_25: return ( char* )"Mod.i 2.25";
-            case GFSK_BLE_MOD_IND_2_50: return ( char* )"Mod.i 2.50";
-            case GFSK_BLE_MOD_IND_2_75: return ( char* )"Mod.i 2.75";
-            case GFSK_BLE_MOD_IND_3_00: return ( char* )"Mod.i 3";
-            case GFSK_BLE_MOD_IND_3_25: return ( char* )"Mod.i 3.25";
-            case GFSK_BLE_MOD_IND_3_50: return ( char* )"Mod.i 3.5";
-            case GFSK_BLE_MOD_IND_3_75: return ( char* )"Mod.i 3.75";
-            case GFSK_BLE_MOD_IND_4_00: return ( char* )"Mod.i 4";
-            default:                   return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam2 )
-        {
-            case LORA_BW_0200: return ( char* )"BW 200 kHz";
-            case LORA_BW_0400: return ( char* )"BW 400 kHz";
-            case LORA_BW_0800: return ( char* )"BW 800 kHz";
-            case LORA_BW_1600: return ( char* )"BW 1.6 MHz";
-            default:           return ( char* )"X"; 
+    
+        if  (ms_0002 != ms_0002_prec) {
+            sprintf (StringText,
+        //            "adc_vref: %f", (adc_vref.read()));
+                    "StepSampled_ms : %d", ms_0002);
+            DrawActiveButton    (BTN5_BORDER, (uint8_t*)StringText, NULL);
+            ms_0002_prec = ms_0002;
         }
-    }
-    else
-    {
-        return ( char* )"";
-    }
-}
-*/
-
-/*
-char* GetRadioModulationParameters3( void )
-{
-    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_FLRC )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam3 )
-        {
-            case RADIO_MOD_SHAPING_BT_OFF: return ( char* )"BT OFF";
-            case RADIO_MOD_SHAPING_BT_1_0: return ( char* )"BT 1";
-            case RADIO_MOD_SHAPING_BT_0_5: return ( char* )"BT 0.5";
-            default:                       return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_GFSK ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_BLE ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam3 )
-        {
-            case RADIO_MOD_SHAPING_BT_OFF: return ( char* )"BT OFF";
-            case RADIO_MOD_SHAPING_BT_1_0: return ( char* )"BT 1";
-            case RADIO_MOD_SHAPING_BT_0_5: return ( char* )"BT 0.5";
-            default:                       return ( char* )"X";
-        }
-    }
-    else if( ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA ) || \
-             ( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_RANGING ) )
-    {
-        switch( Eeprom.EepromData.DemoSettings.ModulationParam3 )
-        {
-            case LORA_CR_4_5:    return ( char* )"CR 4/5";
-            case LORA_CR_4_6:    return ( char* )"CR 4/6";
-            case LORA_CR_4_7:    return ( char* )"CR 4/7";
-            case LORA_CR_4_8:    return ( char* )"CR 4/8";
-            case LORA_CR_LI_4_5: return ( char* )"CRLI 4/5";
-            case LORA_CR_LI_4_6: return ( char* )"CRLI 4/6";
-            case LORA_CR_LI_4_7: return ( char* )"CRLI 4/7";
-            default:             return ( char* )"X";
+    
+        if  (ms_0003 != ms_0003_prec) {
+            sprintf (StringText,
+        //            "adc_vbat: %f", (adc_vbat.read()));
+                    "PassedActual_ms: %d", ms_0003);
+            DrawActiveButton    (BTN6_BORDER, (uint8_t*)StringText, NULL);
+            ms_0003_prec = ms_0003;
         }
-    }
-    else
-    {
-        return ( char* )"";
-    }
-}
-*/
-
-/*
-char* GetRadioFrequency( void )
-{
-    sprintf( StringText2, "%lu Hz", \
-             ( unsigned long )Eeprom.EepromData.DemoSettings.Frequency );
-    return StringText2;
-}
-
-void UpdateRadioFrequency( unsigned long freq )
-{
-    sprintf( StringText ,"f:%1d.%03d GHz, P:%s, %s", freq / 1000000000, ( freq / 1000000 ) % 1000, GetRadioTxPower( ), GetAntennaSetting( ) );
-    DrawText( LINE0_TEXT, ( uint8_t* )StringText, NULL, NULL );
-}
-
-char* GetRadioFrequencyGHz( void )
-{
-    // quicker than using a float (which is not optimized in MBED)
-    sprintf( StringText3, "%1d.%03d GHz", \
-             Eeprom.EepromData.DemoSettings.Frequency / 1000000000, \
-             ( Eeprom.EepromData.DemoSettings.Frequency / 1000000 ) % 1000 );
-    return StringText3;
-}
-
-char* GetRadioFreqBase( void )
-{
-    switch( CurrentFreqBase )
-    {
-        case FB1:    return ( char* )"1 Hz";
-        case FB10:   return ( char* )"10 Hz";
-        case FB100:  return ( char* )"100 Hz";
-        case FB1K:   return ( char* )"1 kHz";
-        case FB10K:  return ( char* )"10 kHz";
-        case FB100K: return ( char* )"100 kHz";
-        case FB1M:   return ( char* )"1 MHz";
-        case FB10M:  return ( char* )"10 MHz";
-        default:     return ( char* )"X";
-    }
-}
 
-char* GetRadioFreqBasePS1( void )
-{
-    sprintf( StringText, "%lu Hz", DEMO_CENTRAL_FREQ_PRESET1 );
-    return StringText;
-}
-
-char* GetRadioFreqBasePS2( void )
-{
-    sprintf( StringText, "%lu Hz", DEMO_CENTRAL_FREQ_PRESET2 );
-    return StringText;
-}
-
-char* GetRadioFreqBasePS3( void )
-{
-    sprintf( StringText, "%lu Hz", DEMO_CENTRAL_FREQ_PRESET3 );
-    return StringText;
-}
-
-char* GetRadioTxPower( void )
-{
-    sprintf( StringText2, "%d dBm", Eeprom.EepromData.DemoSettings.TxPower );
-    return StringText2;
-}
-
-char* GetRadioPayloadLength( void )
-{
-    if( Eeprom.EepromData.DemoSettings.ModulationType == PACKET_TYPE_LORA )
-    {
-        sprintf( StringText2, "%d", Eeprom.EepromData.DemoSettings.PacketParam3 );
-    }
-    else // PACKET_TYPE_GFSK, PACKET_TYPE_FLRC
-    {
-        sprintf( StringText2, "%d", Eeprom.EepromData.DemoSettings.PacketParam5 );
-    }
-    return StringText2;
-}
-
-char* GetMenuDemoMaxNumPacket( void )
-{
-    if( Eeprom.EepromData.DemoSettings.MaxNumPacket == 0 )
-    {
-        return ( char* )"Infinite";
-    }
-    else
-    {
-        sprintf( StringText, "%6d", Eeprom.EepromData.DemoSettings.MaxNumPacket );
-    }
-    return StringText;
-}
-
-char* GetMenuDemoNumSentPacket( void )
-{
-    sprintf( StringText2, "%6d", Eeprom.EepromData.DemoSettings.CntPacketTx );
-    return StringText2;
-}
-
-char* GetMenuDemoRxOk( void )
-{
-    sprintf( StringText2, "%6lu", \
-            ( unsigned long )( Eeprom.EepromData.DemoSettings.CntPacketRxOK ) );
-    return StringText2;
-}
-
-char* GetMenuDemoRxKo( void )
-{
-    sprintf( StringText2, "%6lu", \
-             ( unsigned long )( Eeprom.EepromData.DemoSettings.CntPacketRxKO + \
-             Eeprom.EepromData.DemoSettings.RxTimeOutCount ) ); 
-    return StringText2;
-}
-
-char* GetMenuDemoRxOkSlave( void )
-{
-    sprintf( StringText3, "%6lu", \
-       ( unsigned long )( Eeprom.EepromData.DemoSettings.CntPacketRxOKSlave ) );
-    return StringText3;
-}
-
-char* GetMenuDemoResultPerCent1( uint32_t value, uint32_t reference )
-{
-    // quicker than using a float (which is not optimized in MBED)
-    sprintf( StringText2, "%3d.%02d", \
-             ( ( value * 10000 ) / reference ) / 100, \
-             ( ( value * 10000 ) / reference ) % 100 );
-    return StringText2;
-}
-
-char* GetMenuDemoResultPerCent2( uint32_t value, uint32_t reference )
-{
-    // quicker than using a float (which is not optimized in MBED)
-    sprintf( StringText3, "%3d.%02d", \
-             ( ( value * 10000 ) / reference ) / 100, \
-             ( ( value * 10000 ) / reference ) % 100 );
-    return StringText3;
-}
-
-char* GetMenuDemoRxKoSlave( void )
-{
-    sprintf( StringText3, "%6lu", \
-       ( unsigned long )( Eeprom.EepromData.DemoSettings.CntPacketRxKOSlave ) );
-    return StringText3;
-}
-
-char* GetMenuDemoRssi( void )
-{
-    sprintf( StringText2, "%6d", Eeprom.EepromData.DemoSettings.RssiValue );
-    return StringText2;
-}
-
-char* GetMenuDemoSnr( void )
-{
-    if( Eeprom.EepromData.DemoSettings.SnrValue >= 0 )
-    {
-        sprintf( StringText2, "     /" ); 
-    }
-    else
-    {
-        sprintf( StringText2, "%6d", Eeprom.EepromData.DemoSettings.SnrValue );
-    }
-    return StringText2;
-}
-
-char* GetAntennaSetting( void )
-{
-    if( Eeprom.EepromData.DemoSettings.AntennaSwitch == 0 )
-    {
-        return ( char* )"ANT1";
-    }
-    else
-    {
-        return ( char* )"ANT0";
-    }
-}
-
-char* GetTotalPackets( void )
-{
-    if( Eeprom.EepromData.DemoSettings.MaxNumPacket == 0 )
-    {
-        return ( char* )"Total:  Inf.";
+        PBPushed = userButton;
+        if  (PBPushed != PBPushed_prec) {
+            sprintf (StringText,
+                    "PB Released: %d", PBPushed);
+            DrawActiveButton    (BTN7_BORDER, (uint8_t*)StringText, NULL);
+            PBPushed_prec = PBPushed;
+        }
+        //
+//        StabilusMainPage    (graphObjectTouched, ms_0001, ms_0002, ms_0003, i32_Pulses);
+        InProgress =    false;
     }
-    else
-    {
-        sprintf( StringText, "Total: %5lu", \
-                 ( unsigned long )( Eeprom.EepromData.DemoSettings.MaxNumPacket ) );
-        return StringText;
-    }
-}
-
-#if defined(HAS_GPS_SENSOR)
-char* GetGpsTime( void )
-{
-    thisGps = Max7GpsgetData( );
-    if( ( thisGps->Position.Fixed ) && ( thisGps->Time.Updated ) )
-    {
-        sprintf( StringText, "GPS:  %s.%s.%s %s:%s:%s", thisGps->Time.Year, \
-                                                        thisGps->Time.Month, \
-                                                        thisGps->Time.Day, \
-                                                        thisGps->Time.Hour, \
-                                                        thisGps->Time.Minute, \
-                                                        thisGps->Time.Second );
-        thisGps->Time.Updated = false;
-        return StringText;
-    }
-    else
-    {
-        return ( char* )"GPS: Satellites searching..";
-    }
-}
-
-char* GetGpsPos( void )
-{
-    thisGps = Max7GpsgetData( );
-    if( thisGps->Position.Fixed )
-    {
-        sprintf( StringText,"%s, %s", thisGps->Position.Lat, \
-                                      thisGps->Position.Long );
-        return StringText;
-    }
-    else
-    {
-        return ( char* )"Pos: Satellites searching..";
-    }
-}
-#else
-char* GetGpsTime( void )
-{
-    return ( char* )"";
-}
-
-char* GetGpsPos( void )
-{
-    return ( char* )"GPS: Not supported";
-}
-#endif
-
-#if defined(HAS_PROXIMITY_SENSOR)
-char* GetProximityValue( void )
-{
-    sprintf( StringText,"Proximity : %06d, %06d", \
-                        SX9306proximityGetReadValue( 1 ), \
-                        SX9306proximityGetReadValue( 0 ) ); // Left then right
-    return StringText;
-}
-#else
-char* GetProximityValue( void )
-{
-    return ( char * )"Proximity: Not supported";
-}
-#endif
-
-char* GetMenuDemoRadioPowerMode( void )
-{
-    if( Eeprom.EepromData.DemoSettings.RadioPowerMode == USE_LDO )
-    {
-        return ( char* )"  LDO";
-    }
-    else
-    {
-        return ( char* )"  DCDC";
-    }
-}
-
-char* GetFrequencyError( void )
-{
-    sprintf( StringText2, "%6d", ( int32_t )Eeprom.EepromData.DemoSettings.RngFei );
-    return StringText2;
-}
-
-char* GetRngChannelsOk( void )
-{
-    if( Eeprom.EepromData.DemoSettings.Entity == SLAVE )
-    {
-        Eeprom.EepromData.DemoSettings.CntPacketRxOK /= 2;
-    }
-    sprintf( StringText2, "%03d/%03d", Eeprom.EepromData.DemoSettings.CntPacketRxOK, Eeprom.EepromData.DemoSettings.RngRequestCount );
-    return StringText2;
-}
-
-char* GetRangingRequestCount( void )
-{
-    sprintf( StringText2, "%d", Eeprom.EepromData.DemoSettings.RngRequestCount );
-    return StringText2;
-}
-
-char* GetRangingAddress( void )
-{
-    sprintf( StringText2, "0x%08x", Eeprom.EepromData.DemoSettings.RngAddress );
-    return StringText2;
-}
-
-char* GetRangingAntenna( void )
-{
-    switch( Eeprom.EepromData.DemoSettings.RngAntenna )
-    {
-        case DEMO_RNG_ANT_1:    return ( char* )"ANT1";
-        case DEMO_RNG_ANT_0:    return ( char* )"ANT0";
-        case DEMO_RNG_ANT_BOTH: return ( char* )"BOTH";
-        default:                return ( char* )"X";
-    }
-}
-
-char* GetRangingUnit( void )
-{
-    switch( Eeprom.EepromData.DemoSettings.RngUnit )
-    {
-        case DEMO_RNG_UNIT_SEL_M:  return ( char* )"Meter";
-        case DEMO_RNG_UNIT_SEL_YD: return ( char* )"Yard";
-        case DEMO_RNG_UNIT_SEL_MI: return ( char* )"Mile";
-        default:                   return ( char* )"X";
-    }
-}
-*/
-
-void CheckScreen( void )
-{
-    CheckScreenFlag = true;
-}
-
-void CheckRefresh( void )
-{
-    PageRefresh = true;
-}
-
-void DebouncedScreen (void )
-{
-    ScreenBeenDebounced = false;
-    DebouncedScreenTouch.detach( );
 }
 
 /*!
@@ -2539,63 +372,47 @@
  * \param [in]  *text1        Text to draw as label
  * \param [in]  *text2        Text to draw as value
  */
-void DrawActiveButton( uint8_t buttonId, uint8_t* text1, uint8_t* text2 )
-{
+void DrawActiveButton( uint8_t buttonId, uint8_t* text1, uint8_t* text2 ){
     GraphObjectDraw( &( MenuObjects[buttonId] ), NULL, NULL, true );
-    if( text2 == NULL )
-    {
-        if( text1 != NULL )
-        {
+    if( text2 == NULL )    {
+        if( text1 != NULL )        {
             GraphObjectDraw( &( MenuObjects[buttonId + 1] ), text1, NULL, false );
         }
     }
-    else
-    {
-        if( text1 != NULL )
-        {
+    else    {
+        if( text1 != NULL )        {
             GraphObjectDraw( &( MenuObjects[buttonId + 2] ), text1, NULL, false );
         }
         GraphObjectDraw( &( MenuObjects[buttonId + 3] ), text2, NULL, false );
     }
 }
 
-void ButtonChangeText( uint8_t buttonId, uint8_t* text1, uint8_t* text2 )
-{
-    if( text2 == NULL )
-    {
-        if( text1 != NULL )
-        {
+void ButtonChangeText( uint8_t buttonId, uint8_t* text1, uint8_t* text2 ){
+    if( text2 == NULL )    {
+        if( text1 != NULL )        {
             GraphObjectDraw( &( MenuObjects[buttonId + 1] ), text1, NULL, false );
         }
     }
-    else
-    {
-        if( text1 != NULL )
-        {
+    else    {
+        if( text1 != NULL )        {
             GraphObjectDraw( &( MenuObjects[buttonId + 2] ), text1, NULL, false );
         }
         GraphObjectDraw( &( MenuObjects[buttonId + 3] ), text2, NULL, false );
     }
 }
 
-void RemoveButton( uint8_t buttonId )
-{
+void RemoveButton( uint8_t buttonId ){
     GraphObjectClear( &( MenuObjects[buttonId] ), true );
 }
 
-void DrawText( uint8_t lineId, uint8_t* text0, uint8_t* text1, uint8_t* text2 )
-{
-    if( text0 != NULL )
-    {
+void DrawText( uint8_t lineId, uint8_t* text0, uint8_t* text1, uint8_t* text2 ){
+    if( text0 != NULL )    {
         GraphObjectDraw( &( MenuObjects[lineId] ), text0, NULL, false );
     }
-    if( text1 != NULL )
-    {
+    if( text1 != NULL )    {
         GraphObjectDraw( &( MenuObjects[lineId + 1] ), text1, NULL, false );
     }
-    if( text2 != NULL )
-    {
+    if( text2 != NULL )    {
         GraphObjectDraw( &( MenuObjects[lineId + 2] ), text2, NULL, false );
     }
 }
-