From 556b030e09d7b660f4aeb1b20ba3cb26b5c026ca Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 21 Mar 2020 11:43:31 +0100 Subject: [PATCH 01/57] Fix TX16s page navigation --- radio/src/gui/navigation/navigation_horus.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/navigation/navigation_horus.cpp b/radio/src/gui/navigation/navigation_horus.cpp index b8729c8a3..d62d07810 100644 --- a/radio/src/gui/navigation/navigation_horus.cpp +++ b/radio/src/gui/navigation/navigation_horus.cpp @@ -316,9 +316,9 @@ bool check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t if (menuTab && !menuCalibrationState) { int cc = curr; switch (event) { -#if defined(PCBX12S) +#if defined(KEYS_GPIO_REG_PGUP) case EVT_KEY_FIRST(KEY_PGDN): -#elif defined(PCBX10) +#else case EVT_KEY_BREAK(KEY_PGDN): #endif if (s_editMode>0) @@ -328,8 +328,9 @@ bool check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t cc = 0; break; +#if defined(KEYS_GPIO_REG_PGUP) case EVT_KEY_FIRST(KEY_PGUP): -#if defined(PCBX10) +#else case EVT_KEY_LONG(KEY_PGDN): #endif if (s_editMode>0) From 6af59c76c7a3bd7c139e4190d6407f6c0256369d Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 31 Jan 2020 15:29:30 +0100 Subject: [PATCH 02/57] PCB2.3 pin changes --- radio/src/targets/horus/hal.h | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index ed5422834..c4040dd3b 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -182,10 +182,17 @@ #define TRIMS_GPIO_REG_LSU GPIOB->IDR #define TRIMS_GPIO_PIN_LSU GPIO_Pin_13 // PB.13 #elif defined(PCBX10) - #define TRIMS_GPIO_REG_LHL GPIOB->IDR - #define TRIMS_GPIO_PIN_LHL GPIO_Pin_8 // PB.08 - #define TRIMS_GPIO_REG_LHR GPIOB->IDR - #define TRIMS_GPIO_PIN_LHR GPIO_Pin_9 // PB.09 + #if defined(RADIO_TX16S) + #define TRIMS_GPIO_REG_LHL GPIOA->IDR + #define TRIMS_GPIO_PIN_LHL GPIO_Pin_8 // PA.06 + #define TRIMS_GPIO_REG_LHR GPIOC->IDR + #define TRIMS_GPIO_PIN_LHR GPIO_Pin_9 // PC.04 + #else + #define TRIMS_GPIO_REG_LHL GPIOB->IDR + #define TRIMS_GPIO_PIN_LHL GPIO_Pin_8 // PB.08 + #define TRIMS_GPIO_REG_LHR GPIOB->IDR + #define TRIMS_GPIO_PIN_LHR GPIO_Pin_9 // PB.09 + #endif #define TRIMS_GPIO_REG_LVD GPIOG->IDR #define TRIMS_GPIO_PIN_LVD GPIO_Pin_12 // PG.12 #define TRIMS_GPIO_REG_LVU GPIOJ->IDR @@ -226,14 +233,21 @@ #define KEYS_GPIOI_PINS (KEYS_GPIO_PIN_PGDN | KEYS_GPIO_PIN_LEFT | KEYS_GPIO_PIN_DOWN | SWITCHES_GPIO_PIN_A_L | GPIO_Pin_4) #define KEYS_GPIOJ_PINS (SWITCHES_GPIO_PIN_D_H | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_RSD) #elif defined(PCBX10) - #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_8 | GPIO_Pin_9) -#if defined(RADIO_TX16S) - #define KEYS_GPIOC_PINS (GPIO_Pin_13) -#endif + #if defined(RADIO_TX16S) + #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13) + #else + #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_8 | GPIO_Pin_9) + #endif #define KEYS_GPIOD_PINS (GPIO_Pin_11 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_13) #define KEYS_GPIOE_PINS (GPIO_Pin_3) #define KEYS_GPIOG_PINS (SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L | SWITCHES_GPIO_PIN_H | TRIMS_GPIO_PIN_LVD) +#if defined(RADIO_TX16S) + #define KEYS_GPIOA_PINS (GPIO_Pin_6) + #define KEYS_GPIOC_PINS (GPIO_Pin_4) + #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) +#else #define KEYS_GPIOH_PINS (GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) +#endif #define KEYS_GPIOI_PINS (GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_15) #define KEYS_GPIOJ_PINS (SWITCHES_GPIO_PIN_D_H | TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_RVD | TRIMS_GPIO_PIN_RVU | GPIO_Pin_8) #endif @@ -434,7 +448,7 @@ // Telemetry #define TELEMETRY_RCC_AHB1Periph (RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA1) #define TELEMETRY_RCC_APB1Periph RCC_APB1Periph_USART2 -#define TELEMETRY_RCC_APB2Periph RCC_APB2Periph_TIM11 +#define TELEMETRY_RCC_APB2Periph RCC_APB2Periph_TIM10 #define TELEMETRY_DIR_GPIO GPIOD #define TELEMETRY_DIR_GPIO_PIN GPIO_Pin_4 // PD.04 #define TELEMETRY_GPIO GPIOD From 57247a74eee15d2281bd1d8241b4657f56a32619 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 21 Mar 2020 12:01:52 +0100 Subject: [PATCH 03/57] Merge fix --- radio/src/targets/horus/hal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index c4040dd3b..5e3ac2d1d 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -448,7 +448,7 @@ // Telemetry #define TELEMETRY_RCC_AHB1Periph (RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA1) #define TELEMETRY_RCC_APB1Periph RCC_APB1Periph_USART2 -#define TELEMETRY_RCC_APB2Periph RCC_APB2Periph_TIM10 +#define TELEMETRY_RCC_APB2Periph RCC_APB2Periph_TIM11 #define TELEMETRY_DIR_GPIO GPIOD #define TELEMETRY_DIR_GPIO_PIN GPIO_Pin_4 // PD.04 #define TELEMETRY_GPIO GPIOD From 069a6d3d91cc839a3aa27066755f651871804f6d Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 22 Mar 2020 16:08:38 +0100 Subject: [PATCH 04/57] Placeholder for touch hardware --- radio/src/gui/480x272/topbar.cpp | 14 ++++++++------ radio/src/targets/horus/CMakeLists.txt | 8 +++++++- radio/src/targets/horus/ft5x06.cpp | 21 +++++++++++++++++++++ radio/src/targets/horus/ft5x06.h | 24 ++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 radio/src/targets/horus/ft5x06.cpp create mode 100644 radio/src/targets/horus/ft5x06.h diff --git a/radio/src/gui/480x272/topbar.cpp b/radio/src/gui/480x272/topbar.cpp index 487e70a9b..f631f7984 100644 --- a/radio/src/gui/480x272/topbar.cpp +++ b/radio/src/gui/480x272/topbar.cpp @@ -91,15 +91,17 @@ void drawTopBar() /* Tx battery */ uint8_t bars = GET_TXBATT_BARS(5); #if defined(USB_CHARGER) - if(usbChargerLed()) + if(usbChargerLed() && BLINK_ON_PHASE) lcdDrawBitmapPattern(LCD_W-130, 24, LBM_TOPMENU_TXBATT_CHARGING, MENU_TITLE_COLOR); - else + else { #endif - lcdDrawBitmapPattern(LCD_W-130, 24, LBM_TOPMENU_TXBATT, MENU_TITLE_COLOR); - for (unsigned int i = 0; i < 5; i++) { - lcdDrawSolidFilledRect(LCD_W-122+4*i, 30, 2, 8, i >= bars ? MENU_TITLE_DISABLE_COLOR : MENU_TITLE_COLOR); + lcdDrawBitmapPattern(LCD_W - 130, 24, LBM_TOPMENU_TXBATT, MENU_TITLE_COLOR); + for (unsigned int i = 0; i < 5; i++) { + lcdDrawSolidFilledRect(LCD_W - 122 + 4 * i, 30, 2, 8, i >= bars ? MENU_TITLE_DISABLE_COLOR : MENU_TITLE_COLOR); + } +#if defined(USB_CHARGER) } - +#endif topbar->refresh(); #if 0 diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 601d82dfb..95f6e8c61 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -61,10 +61,11 @@ if (PCB STREQUAL X10) add_definitions(-DRADIO_FAMILY_T16) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) option(BLUETOOTH "Support for bluetooth module" OFF) + set(HARDWARE_TOUCH YES) + set(USB_CHARGER YES) if (NOT BLUETOOTH) set(AUX_SERIAL ON) endif() - set(USB_CHARGER YES) else() set(FLAVOUR x10) option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) @@ -207,6 +208,11 @@ set(TARGET_SRC ../common/arm/stm32/rotary_encoder_driver.cpp ) +if(HARDWARE_TOUCH) + set(TARGET_SRC ${TARGET_SRC} ft5x06.cpp) + add_definitions(-DHARDWARE_TOUCH) +endif() + if(USB_CHARGER) set(TARGET_SRC ${TARGET_SRC} usb_charger_driver.cpp) add_definitions(-DUSB_CHARGER) diff --git a/radio/src/targets/horus/ft5x06.cpp b/radio/src/targets/horus/ft5x06.cpp new file mode 100644 index 000000000..47765bbc7 --- /dev/null +++ b/radio/src/targets/horus/ft5x06.cpp @@ -0,0 +1,21 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "ft5x06.h" \ No newline at end of file diff --git a/radio/src/targets/horus/ft5x06.h b/radio/src/targets/horus/ft5x06.h new file mode 100644 index 000000000..a4d6b1f54 --- /dev/null +++ b/radio/src/targets/horus/ft5x06.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _FT5X06_H_ +#define _FT5X06_H_ + +#endif // _FT5X06_H_ From ac229acdffdfdfd13ee7091eb83d5aab475f3097 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 3 Apr 2020 10:13:27 +0200 Subject: [PATCH 05/57] Start touch test screen --- radio/src/gui/480x272/radio_hardware.cpp | 11 ++++++++++- radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + 14 files changed, 23 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index 23d6e85de..896b5e9fb 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -131,6 +131,12 @@ void onHardwareAntennaSwitchConfirm(const char * result) #define SPORT_POWER_ROWS #endif +#if defined(HARDWARE_TOUCH) + #define DEBUG_ROW 2 +#else + #define DEBUG_ROW 1 +#endif + bool menuRadioHardware(event_t event) { MENU(STR_HARDWARE, RADIO_ICONS, menuTabGeneral, MENU_RADIO_HARDWARE, ITEM_RADIO_HARDWARE_MAX, { @@ -162,7 +168,7 @@ bool menuRadioHardware(event_t event) 0, /* ADC filter */ READONLY_ROW /* RAS */, SPORT_POWER_ROWS - 1, /* Debug */ + DEBUG_ROW, /* Debug */ }); if (menuEvent) { @@ -411,6 +417,9 @@ bool menuRadioHardware(event_t event) lcdDrawText(MENUS_MARGIN_LEFT, y, STR_DEBUG); lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0); lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 1 ? attr : 0); +#if defined(HARDWARE_TOUCH) + lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 2 ? attr : 0); +#endif if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { if (menuHorizontalPosition == 0) pushMenu(menuRadioDiagAnalogs); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 293e5abf8..2c0a44632 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -315,6 +315,7 @@ const char STR_MONITOR_SCREENS[] = TR_MONITOR_SCREENS; const char STR_RESET_BTN[] = TR_RESET_BTN; const char STR_DEBUG[] = TR_DEBUG; const char STR_KEYS_BTN[] = TR_KEYS_BTN; +const char STR_TOUCH_BTN[] = TR_TOUCH_BTN; const char STR_ANALOGS_BTN[] = TR_ANALOGS_BTN; const char STR_CALIBRATION[] = TR_CALIBRATION; const char STR_NO_TOOLS[] = TR_NO_TOOLS; diff --git a/radio/src/translations.h b/radio/src/translations.h index 7a28a4299..9af85a277 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -493,6 +493,7 @@ extern const char STR_MONITOR_SCREENS[]; extern const char STR_RESET_BTN[]; extern const char STR_DEBUG[]; extern const char STR_KEYS_BTN[]; +extern const char STR_TOUCH_BTN[]; extern const char STR_ANALOGS_BTN[]; extern const char STR_CALIBRATION[]; extern const char STR_NO_TOOLS[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index e46a70230..cfe72860d 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -912,6 +912,7 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Přepínače")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogy")) #define TR_CALIBRATION "Kalibrace" #define TR_SET BUTTON("Nast") diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 9da0cadc6..1153b404e 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -914,6 +914,7 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Testen" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Kalibrieren" #define TR_SET BUTTON("Set") diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index c5211468e..297df750e 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -913,6 +913,7 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("Keys", "Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET BUTTON("Set") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 045855d01..9a101d5ba 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -933,6 +933,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibracion" #define TR_SET "[Ajuste]" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index b3665f787..c171fa406 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -931,6 +931,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index c9bb7a649..64e949b2b 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -933,6 +933,7 @@ #define TR_RESET_BTN BUTTON("RAZ") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("Btns","Inters")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET BUTTON("Déf") diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 11f4c411c..eaecfd349 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -933,6 +933,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Interruttori")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analogico","Analogici")) #define TR_CALIBRATION TR("Calibraz.", "Calibrazione") #define TR_SET "[Set]" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 9ff3650ce..913bdf60d 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -919,6 +919,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index e721da2ed..6cd0d603f 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -932,6 +932,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 87650f390..cf32b3158 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -922,6 +922,7 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 6fba79f01..504546777 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -932,6 +932,7 @@ #define TR_RESET_BTN "[Nollställ]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) +#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_CALIBRATION "Calibration" #define TR_SET "[Spara]" From ca00b500766b7cb2551042502613b3fcb8efa1a9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 3 Apr 2020 10:24:18 +0200 Subject: [PATCH 06/57] Enables TX16s --- companion/src/firmwares/opentx/opentxinterface.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index eb3750447..a8c38ff42 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -1345,12 +1345,11 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, FLEX); - // TX16S is unavailable until finalized - /* Radiomaster TX16S board + /* Radiomaster TX16S board */ firmware = new OpenTxFirmware("opentx-tx16s", Firmware::tr("Radiomaster TX16s / TX16s Hall / TX16s Masterfire"), BOARD_RADIOMASTER_TX16S); addOpenTxFrskyOptions(firmware); firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module")); - registerOpenTxFirmware(firmware);*/ + registerOpenTxFirmware(firmware); /* 9XR-Pro */ firmware = new OpenTxFirmware("opentx-9xrpro", Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO); From 3ee435dc3c021899caa9375de30698468c99bbf2 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 3 Apr 2020 16:06:17 +0200 Subject: [PATCH 07/57] Basic touch test screen holders --- radio/src/gui/480x272/menus.h | 1 + radio/src/gui/480x272/radio_diagtouch.cpp | 36 +++++++++++++++++++++++ radio/src/gui/480x272/radio_hardware.cpp | 17 +++++++---- radio/src/targets/horus/CMakeLists.txt | 1 + radio/src/targets/horus/ft5x06.cpp | 7 ++++- radio/src/targets/horus/ft5x06.h | 2 ++ radio/src/translations.cpp | 3 ++ radio/src/translations.h | 3 ++ radio/src/translations/cz.h.txt | 3 ++ radio/src/translations/de.h.txt | 3 ++ radio/src/translations/en.h.txt | 3 ++ radio/src/translations/es.h.txt | 3 ++ radio/src/translations/fi.h.txt | 3 ++ radio/src/translations/fr.h.txt | 3 ++ radio/src/translations/it.h.txt | 3 ++ radio/src/translations/nl.h.txt | 3 ++ radio/src/translations/pl.h.txt | 3 ++ radio/src/translations/pt.h.txt | 3 ++ radio/src/translations/se.h.txt | 3 ++ 19 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 radio/src/gui/480x272/radio_diagtouch.cpp diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index 83c667f19..e74d2fa9c 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -185,6 +185,7 @@ bool menuModelModuleOptions(event_t event); bool menuModelReceiverOptions(event_t event); bool menuRadioDiagKeys(event_t event); bool menuRadioDiagAnalogs(event_t event); +bool menuRadioDiagTouch(event_t event); extern const MenuHandlerFunc menuTabModel[MENU_MODEL_PAGES_COUNT]; diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp new file mode 100644 index 000000000..4db15b4a9 --- /dev/null +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "opentx.h" +#include "ft5x06.h" + +bool menuRadioDiagTouch(event_t event) +{ + SIMPLE_SUBMENU(STR_MENU_RADIO_TOUCH, ICON_MODEL_SETUP, 1); + + if (touchInit()) { + lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_EXIT, CENTERED); + } + else { + lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_NOTFOUND, CENTERED); + } + + return true; +} diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index 896b5e9fb..109a65459 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -418,13 +418,20 @@ bool menuRadioHardware(event_t event) lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0); lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 1 ? attr : 0); #if defined(HARDWARE_TOUCH) - lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 2 ? attr : 0); + lcdDrawText(lcdNextPos + 10, y, STR_TOUCH_BTN, menuHorizontalPosition == 2 ? attr : 0); #endif if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { - if (menuHorizontalPosition == 0) - pushMenu(menuRadioDiagAnalogs); - else - pushMenu(menuRadioDiagKeys); + switch (menuHorizontalPosition) { + case 0: + pushMenu(menuRadioDiagAnalogs); + break; + case 1: + pushMenu(menuRadioDiagKeys); + break; + case 2: + pushMenu(menuRadioDiagTouch); + break; + } } break; } diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 95f6e8c61..92dded852 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -210,6 +210,7 @@ set(TARGET_SRC if(HARDWARE_TOUCH) set(TARGET_SRC ${TARGET_SRC} ft5x06.cpp) + set(GUI_SRC ${GUI_SRC} radio_diagtouch.cpp) add_definitions(-DHARDWARE_TOUCH) endif() diff --git a/radio/src/targets/horus/ft5x06.cpp b/radio/src/targets/horus/ft5x06.cpp index 47765bbc7..29e752908 100644 --- a/radio/src/targets/horus/ft5x06.cpp +++ b/radio/src/targets/horus/ft5x06.cpp @@ -18,4 +18,9 @@ * GNU General Public License for more details. */ -#include "ft5x06.h" \ No newline at end of file +#include "ft5x06.h" + +bool touchInit(void) +{ + return true; +} \ No newline at end of file diff --git a/radio/src/targets/horus/ft5x06.h b/radio/src/targets/horus/ft5x06.h index a4d6b1f54..aeb63174f 100644 --- a/radio/src/targets/horus/ft5x06.h +++ b/radio/src/targets/horus/ft5x06.h @@ -21,4 +21,6 @@ #ifndef _FT5X06_H_ #define _FT5X06_H_ +bool touchInit(void); + #endif // _FT5X06_H_ diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 2c0a44632..61fcf7063 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -211,6 +211,7 @@ const char STR_MENUSPECIALFUNCS[] = TR_MENUSPECIALFUNCS; const char STR_MENUVERSION[] = TR_MENUVERSION; const char STR_MENU_RADIO_SWITCHES[] = TR_MENU_RADIO_SWITCHES; const char STR_MENU_RADIO_ANALOGS[] = TR_MENU_RADIO_ANALOGS; +const char STR_MENU_RADIO_TOUCH[] = TR_MENU_RADIO_TOUCH; const char STR_MENUCALIBRATION[] = TR_MENUCALIBRATION; const char STR_MENUMODELSEL[] = TR_MENUMODELSEL; const char STR_MENUSETUP[] = TR_MENUSETUP; @@ -317,6 +318,8 @@ const char STR_DEBUG[] = TR_DEBUG; const char STR_KEYS_BTN[] = TR_KEYS_BTN; const char STR_TOUCH_BTN[] = TR_TOUCH_BTN; const char STR_ANALOGS_BTN[] = TR_ANALOGS_BTN; +const char STR_TOUCH_NOTFOUND[] = TR_TOUCH_NOTFOUND; +const char STR_TOUCH_EXIT[] = TR_TOUCH_EXIT; const char STR_CALIBRATION[] = TR_CALIBRATION; const char STR_NO_TOOLS[] = TR_NO_TOOLS; const char STR_NORMAL[] = TR_NORMAL; diff --git a/radio/src/translations.h b/radio/src/translations.h index 9af85a277..56f7b21ff 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -355,6 +355,7 @@ extern const char STR_MENUSPECIALFUNCS[]; extern const char STR_MENUVERSION[]; extern const char STR_MENU_RADIO_SWITCHES[]; extern const char STR_MENU_RADIO_ANALOGS[]; +extern const char STR_MENU_RADIO_TOUCH[]; extern const char STR_MENUCALIBRATION[]; extern const char STR_MENUMODELSEL[]; extern const char STR_MENUSETUP[]; @@ -495,6 +496,8 @@ extern const char STR_DEBUG[]; extern const char STR_KEYS_BTN[]; extern const char STR_TOUCH_BTN[]; extern const char STR_ANALOGS_BTN[]; +extern const char STR_TOUCH_NOTFOUND[]; +extern const char STR_TOUCH_EXIT[]; extern const char STR_CALIBRATION[]; extern const char STR_NO_TOOLS[]; extern const char STR_NORMAL[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index cfe72860d..d26ee6345 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -587,6 +587,7 @@ #define TR_MENUVERSION "VERZE" #define TR_MENU_RADIO_SWITCHES "DIAG" #define TR_MENU_RADIO_ANALOGS "ANALOGY" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRACE" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trimy => Subtrimy" @@ -914,6 +915,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Přepínače")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogy")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Kalibrace" #define TR_SET BUTTON("Nast") #define TR_TRAINER "Trenér" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 1153b404e..883188a28 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -591,6 +591,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("Schalter-Test", "Schalter-Test") #define TR_MENU_RADIO_ANALOGS "Geber-Test" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION TR("KALIB. ANALOG", "KALIBRIERUNG-Analog") #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -916,6 +917,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Kalibrieren" #define TR_SET BUTTON("Set") #define TR_TRAINER "DSC Buchse PPM In/Out" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 297df750e..ab9b0d1dc 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -590,6 +590,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("SWITCHES", "SWITCHES TEST") #define TR_MENU_RADIO_ANALOGS TR("ANALOGS", "ANALOGS TEST") +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -915,6 +916,8 @@ #define TR_KEYS_BTN BUTTON(TR("Keys", "Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET BUTTON("Set") #define TR_TRAINER "Trainer" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 9a101d5ba..bd9a48697 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -601,6 +601,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERUP.") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTRADAS ANALOG") +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRACION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Offsets" @@ -935,6 +936,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibracion" #define TR_SET "[Ajuste]" #define TR_TRAINER "Entrena." diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index c171fa406..257124ef3 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -599,6 +599,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("SWITCHES","SWITCH TEST") #define TR_MENU_RADIO_ANALOGS TR("ANAS","ANALOG INPUTS") +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -933,6 +934,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" #define TR_TRAINER "Trainer" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 64e949b2b..0c94196b6 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -610,6 +610,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("INTERS", "TEST INTERRUPTEURS") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTREES ANALOGIQUES") +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -935,6 +936,8 @@ #define TR_KEYS_BTN BUTTON(TR("Btns","Inters")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET BUTTON("Déf") #define TR_TRAINER "Ecolage" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index eaecfd349..c176e5f7e 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -609,6 +609,7 @@ #define TR_MENUVERSION "VERSIONE" #define TR_MENU_RADIO_SWITCHES "DIAG" #define TR_MENU_RADIO_ANALOGS "ANAS" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRAZIONE" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -935,6 +936,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Interruttori")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analogico","Analogici")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION TR("Calibraz.", "Calibrazione") #define TR_SET "[Set]" #define TR_TRAINER TR("Trainer", "Maestro/Allievo") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 913bdf60d..33ac4e07e 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -594,6 +594,7 @@ #define TR_MENUVERSION "VERSIE" #define TR_MENU_RADIO_SWITCHES TR("Schak.", "Schakelaar-Test") #define TR_MENU_RADIO_ANALOGS "Analoog-Test" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION TR("CALIB. ANALOOG", "CALIBRERING Sticks+Pots") #if defined(COLORLCD) @@ -921,6 +922,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" #define TR_TRAINER "Trainer Poort" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 6cd0d603f..1b55ccef2 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -608,6 +608,7 @@ #define TR_MENUVERSION "WERSJA" #define TR_MENU_RADIO_SWITCHES TR("PRZEŁ","TEST PRZEŁ") #define TR_MENU_RADIO_ANALOGS TR("WE-ANA","WEJŚCIA ANALOG.") +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRACJA" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trymery => Subtrimy" @@ -934,6 +935,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" #define TR_TRAINER "Port Trenera" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index cf32b3158..74d70ef2d 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -590,6 +590,7 @@ #define TR_MENUVERSION "VERSAO" #define TR_MENU_RADIO_SWITCHES "DIAGNOST" #define TR_MENU_RADIO_ANALOGS "ANALOGICOS" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRAGEM" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -924,6 +925,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET "[Set]" #define TR_TRAINER "Trainer" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 504546777..0854167d2 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -607,6 +607,7 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("BRYTARE","TEST AV BRYTARE") #define TR_MENU_RADIO_ANALOGS "ANALOGA VÄRDEN" +#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRERING" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "[Spara Trimvärden]" @@ -934,6 +935,8 @@ #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) #define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) +#define TR_TOUCH_NOTFOUND "Touch hardware not found" +#define TR_TOUCH_EXIT "Touch screen to exit" #define TR_CALIBRATION "Calibration" #define TR_SET "[Spara]" #define TR_TRAINER "Trainer" From 69b8c4b711ae0974b47c2177a02a6fe4d750cfa6 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 3 Apr 2020 16:13:03 +0200 Subject: [PATCH 08/57] don't spam init() --- radio/src/gui/480x272/radio_diagtouch.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp index 4db15b4a9..756eb29a4 100644 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -23,9 +23,15 @@ bool menuRadioDiagTouch(event_t event) { + static bool touchAvailable = false; + SIMPLE_SUBMENU(STR_MENU_RADIO_TOUCH, ICON_MODEL_SETUP, 1); - if (touchInit()) { + if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { + touchAvailable = touchInit(); + } + + if (touchAvailable) { lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_EXIT, CENTERED); } else { From 86e3b26e3b8f8babad4e6364d2ab4a83437546e2 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 5 Apr 2020 10:51:46 +0200 Subject: [PATCH 09/57] continued --- radio/src/gui/480x272/radio_diagtouch.cpp | 4 ++++ radio/src/targets/horus/ft5x06.cpp | 7 ++++++- radio/src/targets/horus/ft5x06.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp index 756eb29a4..7e1d41bba 100644 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -30,6 +30,10 @@ bool menuRadioDiagTouch(event_t event) if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { touchAvailable = touchInit(); } + else if (menuEvent) { + touchDeInit(); + return false; + } if (touchAvailable) { lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_EXIT, CENTERED); diff --git a/radio/src/targets/horus/ft5x06.cpp b/radio/src/targets/horus/ft5x06.cpp index 29e752908..9c0f6332a 100644 --- a/radio/src/targets/horus/ft5x06.cpp +++ b/radio/src/targets/horus/ft5x06.cpp @@ -20,7 +20,12 @@ #include "ft5x06.h" +void toucDehInit(void) +{ + +} + bool touchInit(void) { - return true; + return false; } \ No newline at end of file diff --git a/radio/src/targets/horus/ft5x06.h b/radio/src/targets/horus/ft5x06.h index aeb63174f..01485d7da 100644 --- a/radio/src/targets/horus/ft5x06.h +++ b/radio/src/targets/horus/ft5x06.h @@ -22,5 +22,6 @@ #define _FT5X06_H_ bool touchInit(void); +void touchDeInit(void); #endif // _FT5X06_H_ From ccbbd413de9a6ced301f93d59e9e7053947ad327 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 7 Apr 2020 09:53:47 +0200 Subject: [PATCH 10/57] TP test started (untested) --- radio/src/gui/480x272/radio_diagtouch.cpp | 11 +- radio/src/targets/horus/CMakeLists.txt | 2 +- radio/src/targets/horus/ft5x06.cpp | 31 ---- radio/src/targets/horus/ft5x06.h | 27 --- radio/src/targets/horus/hal.h | 42 ++--- radio/src/targets/horus/tp_gt911.cpp | 201 ++++++++++++++++++++++ radio/src/targets/horus/tp_gt911.h | 126 ++++++++++++++ 7 files changed, 355 insertions(+), 85 deletions(-) delete mode 100644 radio/src/targets/horus/ft5x06.cpp delete mode 100644 radio/src/targets/horus/ft5x06.h create mode 100644 radio/src/targets/horus/tp_gt911.cpp create mode 100644 radio/src/targets/horus/tp_gt911.h diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp index 7e1d41bba..15535d289 100644 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -19,7 +19,7 @@ */ #include "opentx.h" -#include "ft5x06.h" +#include "tp_gt911.h" bool menuRadioDiagTouch(event_t event) { @@ -28,10 +28,11 @@ bool menuRadioDiagTouch(event_t event) SIMPLE_SUBMENU(STR_MENU_RADIO_TOUCH, ICON_MODEL_SETUP, 1); if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { - touchAvailable = touchInit(); + touchAvailable = touchPanelInit(); + touchEventFlag = 0; } else if (menuEvent) { - touchDeInit(); + //touchDeInit(); return false; } @@ -42,5 +43,9 @@ bool menuRadioDiagTouch(event_t event) lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_NOTFOUND, CENTERED); } + if (touchEventFlag) { + touchPanelDeInit(); + popMenu(); + } return true; } diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 92dded852..a0cf09cd2 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -209,7 +209,7 @@ set(TARGET_SRC ) if(HARDWARE_TOUCH) - set(TARGET_SRC ${TARGET_SRC} ft5x06.cpp) + set(TARGET_SRC ${TARGET_SRC} tp_gt911.cpp) set(GUI_SRC ${GUI_SRC} radio_diagtouch.cpp) add_definitions(-DHARDWARE_TOUCH) endif() diff --git a/radio/src/targets/horus/ft5x06.cpp b/radio/src/targets/horus/ft5x06.cpp deleted file mode 100644 index 9c0f6332a..000000000 --- a/radio/src/targets/horus/ft5x06.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "ft5x06.h" - -void toucDehInit(void) -{ - -} - -bool touchInit(void) -{ - return false; -} \ No newline at end of file diff --git a/radio/src/targets/horus/ft5x06.h b/radio/src/targets/horus/ft5x06.h deleted file mode 100644 index 01485d7da..000000000 --- a/radio/src/targets/horus/ft5x06.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _FT5X06_H_ -#define _FT5X06_H_ - -bool touchInit(void); -void touchDeInit(void); - -#endif // _FT5X06_H_ diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 5e3ac2d1d..f24b3dda1 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -634,11 +634,26 @@ #define AUDIO_MUTE_DELAY 500 // ms #endif +// Touch +#if defined(HARDWARE_TOUCH) +#define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH +#define TOUCH_INT_GPIO GPIOH +#define TOUCH_INT_GPIO_PIN GPIO_Pin_2 + +#define TOUCH_RST_RCC_AHB1Periph RCC_AHB1Periph_GPIOF +#define TOUCH_RST_GPIO GPIOF +#define TOUCH_RST_GPIO_PIN GPIO_Pin_10 + +#define TOUCH_INT_EXTI_LINE1 EXTI_Line2 +#define TOUCH_INT_EXTI_IRQn1 EXTI2_IRQn +#define TOUCH_INT_EXTI_IRQHandler1 EXTI2_IRQHandler +#define TOUCH_INT_EXTI_PortSource EXTI_PortSourceGPIOH +#define TOUCH_INT_EXTI_PinSource1 EXTI_PinSource2 + +#define TOUCH_INT_STAUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) +#endif + // I2C Bus -#if defined(RADIO_TX16S) -#define I2C_RCC_AHB1Periph 0 -#define I2C_RCC_APB1Periph 0 -#else #define I2C_RCC_AHB1Periph RCC_AHB1Periph_GPIOB #define I2C_RCC_APB1Periph RCC_APB1Periph_I2C1 #define I2C I2C1 @@ -649,7 +664,6 @@ #define I2C_SCL_GPIO_PinSource GPIO_PinSource8 #define I2C_SDA_GPIO_PinSource GPIO_PinSource9 #define I2C_SPEED 400000 -#endif // Haptic #define HAPTIC_PWM @@ -842,24 +856,6 @@ #define TIMER_2MHz_RCC_APB1Periph RCC_APB1Periph_TIM7 #define TIMER_2MHz_TIMER TIM7 -// Touch -#if defined(HARDWARE_TOUCH) -#define I2C_TOUCH_RCC_AHB1Periph RCC_AHB1Periph_GPIOB -#define I2C_TOUCH_RCC_APB1Periph RCC_APB1Periph_I2C1 -#define I2C_TOUCH I2C1 -#define I2C_TOUCH_GPIO GPIOB -#define I2C_TOUCH_SCL_GPIO_PIN GPIO_Pin_8 // PB.08 -#define I2C_TOUCH_SDA_GPIO_PIN GPIO_Pin_7 // PB.07 - -#define I2C_TOUCH_RESET_GPIO GPIOF -#define I2C_TOUCH_RESET_GPIO_PIN GPIO_Pin_10 // PF.10 -#define I2C_TOUCH_INT_GPIO GPIOH -#define I2C_TOUCH_INT_GPIO_PIN GPIO_Pin_2 // PH.02 -#else -#define I2C_TOUCH_RCC_AHB1Periph 0 -#define I2C_TOUCH_RCC_APB1Periph 0 -#endif - // Bluetooth #define STORAGE_BLUETOOTH #if defined(BLUETOOTH) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp new file mode 100644 index 000000000..114329996 --- /dev/null +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -0,0 +1,201 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "tp_gt911.h" + +uint8_t touchGT911Flag = 0; +uint8_t TOUCH_SCAN_MODE = 0; +uint8_t touchEventFlag = 0; + +void GT911_INT_Change(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + + GPIO_InitStructure.GPIO_Pin = TOUCH_INT_GPIO_PIN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; + GPIO_Init(TOUCH_INT_GPIO, &GPIO_InitStructure); +} + +uint8_t GT911_Send_Cfg(uint8_t mode) +{ + u8 buf[2]; + u8 i = 0; + buf[0] = 0; + buf[1] = mode; // + for (i = 0; i < sizeof(GT911_Cfg); i++) + buf[0] += GT911_Cfg[i];//check sum + + buf[0] = (~buf[0]) + 1; + GT911_WR_Reg(GT_CFGS_REG, (u8 *) GT911_Cfg, sizeof(GT911_Cfg));// + GT911_WR_Reg(GT_CHECK_REG, buf, 2);//write checksum + return 0; +} + +static void IIC_Config(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + //I2C_InitTypeDef I2C_InitStructure; + + /* GPIO Peripheral clock enable */ + RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); + //RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); + + //PB6: I2C1_SCL PB7: I2C1_SDA + GPIO_InitStructure.GPIO_Pin = I2C_SCL_GPIO_PIN | I2C_SDA_GPIO_PIN; + //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(I2C_GPIO, &GPIO_InitStructure); + + GPIO_SetBits(I2C_GPIO, I2C_SCL_GPIO_PIN | I2C_SDA_GPIO_PIN); +} + +static void TOUCH_AF_ExtiStop(void) +{ + SYSCFG_EXTILineConfig(TOUCH_INT_EXTI_PortSource, TOUCH_INT_EXTI_PinSource1); + + EXTI_InitTypeDef EXTI_InitStructure; + EXTI_StructInit(&EXTI_InitStructure); + EXTI_InitStructure.EXTI_Line = TOUCH_INT_EXTI_LINE1; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + EXTI_InitStructure.EXTI_LineCmd = DISABLE; + EXTI_Init(&EXTI_InitStructure); + + + NVIC_InitTypeDef NVIC_InitStructure; + NVIC_InitStructure.NVIC_IRQChannel = TOUCH_INT_EXTI_IRQn1; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 9; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /* Not used as 4 bits are used for the pre-emption priority. */; + NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE; + NVIC_Init(&NVIC_InitStructure); +} + +static void TOUCH_AF_ExtiConfig(void) +{ + SYSCFG_EXTILineConfig(TOUCH_INT_EXTI_PortSource, TOUCH_INT_EXTI_PinSource1); + + EXTI_InitTypeDef EXTI_InitStructure; + EXTI_StructInit(&EXTI_InitStructure); + EXTI_InitStructure.EXTI_Line = TOUCH_INT_EXTI_LINE1; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + + + NVIC_InitTypeDef NVIC_InitStructure; + NVIC_InitStructure.NVIC_IRQChannel = TOUCH_INT_EXTI_IRQn1; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 9; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /* Not used as 4 bits are used for the pre-emption priority. */; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); +} + +static void TOUCH_AF_GPIOConfig(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Pin = TOUCH_RST_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(TOUCH_RST_GPIO, &GPIO_InitStructure); + + GPIO_ResetBits(TOUCH_RST_GPIO, TOUCH_RST_GPIO_PIN); + + GPIO_InitStructure.GPIO_Pin = TOUCH_INT_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(TOUCH_INT_GPIO, &GPIO_InitStructure); + + GPIO_ResetBits(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN); +} + +void touchPanelDeInit(void) +{ + TOUCH_AF_ExtiStop(); +} + +bool touchPanelInit(void) +{ + uint8_t tmp[4] = {0}; + + TRACE("Touchpanel init start ..."); + + TOUCH_AF_GPIOConfig(); //SET RST=OUT INT=OUT INT=LOW + IIC_Config(); + + TPRST_LOW(); + TPINT_HIGH(); + delay_us(200); //DELAY 200US + + TPRST_HIGH(); + delay_ms(6); //DELAY 6MS + + TPINT_LOW(); + delay_ms(55); //DELAY 55MS + + GT911_INT_Change(); //Set INT INPUT INT=LOW + + delay_ms(50); //DELAY 55MS + + GT911_RD_Reg(GT_PID_REG, tmp, 4); + + if (strcmp((char *) tmp, "911") == 0)//ID==9147 + { + tmp[0] = 0X02; + GT911_WR_Reg(GT_CTRL_REG, tmp, 1);// + GT911_RD_Reg(GT_CFGS_REG, tmp, 1);// + + if (tmp[0] < 0X69)//ver + { + //printf("Default Ver:%x\r\n",temp[0]); + GT911_Send_Cfg(1); // + } + + delay_ms(10); + tmp[0] = 0X00; + GT911_WR_Reg(GT_CTRL_REG, tmp, 1);//end reset + touchGT911Flag = true; + + TOUCH_AF_ExtiConfig(); + + return true; + } + + return false; +} + +extern "C" void TOUCH_INT_EXTI_IRQHandler1(void) +{ + if (EXTI_GetITStatus(TOUCH_INT_EXTI_LINE1) != RESET) { + TRACE("TOUCH INTERUPT"); + touchEventFlag = 1; + EXTI_ClearITPendingBit(TOUCH_INT_EXTI_LINE1); + } +} diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h new file mode 100644 index 000000000..b8d22709a --- /dev/null +++ b/radio/src/targets/horus/tp_gt911.h @@ -0,0 +1,126 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _FT5X06_H_ +#define _FT5X06_H_ + +#include "opentx.h" + +#define HAS_TOUCH_PANEL() touchGT911Flag == true +#define TOUCH_INT_STATUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) + +bool touchPanelInit(); +void touchPanelDeInit(); + +extern uint8_t touchGT911Flag; +extern uint8_t TOUCH_SCAN_MODE; +extern uint8_t touchEventFlag; + +uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len); +void GT911_RD_Reg(uint16_t reg, uint8_t * buf, uint8_t len); + + +//GT911 param table +const uint8_t GT911_Cfg[]= // + { + 0x69, //ver 0x68 + 0xE0,0x01, //x 480 480X272 + 0x10,0x01, //y 272 + 0x05, //pass max count + 0x38, //bit4= xy change Int mode + 0x00, + 0x02, //press ct + 0x48, + 0x28,0x0D,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x18,0x1A,0x1E,0x14,0x8A,0x2A,0x0C, + 0x30,0x38,0x31,0x0D,0x00,0x00,0x02,0xB9,0x03,0x2D, + 0x00,0x00,0x00,0x00,0x00,0x03,0x64,0x32,0x00,0x00, + 0x00,0x1D,0x41,0x94,0xC5,0x02,0x07,0x00,0x00,0x04, + 0xA5,0x1F,0x00,0x94,0x25,0x00,0x88,0x2B,0x00,0x7D, + 0x33,0x00,0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x18,0x16,0x14,0x12,0x10,0x0E,0x0C,0x0A, + 0x08,0x06,0x04,0x02,0xFF,0xFF,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C, + 0x18,0x16,0x13,0x12,0x10,0x0F,0x0A,0x08,0x06,0x04, + 0x02,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00, + }; + +//I2C +#define GT_CMD_WR 0X28 //write +#define GT_CMD_RD 0X29 //read + +#define SLAVE_Write_Address 0X28 + +//GT9147 +#define GT_CTRL_REG 0X8040 +#define GT_CFGS_REG 0X8047 +#define GT_CHECK_REG 0X80FF +#define GT_PID_REG 0X8140 //ID + +#define GT_GSTID_REG 0X814E // +#define GT_TP1_REG 0X8150 // +#define GT_TP2_REG 0X8158 // +#define GT_TP3_REG 0X8160 // +#define GT_TP4_REG 0X8168 // +#define GT_TP5_REG 0X8170 // + +#define GT911_READ_XY_REG 0x814E +#define GT911_CLEARBUF_REG 0x814E +#define GT911_CONFIG_REG 0x8047 +#define GT911_COMMAND_REG 0x8040 +#define GT911_PRODUCT_ID_REG 0x8140 +#define GT911_VENDOR_ID_REG 0x814A +#define GT911_CONFIG_VERSION_REG 0x8047 +#define GT911_CONFIG_CHECKSUM_REG 0x80FF +#define GT911_FIRMWARE_VERSION_REG 0x8144 + + +typedef struct{ + uint16_t x; + uint16_t y; +}POINT; + +typedef struct{ + uint16_t cnt; + POINT points[5]; +}GT911_POINT_DATA; + +#define TPRST_LOW() do { TOUCH_RST_GPIO->BSRRH = TOUCH_RST_GPIO_PIN; } while(0) +#define TPRST_HIGH() do { TOUCH_RST_GPIO->BSRRL = TOUCH_RST_GPIO_PIN; } while(0) + +#define TPINT_LOW() do { TOUCH_INT_GPIO->BSRRH = TOUCH_INT_GPIO_PIN; } while(0) +#define TPINT_HIGH() do { TOUCH_INT_GPIO->BSRRL = TOUCH_INT_GPIO_PIN; } while(0) + + +#define IIC_SCL_L() do { I2C_GPIO->BSRRH = I2C_SCL_GPIO_PIN; } while(0) +#define IIC_SCL_H() do { I2C_GPIO->BSRRL = I2C_SCL_GPIO_PIN; } while(0) + +#define IIC_SDA_L() do { I2C_GPIO->BSRRH = I2C_SDA_GPIO_PIN; } while(0) +#define IIC_SDA_H() do { I2C_GPIO->BSRRL = I2C_SDA_GPIO_PIN; } while(0) + +#define READ_SDA GPIO_ReadInputDataBit(I2C_GPIO, I2C_SDA_GPIO_PIN) + +#endif // _FT5X06_H_ From dd4f9de2e9c048ad4bc3ae4c52e08f5b094441ff Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 7 Apr 2020 12:48:09 +0200 Subject: [PATCH 11/57] Please local travis (and more) --- radio/src/gui/480x272/radio_hardware.cpp | 2 + radio/src/targets/horus/CMakeLists.txt | 4 +- radio/src/targets/horus/board.cpp | 8 +- radio/src/targets/horus/hal.h | 27 ++-- radio/src/targets/horus/tp_gt911.cpp | 194 +++++++++++++++++++++-- radio/src/targets/horus/tp_gt911.h | 8 +- radio/src/targets/simu/simpgmspace.cpp | 1 + 7 files changed, 215 insertions(+), 29 deletions(-) diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index 109a65459..edae5d7f5 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -428,9 +428,11 @@ bool menuRadioHardware(event_t event) case 1: pushMenu(menuRadioDiagKeys); break; +#if defined(HARDWARE_TOUCH) case 2: pushMenu(menuRadioDiagTouch); break; +#endif } } break; diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index a0cf09cd2..910b43f5f 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -209,7 +209,9 @@ set(TARGET_SRC ) if(HARDWARE_TOUCH) - set(TARGET_SRC ${TARGET_SRC} tp_gt911.cpp) + set(TARGET_SRC ${TARGET_SRC} + tp_gt911.cpp + ) set(GUI_SRC ${GUI_SRC} radio_diagtouch.cpp) add_definitions(-DHARDWARE_TOUCH) endif() diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 61a429a70..d88350ba5 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -103,9 +103,11 @@ void boardInit() HAPTIC_RCC_AHB1Periph | INTMODULE_RCC_AHB1Periph | EXTMODULE_RCC_AHB1Periph | - I2C_TOUCH_RCC_AHB1Periph | + I2C_RCC_AHB1Periph | GPS_RCC_AHB1Periph | - SPORT_UPDATE_RCC_AHB1Periph, + SPORT_UPDATE_RCC_AHB1Periph | + TOUCH_INT_RCC_AHB1Periph | + TOUCH_RST_RCC_AHB1Periph, ENABLE); RCC_APB1PeriphClockCmd(ROTARY_ENCODER_RCC_APB1Periph | @@ -119,7 +121,7 @@ void boardInit() AUDIO_RCC_APB1Periph | INTMODULE_RCC_APB1Periph | EXTMODULE_RCC_APB1Periph | - I2C_TOUCH_RCC_APB1Periph | + I2C_RCC_APB1Periph | GPS_RCC_APB1Periph | BACKLIGHT_RCC_APB1Periph, ENABLE); diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index f24b3dda1..bbe1235b0 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -636,21 +636,24 @@ // Touch #if defined(HARDWARE_TOUCH) -#define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH -#define TOUCH_INT_GPIO GPIOH -#define TOUCH_INT_GPIO_PIN GPIO_Pin_2 + #define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH + #define TOUCH_INT_GPIO GPIOH + #define TOUCH_INT_GPIO_PIN GPIO_Pin_2 // PH.02 -#define TOUCH_RST_RCC_AHB1Periph RCC_AHB1Periph_GPIOF -#define TOUCH_RST_GPIO GPIOF -#define TOUCH_RST_GPIO_PIN GPIO_Pin_10 + #define TOUCH_RST_RCC_AHB1Periph RCC_AHB1Periph_GPIOF + #define TOUCH_RST_GPIO GPIOF + #define TOUCH_RST_GPIO_PIN GPIO_Pin_10 // PF.10 -#define TOUCH_INT_EXTI_LINE1 EXTI_Line2 -#define TOUCH_INT_EXTI_IRQn1 EXTI2_IRQn -#define TOUCH_INT_EXTI_IRQHandler1 EXTI2_IRQHandler -#define TOUCH_INT_EXTI_PortSource EXTI_PortSourceGPIOH -#define TOUCH_INT_EXTI_PinSource1 EXTI_PinSource2 + #define TOUCH_INT_EXTI_LINE1 EXTI_Line2 + #define TOUCH_INT_EXTI_IRQn1 EXTI2_IRQn + #define TOUCH_INT_EXTI_IRQHandler1 EXTI2_IRQHandler + #define TOUCH_INT_EXTI_PortSource EXTI_PortSourceGPIOH + #define TOUCH_INT_EXTI_PinSource1 EXTI_PinSource2 -#define TOUCH_INT_STAUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) + #define TOUCH_INT_STATUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) +#else + #define TOUCH_INT_RCC_AHB1Periph 0 + #define TOUCH_RST_RCC_AHB1Periph 0 #endif // I2C Bus diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 114329996..68b4630dc 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -38,20 +38,20 @@ void GT911_INT_Change(void) uint8_t GT911_Send_Cfg(uint8_t mode) { - u8 buf[2]; - u8 i = 0; + uint8_t buf[2]; + uint8_t i = 0; buf[0] = 0; buf[1] = mode; // for (i = 0; i < sizeof(GT911_Cfg); i++) buf[0] += GT911_Cfg[i];//check sum buf[0] = (~buf[0]) + 1; - GT911_WR_Reg(GT_CFGS_REG, (u8 *) GT911_Cfg, sizeof(GT911_Cfg));// + GT911_WR_Reg(GT_CFGS_REG, (uint8_t *) GT911_Cfg, sizeof(GT911_Cfg));// GT911_WR_Reg(GT_CHECK_REG, buf, 2);//write checksum return 0; } -static void IIC_Config(void) +static void I2C_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; //I2C_InitTypeDef I2C_InitStructure; @@ -136,6 +136,182 @@ static void TOUCH_AF_GPIOConfig(void) GPIO_ResetBits(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN); } +void SDA_IN(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + //RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOB, ENABLE); + //RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); + + GPIO_InitStructure.GPIO_Pin = I2C_SDA_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_Init(I2C_GPIO, &GPIO_InitStructure); +} + +void SDA_OUT(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + //RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOB, ENABLE); + //RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); + + GPIO_InitStructure.GPIO_Pin = I2C_SDA_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_Init(I2C_GPIO, &GPIO_InitStructure); +} + +void I2C_Start(void) +{ + SDA_OUT(); + I2C_SDA_H(); + I2C_SCL_H(); + delay_us(2); + I2C_SDA_L();//START:when CLK is high,DATA change form high to low + delay_us(2); + I2C_SCL_L();// + delay_us(2); +} + +void I2C_Stop(void) +{ + SDA_OUT(); + I2C_SCL_L(); + I2C_SDA_L();//STOP:when CLK is high DATA change form low to high + delay_us(2); + I2C_SCL_H(); + I2C_SDA_H();// + delay_us(2); +} + +uint8_t I2C_Wait_Ack(void) +{ + uint8_t ucErrTime = 0; + SDA_IN(); // + I2C_SDA_H(); + delay_us(2); + //I2C_SCL_L();delay_us(6); + I2C_SCL_H();//delay_us(6); + while (READ_SDA) { + ucErrTime++; + if (ucErrTime > 166) { + I2C_Stop(); + return 1; + } + delay_us(1); + } + I2C_SDA_L(); + I2C_SCL_L();// + return 0; +} + +void I2C_Ack(void) +{ + I2C_SCL_L(); + SDA_OUT(); + I2C_SDA_L(); + delay_us(2); + I2C_SCL_H(); + delay_us(2); + I2C_SCL_L(); +} + +void I2C_NAck(void) +{ + I2C_SCL_L(); + SDA_OUT(); + I2C_SDA_H(); + delay_us(2); + I2C_SCL_H(); + delay_us(2); + I2C_SCL_L(); +} + +void I2C_Send_Byte(uint8_t txd) +{ + uint8_t t; + + SDA_OUT(); + I2C_SCL_L();// + for (t = 0; t < 8; t++) { + if ((txd & 0x80) >> 7) + I2C_SDA_H(); + else + I2C_SDA_L(); + txd <<= 1; + delay_us(1); + I2C_SCL_H(); + delay_us(2); + I2C_SCL_L(); + delay_us(1); + } +} + +uint8_t I2C_Read_Byte(unsigned char ack) +{ + unsigned char i, receive = 0; + + SDA_IN(); + for (i = 0; i < 8; i++) { + I2C_SCL_L(); + delay_us(2); + I2C_SCL_H(); + receive <<= 1; + if (READ_SDA)receive++; + delay_us(1); + } + if (!ack) + I2C_NAck(); + else + I2C_Ack(); + return receive; +} + +uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len) +{ + { + uint8_t i; + uint8_t ret = 0; + + I2C_Start(); + I2C_Send_Byte(GT_CMD_WR); //send cmd + I2C_Wait_Ack(); + I2C_Send_Byte(reg >> 8); //send hi + I2C_Wait_Ack(); + I2C_Send_Byte(reg & 0XFF); //send low + I2C_Wait_Ack(); + for (i = 0; i < len; i++) { + I2C_Send_Byte(buf[i]); + ret = I2C_Wait_Ack(); + if (ret)break; + } + I2C_Stop(); + + return ret; + } +} + +void GT911_RD_Reg(u16 reg, uint8_t * buf, uint8_t len) +{ + uint8_t i; + + //I2C_GenerateSTART(I2C1, ENABLE); + I2C_Start(); + I2C_Send_Byte(GT_CMD_WR); //send addr + I2C_Wait_Ack(); + I2C_Send_Byte(reg >> 8); //send hi + I2C_Wait_Ack(); + I2C_Send_Byte(reg & 0XFF); //send low + I2C_Wait_Ack(); + I2C_Start(); + I2C_Send_Byte(GT_CMD_RD); //send rd + I2C_Wait_Ack(); + + for (i = 0; i < len; i++) { + buf[i] = I2C_Read_Byte(i == (len - 1) ? 0 : 1); //send data + } + I2C_Stop(); +} + void touchPanelDeInit(void) { TOUCH_AF_ExtiStop(); @@ -148,21 +324,21 @@ bool touchPanelInit(void) TRACE("Touchpanel init start ..."); TOUCH_AF_GPIOConfig(); //SET RST=OUT INT=OUT INT=LOW - IIC_Config(); + I2C_Config(); TPRST_LOW(); TPINT_HIGH(); - delay_us(200); //DELAY 200US + delay_us(200); TPRST_HIGH(); - delay_ms(6); //DELAY 6MS + delay_ms(6); TPINT_LOW(); - delay_ms(55); //DELAY 55MS + delay_ms(55); GT911_INT_Change(); //Set INT INPUT INT=LOW - delay_ms(50); //DELAY 55MS + delay_ms(50); GT911_RD_Reg(GT_PID_REG, tmp, 4); diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index b8d22709a..64dfac5d6 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -115,11 +115,11 @@ typedef struct{ #define TPINT_HIGH() do { TOUCH_INT_GPIO->BSRRL = TOUCH_INT_GPIO_PIN; } while(0) -#define IIC_SCL_L() do { I2C_GPIO->BSRRH = I2C_SCL_GPIO_PIN; } while(0) -#define IIC_SCL_H() do { I2C_GPIO->BSRRL = I2C_SCL_GPIO_PIN; } while(0) +#define I2C_SCL_L() do { I2C_GPIO->BSRRH = I2C_SCL_GPIO_PIN; } while(0) +#define I2C_SCL_H() do { I2C_GPIO->BSRRL = I2C_SCL_GPIO_PIN; } while(0) -#define IIC_SDA_L() do { I2C_GPIO->BSRRH = I2C_SDA_GPIO_PIN; } while(0) -#define IIC_SDA_H() do { I2C_GPIO->BSRRL = I2C_SDA_GPIO_PIN; } while(0) +#define I2C_SDA_L() do { I2C_GPIO->BSRRH = I2C_SDA_GPIO_PIN; } while(0) +#define I2C_SDA_H() do { I2C_GPIO->BSRRL = I2C_SDA_GPIO_PIN; } while(0) #define READ_SDA GPIO_ReadInputDataBit(I2C_GPIO, I2C_SDA_GPIO_PIN) diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 1aadf6e30..73a4948ca 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -580,6 +580,7 @@ int usbPlugged() { return false; } int getSelectedUsbMode() { return USB_JOYSTICK_MODE; } void setSelectedUsbMode(int mode) {} void delay_ms(uint32_t ms) { } +void delay_us(uint16_t us) { } // GPIO fake functions void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF) { } From 9a20a8780bc0896b7389498a889363ddffcdff90 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 20 Apr 2020 13:01:11 +0200 Subject: [PATCH 12/57] Init usb charger detect --- radio/src/gui/480x272/topbar.cpp | 2 +- radio/src/targets/horus/board.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/topbar.cpp b/radio/src/gui/480x272/topbar.cpp index f631f7984..f14d9a237 100644 --- a/radio/src/gui/480x272/topbar.cpp +++ b/radio/src/gui/480x272/topbar.cpp @@ -91,7 +91,7 @@ void drawTopBar() /* Tx battery */ uint8_t bars = GET_TXBATT_BARS(5); #if defined(USB_CHARGER) - if(usbChargerLed() && BLINK_ON_PHASE) + if (usbChargerLed() && BLINK_ON_PHASE) lcdDrawBitmapPattern(LCD_W-130, 24, LBM_TOPMENU_TXBATT_CHARGING, MENU_TITLE_COLOR); else { #endif diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index d88350ba5..2310c296b 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -191,6 +191,10 @@ void boardInit() ledInit(); +#if defined(USB_CHARGER) + usbChargerInit(); +#endif + #if HAS_SPORT_UPDATE_CONNECTOR() sportUpdateInit(); #endif From 368adfb422be6a4e804e91092bd31d98cabfde70 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Mon, 20 Apr 2020 13:04:01 +0200 Subject: [PATCH 13/57] Fix left horizontal trim --- radio/src/targets/horus/hal.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index bbe1235b0..9e4da20b8 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -184,9 +184,9 @@ #elif defined(PCBX10) #if defined(RADIO_TX16S) #define TRIMS_GPIO_REG_LHL GPIOA->IDR - #define TRIMS_GPIO_PIN_LHL GPIO_Pin_8 // PA.06 + #define TRIMS_GPIO_PIN_LHL GPIO_Pin_6 // PA.06 #define TRIMS_GPIO_REG_LHR GPIOC->IDR - #define TRIMS_GPIO_PIN_LHR GPIO_Pin_9 // PC.04 + #define TRIMS_GPIO_PIN_LHR GPIO_Pin_4 // PC.04 #else #define TRIMS_GPIO_REG_LHL GPIOB->IDR #define TRIMS_GPIO_PIN_LHL GPIO_Pin_8 // PB.08 @@ -234,9 +234,9 @@ #define KEYS_GPIOJ_PINS (SWITCHES_GPIO_PIN_D_H | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_RSD) #elif defined(PCBX10) #if defined(RADIO_TX16S) - #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13) + #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13) #else - #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_8 | GPIO_Pin_9) + #define KEYS_GPIOB_PINS (GPIO_Pin_12 | GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_8 | GPIO_Pin_9) #endif #define KEYS_GPIOD_PINS (GPIO_Pin_11 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_13) #define KEYS_GPIOE_PINS (GPIO_Pin_3) From 7b81f6f9717ab8457528afbdc3b2515ee1c47ff7 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Mon, 20 Apr 2020 13:29:30 +0200 Subject: [PATCH 14/57] More init fixes --- radio/src/targets/horus/hal.h | 4 ++-- radio/src/targets/horus/keys_driver.cpp | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) mode change 100644 => 100755 radio/src/targets/horus/keys_driver.cpp diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 9e4da20b8..b87f401fd 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -243,8 +243,8 @@ #define KEYS_GPIOG_PINS (SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L | SWITCHES_GPIO_PIN_H | TRIMS_GPIO_PIN_LVD) #if defined(RADIO_TX16S) #define KEYS_GPIOA_PINS (GPIO_Pin_6) - #define KEYS_GPIOC_PINS (GPIO_Pin_4) - #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) + #define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_13) + #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) #else #define KEYS_GPIOH_PINS (GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) #endif diff --git a/radio/src/targets/horus/keys_driver.cpp b/radio/src/targets/horus/keys_driver.cpp old mode 100644 new mode 100755 index 0b02a6a03..7433ee58f --- a/radio/src/targets/horus/keys_driver.cpp +++ b/radio/src/targets/horus/keys_driver.cpp @@ -204,16 +204,39 @@ void keysInit() GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; +#if defined(KEYS_GPIOA_PINS) + INIT_KEYS_PINS(GPIOA); +#endif + +#if defined(KEYS_GPIOB_PINS) INIT_KEYS_PINS(GPIOB); +#endif #if defined(KEYS_GPIOC_PINS) INIT_KEYS_PINS(GPIOC); #endif +#if defined(KEYS_GPIOD_PINS) INIT_KEYS_PINS(GPIOD); +#endif + +#if defined(KEYS_GPIOE_PINS) INIT_KEYS_PINS(GPIOE); +#endif + +#if defined(KEYS_GPIOG_PINS) INIT_KEYS_PINS(GPIOG); +#endif + +#if defined(KEYS_GPIOH_PINS) INIT_KEYS_PINS(GPIOH); +#endif + +#if defined(KEYS_GPIOI_PINS) INIT_KEYS_PINS(GPIOI); +#endif + +#if defined(KEYS_GPIOJ_PINS) INIT_KEYS_PINS(GPIOJ); +#endif } From 9dbb5226c0746ba5d744b196f3e000dbb21d28b7 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Mon, 20 Apr 2020 13:42:38 +0200 Subject: [PATCH 15/57] Fix stick directions --- radio/src/targets/common/arm/stm32/adc_driver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/common/arm/stm32/adc_driver.cpp b/radio/src/targets/common/arm/stm32/adc_driver.cpp index 3972ab86c..6360b9676 100644 --- a/radio/src/targets/common/arm/stm32/adc_driver.cpp +++ b/radio/src/targets/common/arm/stm32/adc_driver.cpp @@ -25,7 +25,7 @@ #elif defined(RADIO_T16) const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,1, -1,1, -1,1}; #elif defined(RADIO_TX16S) - const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1,1, -1,1, -1,1}; + const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,1, -1,1, -1,1}; #elif defined(PCBX10) const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, -1,1,-1, 1,1, 1, -1}; #elif defined(PCBX9E) From 97a2da52641c435f216e6973885e6c5ad4988d15 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 20 Apr 2020 13:48:25 +0200 Subject: [PATCH 16/57] Improve charger detection --- radio/src/targets/horus/hal.h | 1 + radio/src/targets/horus/usb_charger_driver.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index b87f401fd..636e6c9e3 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -339,6 +339,7 @@ #define USB_CHARGER_RCC_AHB1Periph RCC_AHB1Periph_GPIOG #define USB_CHARGER_GPIO GPIOG #define USB_CHARGER_GPIO_PIN GPIO_Pin_11 // PG.11 +#define USB_USBDet_GPIO_PIN GPIO_Pin_13 // PG.13 #else #define USB_CHARGER_RCC_AHB1Periph 0 #endif diff --git a/radio/src/targets/horus/usb_charger_driver.cpp b/radio/src/targets/horus/usb_charger_driver.cpp index 3ba915318..400db6467 100644 --- a/radio/src/targets/horus/usb_charger_driver.cpp +++ b/radio/src/targets/horus/usb_charger_driver.cpp @@ -33,6 +33,6 @@ void usbChargerInit() bool usbChargerLed() { - return GPIO_ReadInputDataBit(USB_CHARGER_GPIO, USB_CHARGER_GPIO_PIN) == Bit_RESET; + return GPIO_ReadInputDataBit(USB_CHARGER_GPIO, USB_USBDet_GPIO_PIN) == 0 ? 0 : GPIO_ReadInputDataBit(USB_CHARGER_GPIO, USB_CHARGER_GPIO_PIN) == Bit_RESET; } From c8f1ff74c1099d918872cfd771559eb83571d76a Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 20 Apr 2020 13:50:22 +0200 Subject: [PATCH 17/57] Improve charger detection --- radio/src/targets/horus/usb_charger_driver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/horus/usb_charger_driver.cpp b/radio/src/targets/horus/usb_charger_driver.cpp index 400db6467..be27276f0 100644 --- a/radio/src/targets/horus/usb_charger_driver.cpp +++ b/radio/src/targets/horus/usb_charger_driver.cpp @@ -23,7 +23,7 @@ void usbChargerInit() { GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = USB_CHARGER_RCC_AHB1Periph; + GPIO_InitStructure.GPIO_Pin = USB_CHARGER_GPIO_PIN | USB_USBDet_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; From 68584a7262e2a941f6eb04184fb786d21da1da60 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Mon, 20 Apr 2020 14:26:57 +0200 Subject: [PATCH 18/57] No extra switches on TX16S --- radio/src/targets/horus/hal.h | 7 +++++-- radio/src/targets/horus/keys_driver.cpp | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 636e6c9e3..14d2d27ed 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -131,7 +131,10 @@ #define SWITCHES_GPIO_REG_H GPIOG->IDR #define SWITCHES_GPIO_PIN_H GPIO_Pin_7 // PG.07 -#if defined(PCBX10) +#if defined(RADIO_TX16S) + #define STORAGE_SWITCH_I + #define STORAGE_SWITCH_J +#elif defined(PCBX10) // Gimbal switch left #define STORAGE_SWITCH_I #define HARDWARE_SWITCH_I @@ -244,7 +247,7 @@ #if defined(RADIO_TX16S) #define KEYS_GPIOA_PINS (GPIO_Pin_6) #define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_13) - #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) + #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12) #else #define KEYS_GPIOH_PINS (GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) #endif diff --git a/radio/src/targets/horus/keys_driver.cpp b/radio/src/targets/horus/keys_driver.cpp index 7433ee58f..b19b406ae 100755 --- a/radio/src/targets/horus/keys_driver.cpp +++ b/radio/src/targets/horus/keys_driver.cpp @@ -184,8 +184,10 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(F); ADD_3POS_CASE(G, 6); ADD_2POS_CASE(H); +#if !defined(RADIO_TX16S) ADD_2POS_CASE(I); ADD_2POS_CASE(J); +#endif #endif default: break; From c2ab1d96f3844650594ee056dcc5e8fe9c20065a Mon Sep 17 00:00:00 2001 From: Kilrah Date: Mon, 20 Apr 2020 14:35:13 +0200 Subject: [PATCH 19/57] Revert "No extra switches on TX16S" This reverts commit 68584a7262e2a941f6eb04184fb786d21da1da60. --- radio/src/targets/horus/hal.h | 7 ++----- radio/src/targets/horus/keys_driver.cpp | 2 -- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 14d2d27ed..636e6c9e3 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -131,10 +131,7 @@ #define SWITCHES_GPIO_REG_H GPIOG->IDR #define SWITCHES_GPIO_PIN_H GPIO_Pin_7 // PG.07 -#if defined(RADIO_TX16S) - #define STORAGE_SWITCH_I - #define STORAGE_SWITCH_J -#elif defined(PCBX10) +#if defined(PCBX10) // Gimbal switch left #define STORAGE_SWITCH_I #define HARDWARE_SWITCH_I @@ -247,7 +244,7 @@ #if defined(RADIO_TX16S) #define KEYS_GPIOA_PINS (GPIO_Pin_6) #define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_13) - #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12) + #define KEYS_GPIOH_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) #else #define KEYS_GPIOH_PINS (GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15) #endif diff --git a/radio/src/targets/horus/keys_driver.cpp b/radio/src/targets/horus/keys_driver.cpp index b19b406ae..7433ee58f 100755 --- a/radio/src/targets/horus/keys_driver.cpp +++ b/radio/src/targets/horus/keys_driver.cpp @@ -184,10 +184,8 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(F); ADD_3POS_CASE(G, 6); ADD_2POS_CASE(H); -#if !defined(RADIO_TX16S) ADD_2POS_CASE(I); ADD_2POS_CASE(J); -#endif #endif default: break; From 9bf6b1d0a2ccf312cc78229f92f9665016eff9b9 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Fri, 24 Apr 2020 12:01:02 +0200 Subject: [PATCH 20/57] No audio mute for TX16S --- radio/src/targets/horus/hal.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 636e6c9e3..f22509c89 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -635,6 +635,11 @@ #define AUDIO_MUTE_DELAY 500 // ms #endif +#if defined(RADIO_TX16S) +// Only slight noise with 868MHz > 1W, if complaints later remove and set AUDIO_UNMUTE_DELAY to 150 + #undef AUDIO_MUTE_GPIO_PIN +#endif + // Touch #if defined(HARDWARE_TOUCH) #define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH From e6b33264128feed52c63cea2a964a8b06220864c Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 08:37:50 +0200 Subject: [PATCH 21/57] Add touch temporary debug --- radio/src/targets/horus/tp_gt911.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 68b4630dc..d3bc68524 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -340,18 +340,20 @@ bool touchPanelInit(void) delay_ms(50); + TRACE("Reading Touch registry"); GT911_RD_Reg(GT_PID_REG, tmp, 4); - if (strcmp((char *) tmp, "911") == 0)//ID==9147 + if (strcmp((char *) tmp, "911") == 0) //ID==9147 { + TRACE("GT911 chip detected"); tmp[0] = 0X02; - GT911_WR_Reg(GT_CTRL_REG, tmp, 1);// - GT911_RD_Reg(GT_CFGS_REG, tmp, 1);// + GT911_WR_Reg(GT_CTRL_REG, tmp, 1); + GT911_RD_Reg(GT_CFGS_REG, tmp, 1); if (tmp[0] < 0X69)//ver { - //printf("Default Ver:%x\r\n",temp[0]); - GT911_Send_Cfg(1); // + TRACE("Default Ver:%x\r\n",temp[0]); + GT911_Send_Cfg(1); } delay_ms(10); @@ -363,7 +365,7 @@ bool touchPanelInit(void) return true; } - + TRACE("GT911 chip NOT FOUND"); return false; } From fd8fbc4f31df91dd2cb367a9b2aecb2c44b952ca Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 10:36:09 +0200 Subject: [PATCH 22/57] test --- radio/src/gui/480x272/radio_diagtouch.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp index 15535d289..6e5d19778 100644 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -44,8 +44,13 @@ bool menuRadioDiagTouch(event_t event) } if (touchEventFlag) { - touchPanelDeInit(); - popMenu(); + uint8_t tmp,mode = 0; + GT911_RD_Reg(GT911_READ_XY_REG,&mode,1); //read status + tmp=mode&0x0f; + if((mode&0x80) && (tmp>0)) { + touchPanelDeInit(); + popMenu(); + } } return true; } From c9c0b109292ddfad84a63bcef7a3e254e5a09562 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 10:37:29 +0200 Subject: [PATCH 23/57] test --- radio/src/gui/480x272/radio_diagtouch.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp index 6e5d19778..3c9834265 100644 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ b/radio/src/gui/480x272/radio_diagtouch.cpp @@ -51,6 +51,7 @@ bool menuRadioDiagTouch(event_t event) touchPanelDeInit(); popMenu(); } + GT911_WR_Reg(GT911_CLEARBUF_REG, &tmp, 1); } return true; } From 716650f2cdd67e1d012f3197d823b809179e878c Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sat, 25 Apr 2020 10:52:05 +0200 Subject: [PATCH 24/57] fix typo --- radio/src/targets/horus/tp_gt911.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index d3bc68524..87e6e0ce2 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -352,7 +352,7 @@ bool touchPanelInit(void) if (tmp[0] < 0X69)//ver { - TRACE("Default Ver:%x\r\n",temp[0]); + TRACE("Default Ver:%x\r\n",tmp[0]); GT911_Send_Cfg(1); } @@ -372,7 +372,7 @@ bool touchPanelInit(void) extern "C" void TOUCH_INT_EXTI_IRQHandler1(void) { if (EXTI_GetITStatus(TOUCH_INT_EXTI_LINE1) != RESET) { - TRACE("TOUCH INTERUPT"); + TRACE("TI"); touchEventFlag = 1; EXTI_ClearITPendingBit(TOUCH_INT_EXTI_LINE1); } From b61691df1d28436f0de5310babe640173f43d82c Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 13:39:28 +0200 Subject: [PATCH 25/57] Attempt rework touch control --- radio/src/gui/480x272/menus.h | 1 - radio/src/gui/480x272/radio_diaganas.cpp | 26 ++++++++- radio/src/gui/480x272/radio_diagtouch.cpp | 57 ------------------- radio/src/gui/480x272/radio_hardware.cpp | 16 +----- radio/src/targets/horus/CMakeLists.txt | 1 - radio/src/targets/horus/tp_gt911.cpp | 69 +++++++++++++++++++---- radio/src/targets/horus/tp_gt911.h | 31 +++++++--- radio/src/touch.h | 50 ++++++++++++++++ 8 files changed, 156 insertions(+), 95 deletions(-) delete mode 100644 radio/src/gui/480x272/radio_diagtouch.cpp create mode 100644 radio/src/touch.h diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index edae43fec..f82baeb14 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -185,7 +185,6 @@ bool menuModelModuleOptions(event_t event); bool menuModelReceiverOptions(event_t event); bool menuRadioDiagKeys(event_t event); bool menuRadioDiagAnalogs(event_t event); -bool menuRadioDiagTouch(event_t event); extern const MenuHandlerFunc menuTabModel[MENU_MODEL_PAGES_COUNT]; diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 88f82d748..905987fef 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -19,6 +19,9 @@ */ #include "opentx.h" +#if defined(RADIO_TX16S) +#include "tp_gt911.h" +#endif constexpr coord_t LEFT_NAME_COLUMN = MENUS_MARGIN_LEFT; constexpr coord_t RIGHT_NAME_COLUMN = LCD_W / 2; @@ -28,6 +31,12 @@ bool menuRadioDiagAnalogs(event_t event) { SIMPLE_SUBMENU(STR_MENU_RADIO_ANALOGS, ICON_MODEL_SETUP, 0); +#if defined(HARDWARE_TOUCH) + if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { + touchPanelInit(); + } +#endif + for (uint8_t i = 0; i < NUM_ANALOGS; i++) { coord_t y = MENU_HEADER_HEIGHT + 1 + (i / 2) * FH; uint8_t x = i & 1 ? LCD_W / 2 + 10 : LEFT_NAME_COLUMN; @@ -48,9 +57,24 @@ bool menuRadioDiagAnalogs(event_t event) #endif } -#if (NUM_PWMSTICKS > 0) && !defined(SIMU) +#if (NUM_PWMSTICKS > 0) || defined(SIMU) lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 8 * FH, STICKS_PWM_ENABLED() ? "Sticks: PWM" : "Sticks: ANA"); #endif +#if defined(HARDWARE_TOUCH) + if (touchGT911Flag) { + lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, "Touch panel:"); + } + + if (touchPanelEvent) { + uint8_t tmp,mode = 0; + gt911ReadRegister(GT911_READ_XY_REG,&mode,1); //read status + lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); + lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, ", "); + lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); + gt911WriteRegister(GT911_CLEARBUF_REG, &tmp, 1); + } +#endif + return true; } diff --git a/radio/src/gui/480x272/radio_diagtouch.cpp b/radio/src/gui/480x272/radio_diagtouch.cpp deleted file mode 100644 index 3c9834265..000000000 --- a/radio/src/gui/480x272/radio_diagtouch.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -#include "tp_gt911.h" - -bool menuRadioDiagTouch(event_t event) -{ - static bool touchAvailable = false; - - SIMPLE_SUBMENU(STR_MENU_RADIO_TOUCH, ICON_MODEL_SETUP, 1); - - if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { - touchAvailable = touchPanelInit(); - touchEventFlag = 0; - } - else if (menuEvent) { - //touchDeInit(); - return false; - } - - if (touchAvailable) { - lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_EXIT, CENTERED); - } - else { - lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_NOTFOUND, CENTERED); - } - - if (touchEventFlag) { - uint8_t tmp,mode = 0; - GT911_RD_Reg(GT911_READ_XY_REG,&mode,1); //read status - tmp=mode&0x0f; - if((mode&0x80) && (tmp>0)) { - touchPanelDeInit(); - popMenu(); - } - GT911_WR_Reg(GT911_CLEARBUF_REG, &tmp, 1); - } - return true; -} diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index f9cefdc9a..e50dcae33 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -131,12 +131,6 @@ void onHardwareAntennaSwitchConfirm(const char * result) #define SPORT_POWER_ROWS #endif -#if defined(HARDWARE_TOUCH) - #define DEBUG_ROW 2 -#else - #define DEBUG_ROW 1 -#endif - bool menuRadioHardware(event_t event) { MENU(STR_HARDWARE, RADIO_ICONS, menuTabGeneral, MENU_RADIO_HARDWARE, ITEM_RADIO_HARDWARE_MAX, { @@ -168,7 +162,7 @@ bool menuRadioHardware(event_t event) 0, /* ADC filter */ READONLY_ROW /* RAS */, SPORT_POWER_ROWS - DEBUG_ROW, /* Debug */ + 1, /* Debug */ }); if (menuEvent) { @@ -417,9 +411,6 @@ bool menuRadioHardware(event_t event) lcdDrawText(MENUS_MARGIN_LEFT, y, STR_DEBUG); lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0); lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 1 ? attr : 0); -#if defined(HARDWARE_TOUCH) - lcdDrawText(lcdNextPos + 10, y, STR_TOUCH_BTN, menuHorizontalPosition == 2 ? attr : 0); -#endif if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { switch (menuHorizontalPosition) { case 0: @@ -428,11 +419,6 @@ bool menuRadioHardware(event_t event) case 1: pushMenu(menuRadioDiagKeys); break; -#if defined(HARDWARE_TOUCH) - case 2: - pushMenu(menuRadioDiagTouch); - break; -#endif } } break; diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 910b43f5f..ba4052d48 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -212,7 +212,6 @@ if(HARDWARE_TOUCH) set(TARGET_SRC ${TARGET_SRC} tp_gt911.cpp ) - set(GUI_SRC ${GUI_SRC} radio_diagtouch.cpp) add_definitions(-DHARDWARE_TOUCH) endif() diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 87e6e0ce2..d0982788a 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -21,8 +21,9 @@ #include "tp_gt911.h" uint8_t touchGT911Flag = 0; -uint8_t TOUCH_SCAN_MODE = 0; -uint8_t touchEventFlag = 0; +uint8_t touchPanelEvent = 0; +struct TouchData touchData; +struct TouchState touchState; void GT911_INT_Change(void) { @@ -46,8 +47,8 @@ uint8_t GT911_Send_Cfg(uint8_t mode) buf[0] += GT911_Cfg[i];//check sum buf[0] = (~buf[0]) + 1; - GT911_WR_Reg(GT_CFGS_REG, (uint8_t *) GT911_Cfg, sizeof(GT911_Cfg));// - GT911_WR_Reg(GT_CHECK_REG, buf, 2);//write checksum + gt911WriteRegister(GT_CFGS_REG, (uint8_t *) GT911_Cfg, sizeof(GT911_Cfg));// + gt911WriteRegister(GT_CHECK_REG, buf, 2);//write checksum return 0; } @@ -266,7 +267,7 @@ uint8_t I2C_Read_Byte(unsigned char ack) return receive; } -uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len) +uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len) { { uint8_t i; @@ -290,7 +291,7 @@ uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len) } } -void GT911_RD_Reg(u16 reg, uint8_t * buf, uint8_t len) +void gt911ReadRegister(u16 reg, uint8_t * buf, uint8_t len) { uint8_t i; @@ -341,14 +342,14 @@ bool touchPanelInit(void) delay_ms(50); TRACE("Reading Touch registry"); - GT911_RD_Reg(GT_PID_REG, tmp, 4); + gt911ReadRegister(GT_PID_REG, tmp, 4); if (strcmp((char *) tmp, "911") == 0) //ID==9147 { TRACE("GT911 chip detected"); tmp[0] = 0X02; - GT911_WR_Reg(GT_CTRL_REG, tmp, 1); - GT911_RD_Reg(GT_CFGS_REG, tmp, 1); + gt911WriteRegister(GT_CTRL_REG, tmp, 1); + gt911ReadRegister(GT_CFGS_REG, tmp, 1); if (tmp[0] < 0X69)//ver { @@ -358,7 +359,7 @@ bool touchPanelInit(void) delay_ms(10); tmp[0] = 0X00; - GT911_WR_Reg(GT_CTRL_REG, tmp, 1);//end reset + gt911WriteRegister(GT_CTRL_REG, tmp, 1);//end reset touchGT911Flag = true; TOUCH_AF_ExtiConfig(); @@ -369,11 +370,57 @@ bool touchPanelInit(void) return false; } +void touchPanelRead() +{ + uint8_t state = 0; + gt911ReadRegister(GT911_READ_XY_REG, &state, 1); + + touchPanelEvent = false; + + if ((state & 0x80u) == 0x00) { + // not ready + return; + } + + uint8_t pointsCount = (state & 0x0Fu); + + if (pointsCount > 0 && pointsCount < GT911_MAX_TOUCH_POINTS) { + gt911ReadRegister(GT911_READ_XY_REG + 1, touchData.data, pointsCount * sizeof(TouchPoint)); + if (touchData.pointsCount == 0) { + touchState.event = TE_DOWN; + touchState.startX = touchState.x = touchData.points[0].x; + touchState.startY = touchState.y = touchData.points[0].y; + } + else { + touchState.deltaX = touchData.points[0].x - touchState.x; + touchState.deltaY = touchData.points[0].y - touchState.y; + if (touchState.event == TE_SLIDE || abs(touchState.deltaX) >= SLIDE_RANGE || abs(touchState.deltaY) >= SLIDE_RANGE) { + touchState.event = TE_SLIDE; + touchState.x = touchData.points[0].x; + touchState.y = touchData.points[0].y; + } + } + touchData.pointsCount = pointsCount; + } + else { + if (touchData.pointsCount > 0) { + touchData.pointsCount = 0; + if (touchState.event == TE_SLIDE) + touchState.event = TE_SLIDE_END; + else + touchState.event = TE_UP; + } + } + + uint8_t zero = 0; + gt911WriteRegister(GT911_READ_XY_REG, &zero, 1); +} + extern "C" void TOUCH_INT_EXTI_IRQHandler1(void) { if (EXTI_GetITStatus(TOUCH_INT_EXTI_LINE1) != RESET) { TRACE("TI"); - touchEventFlag = 1; + touchPanelEvent = 1; EXTI_ClearITPendingBit(TOUCH_INT_EXTI_LINE1); } } diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 64dfac5d6..294de897e 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -22,6 +22,7 @@ #define _FT5X06_H_ #include "opentx.h" +#include "touch.h" #define HAS_TOUCH_PANEL() touchGT911Flag == true #define TOUCH_INT_STATUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) @@ -31,10 +32,10 @@ void touchPanelDeInit(); extern uint8_t touchGT911Flag; extern uint8_t TOUCH_SCAN_MODE; -extern uint8_t touchEventFlag; +extern uint8_t touchPanelEvent; -uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len); -void GT911_RD_Reg(uint16_t reg, uint8_t * buf, uint8_t len); +uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len); +void gt911ReadRegister(uint16_t reg, uint8_t * buf, uint8_t len); //GT911 param table @@ -97,16 +98,28 @@ const uint8_t GT911_Cfg[]= // #define GT911_CONFIG_CHECKSUM_REG 0x80FF #define GT911_FIRMWARE_VERSION_REG 0x8144 +#define GT911_MAX_TOUCH_POINTS 5 -typedef struct{ +PACK(typedef struct +{ + uint8_t track; uint16_t x; uint16_t y; -}POINT; + uint16_t size; + uint8_t reserved; +}) TouchPoint; -typedef struct{ - uint16_t cnt; - POINT points[5]; -}GT911_POINT_DATA; +PACK(struct TouchData +{ + uint8_t pointsCount; + union + { + TouchPoint points[GT911_MAX_TOUCH_POINTS]; + uint8_t data[GT911_MAX_TOUCH_POINTS * sizeof(TouchPoint)]; + }; +}); + +extern struct TouchData touchData; #define TPRST_LOW() do { TOUCH_RST_GPIO->BSRRH = TOUCH_RST_GPIO_PIN; } while(0) #define TPRST_HIGH() do { TOUCH_RST_GPIO->BSRRL = TOUCH_RST_GPIO_PIN; } while(0) diff --git a/radio/src/touch.h b/radio/src/touch.h new file mode 100644 index 000000000..fbb70e3fe --- /dev/null +++ b/radio/src/touch.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _TOUCH_H_ +#define _TOUCH_H_ + +enum TouchEvent +{ + TE_NONE, + TE_DOWN, + TE_UP, + TE_SLIDE, + TE_SLIDE_END +}; + +struct TouchState +{ + unsigned char event; + short x; + short y; + short startX; + short startY; + short deltaX; + short deltaY; + short lastDeltaX; + short lastDeltaY; +}; + +constexpr uint8_t SLIDE_RANGE = 6; + +extern TouchState touchState; + +#endif // _TOUCH_H_ \ No newline at end of file From 541b5e8f3ccc8fe50ef35503da7f434430879564 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 13:43:51 +0200 Subject: [PATCH 26/57] Fixes --- radio/src/gui/480x272/radio_diaganas.cpp | 6 ++---- radio/src/targets/horus/tp_gt911.h | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 905987fef..a5bd127b6 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -62,17 +62,15 @@ bool menuRadioDiagAnalogs(event_t event) #endif #if defined(HARDWARE_TOUCH) - if (touchGT911Flag) { + if (!touchGT911Flag) { lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, "Touch panel:"); } if (touchPanelEvent) { - uint8_t tmp,mode = 0; - gt911ReadRegister(GT911_READ_XY_REG,&mode,1); //read status + touchPanelRead(); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); - gt911WriteRegister(GT911_CLEARBUF_REG, &tmp, 1); } #endif diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 294de897e..fbccc4f24 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -36,7 +36,7 @@ extern uint8_t touchPanelEvent; uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len); void gt911ReadRegister(uint16_t reg, uint8_t * buf, uint8_t len); - +void touchPanelRead(); //GT911 param table const uint8_t GT911_Cfg[]= // From 8ff59c092835ed1c3849f4bec381e9f53cc3ebaf Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 13:45:58 +0200 Subject: [PATCH 27/57] Fixes --- radio/src/gui/480x272/radio_diaganas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index a5bd127b6..7cf566cdc 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -62,7 +62,7 @@ bool menuRadioDiagAnalogs(event_t event) #endif #if defined(HARDWARE_TOUCH) - if (!touchGT911Flag) { + if (touchGT911Flag) { lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, "Touch panel:"); } From 327f53efa41ca6b266babda41c2a56dceac2d7b7 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 13:46:47 +0200 Subject: [PATCH 28/57] Fixes --- radio/src/gui/480x272/radio_diaganas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 7cf566cdc..c92cd3ebb 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -69,7 +69,7 @@ bool menuRadioDiagAnalogs(event_t event) if (touchPanelEvent) { touchPanelRead(); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); - lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, ", "); + lcdDrawText(lcdNextPos, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); } #endif From 09bf8ecfa91e8521e4baef8fb9e0618a3bcdedc2 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 13:59:49 +0200 Subject: [PATCH 29/57] Stop panel on exit --- radio/src/gui/480x272/radio_diaganas.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index c92cd3ebb..b632bf00c 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -35,6 +35,10 @@ bool menuRadioDiagAnalogs(event_t event) if (event == EVT_ENTRY || event == EVT_ENTRY_UP) { touchPanelInit(); } + else if (menuEvent) { + touchPanelDeInit(); + return false; + } #endif for (uint8_t i = 0; i < NUM_ANALOGS; i++) { @@ -62,7 +66,7 @@ bool menuRadioDiagAnalogs(event_t event) #endif #if defined(HARDWARE_TOUCH) - if (touchGT911Flag) { + if (HAS_TOUCH_PANEL()) { lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, "Touch panel:"); } From 30021d6dc88f9ff93e59960124d20eb478107e65 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 14:34:13 +0200 Subject: [PATCH 30/57] default TX16S to Darkblue --- radio/src/opentx.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index ea70e0b7b..fd9c8eaef 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -322,7 +322,11 @@ void generalDefault() #endif #if defined(COLORLCD) +#if defined(RADIO_TX16S) + strcpy(g_eeGeneral.themeName, "Darkblue"); +#else strcpy(g_eeGeneral.themeName, theme->getName()); +#endif theme->init(); #endif From 0bf771d4bc56b5243bc2cde930d4dea652e975fc Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 14:59:51 +0200 Subject: [PATCH 31/57] Some init doc --- radio/src/targets/horus/tp_gt911.h | 42 ++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index fbccc4f24..ac57b6c0d 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -41,17 +41,37 @@ void touchPanelRead(); //GT911 param table const uint8_t GT911_Cfg[]= // { - 0x69, //ver 0x68 - 0xE0,0x01, //x 480 480X272 - 0x10,0x01, //y 272 - 0x05, //pass max count - 0x38, //bit4= xy change Int mode - 0x00, - 0x02, //press ct - 0x48, - 0x28,0x0D,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x18,0x1A,0x1E,0x14,0x8A,0x2A,0x0C, - 0x30,0x38,0x31,0x0D,0x00,0x00,0x02,0xB9,0x03,0x2D, + 0x69, // ver 0x68 + 0xE0,0x01, // 0x8049 X output map : x 480 + 0x10,0x01, // 0x8040 Y ouptut max : y 272 + 0x05, // 0x804C Touch number : GT911_MAX_TOUCH_POINTS + 0x38, // 0x804D Module switch 1 : bit4= xy change Int mode + 0x00, // 0x804E Module switch 2 + 0x02, // 0x804F Shake_Count + 0x48, // 0x8050 Filter + 0x28, // 0x8051 Larger touch + 0x0D, // 0x8052 Noise reduction + 0x50, // 0x8053 Screen touch level + 0x32, // 0x8054 Screen touch leave + 0x03, // 0x8055 Low power control + 0x05, // 0x8056 Refresh rate + 0x00, // 0x8057 X threshold + 0x00, // 0x8058 Y threshold + 0x00, // 0x8059 Reserved + 0x00, // 0x805A Reserved + 0x00, // 0x805B Space (top, bottom) + 0x00, // 0x805B Space (left, right) + 0x00, // 0x805D Mini filter + 0x18, // 0x805E Strech R0 + 0x1A, // 0x805F Strech R1 + 0x1E, // 0x8060 Strech R2 + 0x14, // 0x8061 Strech RM + 0x8A, // 0x8062 Drv groupA num + 0x2A, // 0x8063 Drv groupB num + 0x0C, // 0x8064 Sensor num + 0x30, // 0x8065 FreqA factor + 0x38, // 0x8065 FreqB factor + 0x31,0x0D,0x00,0x00,0x02,0xB9,0x03,0x2D, 0x00,0x00,0x00,0x00,0x00,0x03,0x64,0x32,0x00,0x00, 0x00,0x1D,0x41,0x94,0xC5,0x02,0x07,0x00,0x00,0x04, 0xA5,0x1F,0x00,0x94,0x25,0x00,0x88,0x2B,0x00,0x7D, From 9f6f683d44f5bced894fb110636635203cc6759f Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 15:25:41 +0200 Subject: [PATCH 32/57] Some init doc --- radio/src/targets/horus/tp_gt911.h | 33 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index ac57b6c0d..4ea113514 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -43,7 +43,7 @@ const uint8_t GT911_Cfg[]= // { 0x69, // ver 0x68 0xE0,0x01, // 0x8049 X output map : x 480 - 0x10,0x01, // 0x8040 Y ouptut max : y 272 + 0x10,0x01, // 0x804A Y ouptut max : y 272 0x05, // 0x804C Touch number : GT911_MAX_TOUCH_POINTS 0x38, // 0x804D Module switch 1 : bit4= xy change Int mode 0x00, // 0x804E Module switch 2 @@ -60,7 +60,7 @@ const uint8_t GT911_Cfg[]= // 0x00, // 0x8059 Reserved 0x00, // 0x805A Reserved 0x00, // 0x805B Space (top, bottom) - 0x00, // 0x805B Space (left, right) + 0x00, // 0x805C Space (left, right) 0x00, // 0x805D Mini filter 0x18, // 0x805E Strech R0 0x1A, // 0x805F Strech R1 @@ -70,10 +70,31 @@ const uint8_t GT911_Cfg[]= // 0x2A, // 0x8063 Drv groupB num 0x0C, // 0x8064 Sensor num 0x30, // 0x8065 FreqA factor - 0x38, // 0x8065 FreqB factor - 0x31,0x0D,0x00,0x00,0x02,0xB9,0x03,0x2D, - 0x00,0x00,0x00,0x00,0x00,0x03,0x64,0x32,0x00,0x00, - 0x00,0x1D,0x41,0x94,0xC5,0x02,0x07,0x00,0x00,0x04, + 0x38, // 0x8066 FreqB factor + 0x31,0x0D, // 0x8067 Panel bit freq + 0x00,0x00, // 0x8069 Reserved + 0x02, // 0x806B Panel tx gain + 0xB9, // 0x806C Panel rx gain + 0x03, // 0x806D Panel dump shift + 0x2D, // 0x806E Drv frame control + 0x00, // 0x806F Charging level up + 0x00, // 0x8070 Module switch 3 + 0x00, // 0x8071 Gesture distance + 0x00, // 0x8072 Gesture long press time + 0x00, // 0x8073 X/Y slope adjust + 0x03, // 0x8074 Gesture control + 0x64, // 0x8075 Gesture switch 1 + 0x32, // 0x8076 Gesture switch 2 + 0x00, // 0x8077 Gesture refresh rate + 0x00, // 0x8078 Gesture touch level + 0x00, // 0x8079 New green wake up level + 0x1D, // 0x807A Freq hopping start + 0x41, // 0x807B Freq hopping end + 0x94, // 0x807C Noise detect time + 0xC5, // 0x807D Hopping flag + 0x02, // 0x807E Hopping flag + 0x07, // 0x807F Noise threshold + 0x00,0x00,0x04, 0xA5,0x1F,0x00,0x94,0x25,0x00,0x88,0x2B,0x00,0x7D, 0x33,0x00,0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, From 650acb6c8b603f01f47ddf51517525a9ef0753ee Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 15:48:26 +0200 Subject: [PATCH 33/57] Fix --- radio/src/gui/gui_common.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 07a093fdf..6a349aa6d 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -747,6 +747,11 @@ bool isTrainerModeAvailable(int mode) return false; #endif +#if !defined(BLUETOOTH) + if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH) + return false; +#endif + #if defined(PCBXLITE) && !defined(PCBXLITES) if (mode == TRAINER_MODE_MASTER_TRAINER_JACK || mode == TRAINER_MODE_SLAVE) return false; From a1a266093d0b29b7cbf100c1ee416f42d8e93639 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sat, 25 Apr 2020 15:52:30 +0200 Subject: [PATCH 34/57] improve fix --- radio/src/gui/gui_common.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 6a349aa6d..498c63a89 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -739,19 +739,14 @@ bool isTrainerModeAvailable(int mode) return g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER; #endif -#if defined(PCBX9E) +#if !defined(BLUETOOTH) || defined(PCBX9E) if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH) return false; -#elif defined(BLUETOOTH) +#else if (g_eeGeneral.bluetoothMode != BLUETOOTH_TRAINER && (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH)) return false; #endif -#if !defined(BLUETOOTH) - if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH) - return false; -#endif - #if defined(PCBXLITE) && !defined(PCBXLITES) if (mode == TRAINER_MODE_MASTER_TRAINER_JACK || mode == TRAINER_MODE_SLAVE) return false; From e68bd31f4e3602305100735b3b61a8f42469a8d1 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 09:02:05 +0200 Subject: [PATCH 35/57] Continued --- radio/src/targets/horus/tp_gt911.cpp | 5 ++-- radio/src/targets/horus/tp_gt911.h | 34 ++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index d0982788a..39fe352f5 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -351,9 +351,10 @@ bool touchPanelInit(void) gt911WriteRegister(GT_CTRL_REG, tmp, 1); gt911ReadRegister(GT_CFGS_REG, tmp, 1); + TRACE("Chip config Ver:%x\r\n",tmp[0]); if (tmp[0] < 0X69)//ver { - TRACE("Default Ver:%x\r\n",tmp[0]); + TRACE("Sending new config %d", GT911_CFG_NUMER); GT911_Send_Cfg(1); } @@ -384,7 +385,7 @@ void touchPanelRead() uint8_t pointsCount = (state & 0x0Fu); - if (pointsCount > 0 && pointsCount < GT911_MAX_TOUCH_POINTS) { + if (pointsCount > 0 && pointsCount < GT911_MAX_TP) { gt911ReadRegister(GT911_READ_XY_REG + 1, touchData.data, pointsCount * sizeof(TouchPoint)); if (touchData.pointsCount == 0) { touchState.event = TE_DOWN; diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 4ea113514..721db6a24 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -38,13 +38,16 @@ uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len); void gt911ReadRegister(uint16_t reg, uint8_t * buf, uint8_t len); void touchPanelRead(); +#define GT911_MAX_TP 5 +#define GT911_CFG_NUMER 0x69 + //GT911 param table const uint8_t GT911_Cfg[]= // { - 0x69, // ver 0x68 - 0xE0,0x01, // 0x8049 X output map : x 480 + GT911_CFG_NUMER, // 0x8047 Config version + 0xE0,0x01, // 0x8048 X output map : x 480 0x10,0x01, // 0x804A Y ouptut max : y 272 - 0x05, // 0x804C Touch number : GT911_MAX_TOUCH_POINTS + GT911_MAX_TP, // 0x804C Touch number : GT911_MAX_TP 0x38, // 0x804D Module switch 1 : bit4= xy change Int mode 0x00, // 0x804E Module switch 2 0x02, // 0x804F Shake_Count @@ -94,9 +97,22 @@ const uint8_t GT911_Cfg[]= // 0xC5, // 0x807D Hopping flag 0x02, // 0x807E Hopping flag 0x07, // 0x807F Noise threshold - 0x00,0x00,0x04, - 0xA5,0x1F,0x00,0x94,0x25,0x00,0x88,0x2B,0x00,0x7D, - 0x33,0x00,0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00, + 0x00, // 0x8080 Nois min threshold old + 0x00, // 0x8081 Reserved + 0x04, // 0x8082 Hopping sensor group + 0xA5, // 0x8083 Hopping Seg1 normalize + 0x1F, // 0x8084 Hopping Seg1 factor + 0x00, // 0x8085 Main clock adjust + 0x94, // 0x8086 Hopping Seg2 normalize + 0x25, // 0x8087 Hopping Seg2 factor + 0x00, // 0x8088 Reserved + 0x88, // 0x8089 Hopping Seg3 normalize + 0x2B, // 0x808A Hopping Seg3 factor + 0x00, // 0x808B Reserved + 0x7D, // 0x808C Hopping Seg4 normalize + 0x33, // 0x808D Hopping Seg4 factor + 0x00, // 0x808E Reserved + 0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, @@ -139,8 +155,6 @@ const uint8_t GT911_Cfg[]= // #define GT911_CONFIG_CHECKSUM_REG 0x80FF #define GT911_FIRMWARE_VERSION_REG 0x8144 -#define GT911_MAX_TOUCH_POINTS 5 - PACK(typedef struct { uint8_t track; @@ -155,8 +169,8 @@ PACK(struct TouchData uint8_t pointsCount; union { - TouchPoint points[GT911_MAX_TOUCH_POINTS]; - uint8_t data[GT911_MAX_TOUCH_POINTS * sizeof(TouchPoint)]; + TouchPoint points[GT911_MAX_TP]; + uint8_t data[GT911_MAX_TP * sizeof(TouchPoint)]; }; }); From d0854f3489e67ca429e2ac2dbf127d470d129097 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 10:50:06 +0200 Subject: [PATCH 36/57] Continued --- radio/src/targets/horus/tp_gt911.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 39fe352f5..1235aebcd 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -352,7 +352,7 @@ bool touchPanelInit(void) gt911ReadRegister(GT_CFGS_REG, tmp, 1); TRACE("Chip config Ver:%x\r\n",tmp[0]); - if (tmp[0] < 0X69)//ver + if (tmp[0] < GT911_CFG_NUMER) //Config ver { TRACE("Sending new config %d", GT911_CFG_NUMER); GT911_Send_Cfg(1); From 13723ad9d786347a85c3cdbe9280b2079b0485c7 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 11:11:43 +0200 Subject: [PATCH 37/57] Fix wobble ... --- radio/src/targets/horus/bootloader/boot_menu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/targets/horus/bootloader/boot_menu.cpp b/radio/src/targets/horus/bootloader/boot_menu.cpp index 9e6ceaf47..d64f2c7f8 100644 --- a/radio/src/targets/horus/bootloader/boot_menu.cpp +++ b/radio/src/targets/horus/bootloader/boot_menu.cpp @@ -64,7 +64,7 @@ static void bootloaderDrawFooter() void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) { // clear screen - lcdDrawSolidFilledRect(0, 0, LCD_W-1, LCD_H-1, TEXT_BGCOLOR); + lcdDrawSolidFilledRect(0, 0, LCD_W, LCD_H, TEXT_BGCOLOR); if (st == ST_START) { From 2695b8b785db359b9a2f3e8345628fc3593ba15e Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 16:29:35 +0200 Subject: [PATCH 38/57] Default to AETR --- radio/src/opentx.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index fd9c8eaef..5f89d258b 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -295,6 +295,8 @@ void generalDefault() #if defined(FRSKY_RELEASE) g_eeGeneral.templateSetup = 17; /* TAER */ +#elif defined(RADIO_TX16S) //TODO : is RADIO_FAMILLY_T16 better ? + g_eeGeneral.templateSetup = 21; /* AETR to match bundled multi */ #endif g_eeGeneral.backlightMode = e_backlight_mode_all; From 6c09828912a8b510823512893da1207519c8ff64 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 17:26:41 +0200 Subject: [PATCH 39/57] Finish touch config table --- radio/src/targets/horus/tp_gt911.h | 126 ++++++++++++++++++++++++++--- 1 file changed, 113 insertions(+), 13 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 721db6a24..32fdd8388 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -42,7 +42,7 @@ void touchPanelRead(); #define GT911_CFG_NUMER 0x69 //GT911 param table -const uint8_t GT911_Cfg[]= // +const uint8_t GT911_Cfg[]= { GT911_CFG_NUMER, // 0x8047 Config version 0xE0,0x01, // 0x8048 X output map : x 480 @@ -112,18 +112,118 @@ const uint8_t GT911_Cfg[]= // 0x7D, // 0x808C Hopping Seg4 normalize 0x33, // 0x808D Hopping Seg4 factor 0x00, // 0x808E Reserved - 0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x18,0x16,0x14,0x12,0x10,0x0E,0x0C,0x0A, - 0x08,0x06,0x04,0x02,0xFF,0xFF,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C, - 0x18,0x16,0x13,0x12,0x10,0x0F,0x0A,0x08,0x06,0x04, - 0x02,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, + 0x74, // 0x808F Hopping Seg5 normalize + 0x3C, // 0x8090 Hopping Seg5 factor + 0x00, // 0x8091 Reserved + 0x74, // 0x8092 Hopping Seg6 normalize + 0x00, // 0x8093 Key1 + 0x00, // 0x8094 Key2 + 0x00, // 0x8095 Key3 + 0x00, // 0x8096 Key4 + 0x00, // 0x8097 Key area + 0x00, // 0x8098 Key touch level + 0x00, // 0x8099 Key leave level + 0x00, // 0x809A Key sens + 0x00, // 0x809B Key sens + 0x00, // 0x809C Key restrain + 0x00, // 0x809D Key restrain time + 0x00, // 0x809E Large gesture touch + 0x00, // 0x809F Reserved + 0x00, // 0x80A0 Reserved + 0x00, // 0x80A1 Hotknot noise map + 0x00, // 0x80A2 Link threshold + 0x00, // 0x80A3 Pxy threshold + 0x00, // 0x80A4 GHot dump shift + 0x00, // 0x80A5 GHot rx gain + 0x00, // 0x80A6 Freg gain + 0x00, // 0x80A7 Freg gain 1 + 0x00, // 0x80A8 Freg gain 2 + 0x00, // 0x80A9 Freg gain 3 + 0x00, // 0x80AA Reserved + 0x00, // 0x80AB Reserved + 0x00, // 0x80AC Reserved + 0x00, // 0x80AD Reserved + 0x00, // 0x80AE Reserved + 0x00, // 0x80AF Reserved + 0x00, // 0x80B0 Reserved + 0x00, // 0x80B1 Reserved + 0x00, // 0x80B2 Reserved + 0x00, // 0x80B3 Combine dis + 0x00, // 0x80B4 Split set + 0x00, // 0x80B5 Reserved + 0x00, // 0x80B6 Reserved + 0x18, // 0x80B7 Sensor CH0 + 0x16, // 0x80B8 Sensor CH1 + 0x14, // 0x80B9 Sensor CH2 + 0x12, // 0x80BA Sensor CH3 + 0x10, // 0x80BB Sensor CH4 + 0x0E, // 0x80BC Sensor CH5 + 0x0C, // 0x80BD Sensor CH6 + 0x0A, // 0x80BE Sensor CH7 + 0x08, // 0x80BF Sensor CH8 + 0x06, // 0x80C0 Sensor CH9 + 0x04, // 0x80C1 Sensor CH10 + 0x02, // 0x80C2 Sensor CH11 + 0xFF, // 0x80C3 Sensor CH12 + 0xFF, // 0x80C4 Sensor CH13 + 0x00, // 0x80C5 Reserved + 0x00, // 0x80C6 Reserved + 0x00, // 0x80C7 Reserved + 0x00, // 0x80C8 Reserved + 0x00, // 0x80C9 Reserved + 0x00, // 0x80CA Reserved + 0x00, // 0x80CB Reserved + 0x00, // 0x80CC Reserved + 0x00, // 0x80CD Reserved + 0x00, // 0x80CE Reserved + 0x00, // 0x80CF Reserved + 0x00, // 0x80D0 Reserved + 0x00, // 0x80D1 Reserved + 0x00, // 0x80D2 Reserved + 0x00, // 0x80D3 Reserved + 0x00, // 0x80D4 Reserved + 0x24, // 0x80D5 Driver CH0 + 0x22, // 0x80D6 Driver CH1 + 0x21, // 0x80D7 Driver CH2 + 0x20, // 0x80D8 Driver CH3 + 0x1F, // 0x80D9 Driver CH4 + 0x1E, // 0x80DA Driver CH5 + 0x1D, // 0x80DB Driver CH6 + 0x1C, // 0x80DC Driver CH7 + 0x18, // 0x80DD Driver CH8 + 0x16, // 0x80DE Driver CH9 + 0x13, // 0x80DF Driver CH10 + 0x12, // 0x80E0 Driver CH11 + 0x10, // 0x80E1 Driver CH12 + 0x0F, // 0x80E2 Driver CH13 + 0x0A, // 0x80E3 Driver CH14 + 0x08, // 0x80E4 Driver CH15 + 0x06, // 0x80E5 Driver CH16 + 0x04, // 0x80E6 Driver CH17 + 0x02, // 0x80E7 Driver CH18 + 0x00, // 0x80E8 Driver CH19 + 0xFF, // 0x80E9 Driver CH20 + 0xFF, // 0x80EA Driver CH21 + 0xFF, // 0x80EB Driver CH22 + 0xFF, // 0x80EC Driver CH23 + 0xFF, // 0x80ED Driver CH24 + 0xFF, // 0x80EE Driver CH25 + 0x00, // 0x80EF Reserved + 0x00, // 0x80F0 Reserved + 0x00, // 0x80F1 Reserved + 0x00, // 0x80F2 Reserved + 0x00, // 0x80F3 Reserved + 0x00, // 0x80F4 Reserved + 0x00, // 0x80F5 Reserved + 0x00, // 0x80F6 Reserved + 0x00, // 0x80F7 Reserved + 0x00, // 0x80F8 Reserved + 0x00, // 0x80F9 Reserved + 0x00, // 0x80FA Reserved + 0x00, // 0x80FB Reserved + 0x00, // 0x80FC Reserved + 0x00, // 0x80FD Reserved + 0x00, // 0x80FE Reserved }; //I2C From 2abafbede64c78a2a986b2e8e378db123b8b496c Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sun, 26 Apr 2020 18:06:54 +0200 Subject: [PATCH 40/57] Fix battery voltage --- radio/src/targets/horus/board.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 2310c296b..15b14ac2f 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -241,8 +241,14 @@ void boardOff() pwrOff(); } +#if defined (RADIO_TX16S) + #define BATTERY_DIVIDER 1495 +#else + #define BATTERY_DIVIDER 1629 +#endif + uint16_t getBatteryVoltage() { int32_t instant_vbat = anaIn(TX_VOLTAGE); // using filtered ADC value on purpose - return (uint16_t)((instant_vbat * (1000 + g_eeGeneral.txVoltageCalibration)) / 1629); + return (uint16_t)((instant_vbat * (1000 + g_eeGeneral.txVoltageCalibration)) / BATTERY_DIVIDER); } From 8f8ef313bbe5eec82b973e9de4da30abb020d576 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sun, 26 Apr 2020 18:23:48 +0200 Subject: [PATCH 41/57] VRef is 3.3V --- radio/src/targets/horus/hal.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index f22509c89..063daae68 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -320,7 +320,9 @@ #define ADC_DMA_Stream DMA2_Stream0 #define ADC_SET_DMA_FLAGS() ADC_DMA->LIFCR = (DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0) #define ADC_TRANSFER_COMPLETE() (ADC_DMA->LISR & DMA_LISR_TCIF0) - #if defined(RADIO_FAMILY_T16) + #if defined(RADIO_TX16S) + #define ADC_VREF_PREC2 330 + #elif defined(RADIO_T16) #define ADC_VREF_PREC2 300 #else #define ADC_VREF_PREC2 250 From 71e13064daaf8cf067b753e91b098e873738aaa6 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 26 Apr 2020 19:18:35 +0200 Subject: [PATCH 42/57] fix inconsistent Darkblue theme color --- radio/src/gui/480x272/themes/darkblue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/480x272/themes/darkblue.cpp b/radio/src/gui/480x272/themes/darkblue.cpp index 0b8e21306..bf244169e 100644 --- a/radio/src/gui/480x272/themes/darkblue.cpp +++ b/radio/src/gui/480x272/themes/darkblue.cpp @@ -51,7 +51,7 @@ class DarkblueTheme: public Theme lcdColorTable[TRIM_BGCOLOR_INDEX] = RGB(32, 34, 42); lcdColorTable[TRIM_SHADOW_COLOR_INDEX] = RGB(100, 100, 100); lcdColorTable[MAINVIEW_PANES_COLOR_INDEX] = GREY; - lcdColorTable[MAINVIEW_GRAPHICS_COLOR_INDEX] = WHITE; + lcdColorTable[MAINVIEW_GRAPHICS_COLOR_INDEX] = BLUE; lcdColorTable[HEADER_BGCOLOR_INDEX] = BLACK; lcdColorTable[HEADER_ICON_BGCOLOR_INDEX] = BLACK; lcdColorTable[HEADER_CURRENT_BGCOLOR_INDEX] = RGB(10, 78, 121); From 251fc3b114e3206263e6df6d0409b7f30f3285d3 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 27 Apr 2020 07:56:39 +0200 Subject: [PATCH 43/57] Cleanup --- radio/src/targets/horus/tp_gt911.cpp | 14 -------------- radio/src/targets/horus/tp_gt911.h | 2 -- 2 files changed, 16 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index 1235aebcd..ffad5cc48 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -55,15 +55,8 @@ uint8_t GT911_Send_Cfg(uint8_t mode) static void I2C_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; - //I2C_InitTypeDef I2C_InitStructure; - - /* GPIO Peripheral clock enable */ RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); - //RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); - - //PB6: I2C1_SCL PB7: I2C1_SDA GPIO_InitStructure.GPIO_Pin = I2C_SCL_GPIO_PIN | I2C_SDA_GPIO_PIN; - //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; @@ -140,9 +133,6 @@ static void TOUCH_AF_GPIOConfig(void) void SDA_IN(void) { GPIO_InitTypeDef GPIO_InitStructure; - //RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOB, ENABLE); - //RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); - GPIO_InitStructure.GPIO_Pin = I2C_SDA_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; @@ -152,9 +142,6 @@ void SDA_IN(void) void SDA_OUT(void) { GPIO_InitTypeDef GPIO_InitStructure; - //RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOB, ENABLE); - //RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE); - GPIO_InitStructure.GPIO_Pin = I2C_SDA_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; @@ -295,7 +282,6 @@ void gt911ReadRegister(u16 reg, uint8_t * buf, uint8_t len) { uint8_t i; - //I2C_GenerateSTART(I2C1, ENABLE); I2C_Start(); I2C_Send_Byte(GT_CMD_WR); //send addr I2C_Wait_Ack(); diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index 32fdd8388..aa35d468f 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -25,13 +25,11 @@ #include "touch.h" #define HAS_TOUCH_PANEL() touchGT911Flag == true -#define TOUCH_INT_STATUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN)) bool touchPanelInit(); void touchPanelDeInit(); extern uint8_t touchGT911Flag; -extern uint8_t TOUCH_SCAN_MODE; extern uint8_t touchPanelEvent; uint8_t gt911WriteRegister(uint16_t reg, uint8_t * buf, uint8_t len); From 50508ba35de8aac96062f5146115f944a1f40d28 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 08:28:50 +0200 Subject: [PATCH 44/57] Fix touch panel on TX16S --- radio/src/targets/horus/tp_gt911.h | 372 +++++++++++++++-------------- 1 file changed, 188 insertions(+), 184 deletions(-) diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index aa35d468f..c09f62dae 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -37,192 +37,196 @@ void gt911ReadRegister(uint16_t reg, uint8_t * buf, uint8_t len); void touchPanelRead(); #define GT911_MAX_TP 5 -#define GT911_CFG_NUMER 0x69 +#define GT911_CFG_NUMER 0x6A //GT911 param table -const uint8_t GT911_Cfg[]= - { - GT911_CFG_NUMER, // 0x8047 Config version - 0xE0,0x01, // 0x8048 X output map : x 480 - 0x10,0x01, // 0x804A Y ouptut max : y 272 - GT911_MAX_TP, // 0x804C Touch number : GT911_MAX_TP - 0x38, // 0x804D Module switch 1 : bit4= xy change Int mode - 0x00, // 0x804E Module switch 2 - 0x02, // 0x804F Shake_Count - 0x48, // 0x8050 Filter - 0x28, // 0x8051 Larger touch - 0x0D, // 0x8052 Noise reduction - 0x50, // 0x8053 Screen touch level - 0x32, // 0x8054 Screen touch leave - 0x03, // 0x8055 Low power control - 0x05, // 0x8056 Refresh rate - 0x00, // 0x8057 X threshold - 0x00, // 0x8058 Y threshold - 0x00, // 0x8059 Reserved - 0x00, // 0x805A Reserved - 0x00, // 0x805B Space (top, bottom) - 0x00, // 0x805C Space (left, right) - 0x00, // 0x805D Mini filter - 0x18, // 0x805E Strech R0 - 0x1A, // 0x805F Strech R1 - 0x1E, // 0x8060 Strech R2 - 0x14, // 0x8061 Strech RM - 0x8A, // 0x8062 Drv groupA num - 0x2A, // 0x8063 Drv groupB num - 0x0C, // 0x8064 Sensor num - 0x30, // 0x8065 FreqA factor - 0x38, // 0x8066 FreqB factor - 0x31,0x0D, // 0x8067 Panel bit freq - 0x00,0x00, // 0x8069 Reserved - 0x02, // 0x806B Panel tx gain - 0xB9, // 0x806C Panel rx gain - 0x03, // 0x806D Panel dump shift - 0x2D, // 0x806E Drv frame control - 0x00, // 0x806F Charging level up - 0x00, // 0x8070 Module switch 3 - 0x00, // 0x8071 Gesture distance - 0x00, // 0x8072 Gesture long press time - 0x00, // 0x8073 X/Y slope adjust - 0x03, // 0x8074 Gesture control - 0x64, // 0x8075 Gesture switch 1 - 0x32, // 0x8076 Gesture switch 2 - 0x00, // 0x8077 Gesture refresh rate - 0x00, // 0x8078 Gesture touch level - 0x00, // 0x8079 New green wake up level - 0x1D, // 0x807A Freq hopping start - 0x41, // 0x807B Freq hopping end - 0x94, // 0x807C Noise detect time - 0xC5, // 0x807D Hopping flag - 0x02, // 0x807E Hopping flag - 0x07, // 0x807F Noise threshold - 0x00, // 0x8080 Nois min threshold old - 0x00, // 0x8081 Reserved - 0x04, // 0x8082 Hopping sensor group - 0xA5, // 0x8083 Hopping Seg1 normalize - 0x1F, // 0x8084 Hopping Seg1 factor - 0x00, // 0x8085 Main clock adjust - 0x94, // 0x8086 Hopping Seg2 normalize - 0x25, // 0x8087 Hopping Seg2 factor - 0x00, // 0x8088 Reserved - 0x88, // 0x8089 Hopping Seg3 normalize - 0x2B, // 0x808A Hopping Seg3 factor - 0x00, // 0x808B Reserved - 0x7D, // 0x808C Hopping Seg4 normalize - 0x33, // 0x808D Hopping Seg4 factor - 0x00, // 0x808E Reserved - 0x74, // 0x808F Hopping Seg5 normalize - 0x3C, // 0x8090 Hopping Seg5 factor - 0x00, // 0x8091 Reserved - 0x74, // 0x8092 Hopping Seg6 normalize - 0x00, // 0x8093 Key1 - 0x00, // 0x8094 Key2 - 0x00, // 0x8095 Key3 - 0x00, // 0x8096 Key4 - 0x00, // 0x8097 Key area - 0x00, // 0x8098 Key touch level - 0x00, // 0x8099 Key leave level - 0x00, // 0x809A Key sens - 0x00, // 0x809B Key sens - 0x00, // 0x809C Key restrain - 0x00, // 0x809D Key restrain time - 0x00, // 0x809E Large gesture touch - 0x00, // 0x809F Reserved - 0x00, // 0x80A0 Reserved - 0x00, // 0x80A1 Hotknot noise map - 0x00, // 0x80A2 Link threshold - 0x00, // 0x80A3 Pxy threshold - 0x00, // 0x80A4 GHot dump shift - 0x00, // 0x80A5 GHot rx gain - 0x00, // 0x80A6 Freg gain - 0x00, // 0x80A7 Freg gain 1 - 0x00, // 0x80A8 Freg gain 2 - 0x00, // 0x80A9 Freg gain 3 - 0x00, // 0x80AA Reserved - 0x00, // 0x80AB Reserved - 0x00, // 0x80AC Reserved - 0x00, // 0x80AD Reserved - 0x00, // 0x80AE Reserved - 0x00, // 0x80AF Reserved - 0x00, // 0x80B0 Reserved - 0x00, // 0x80B1 Reserved - 0x00, // 0x80B2 Reserved - 0x00, // 0x80B3 Combine dis - 0x00, // 0x80B4 Split set - 0x00, // 0x80B5 Reserved - 0x00, // 0x80B6 Reserved - 0x18, // 0x80B7 Sensor CH0 - 0x16, // 0x80B8 Sensor CH1 - 0x14, // 0x80B9 Sensor CH2 - 0x12, // 0x80BA Sensor CH3 - 0x10, // 0x80BB Sensor CH4 - 0x0E, // 0x80BC Sensor CH5 - 0x0C, // 0x80BD Sensor CH6 - 0x0A, // 0x80BE Sensor CH7 - 0x08, // 0x80BF Sensor CH8 - 0x06, // 0x80C0 Sensor CH9 - 0x04, // 0x80C1 Sensor CH10 - 0x02, // 0x80C2 Sensor CH11 - 0xFF, // 0x80C3 Sensor CH12 - 0xFF, // 0x80C4 Sensor CH13 - 0x00, // 0x80C5 Reserved - 0x00, // 0x80C6 Reserved - 0x00, // 0x80C7 Reserved - 0x00, // 0x80C8 Reserved - 0x00, // 0x80C9 Reserved - 0x00, // 0x80CA Reserved - 0x00, // 0x80CB Reserved - 0x00, // 0x80CC Reserved - 0x00, // 0x80CD Reserved - 0x00, // 0x80CE Reserved - 0x00, // 0x80CF Reserved - 0x00, // 0x80D0 Reserved - 0x00, // 0x80D1 Reserved - 0x00, // 0x80D2 Reserved - 0x00, // 0x80D3 Reserved - 0x00, // 0x80D4 Reserved - 0x24, // 0x80D5 Driver CH0 - 0x22, // 0x80D6 Driver CH1 - 0x21, // 0x80D7 Driver CH2 - 0x20, // 0x80D8 Driver CH3 - 0x1F, // 0x80D9 Driver CH4 - 0x1E, // 0x80DA Driver CH5 - 0x1D, // 0x80DB Driver CH6 - 0x1C, // 0x80DC Driver CH7 - 0x18, // 0x80DD Driver CH8 - 0x16, // 0x80DE Driver CH9 - 0x13, // 0x80DF Driver CH10 - 0x12, // 0x80E0 Driver CH11 - 0x10, // 0x80E1 Driver CH12 - 0x0F, // 0x80E2 Driver CH13 - 0x0A, // 0x80E3 Driver CH14 - 0x08, // 0x80E4 Driver CH15 - 0x06, // 0x80E5 Driver CH16 - 0x04, // 0x80E6 Driver CH17 - 0x02, // 0x80E7 Driver CH18 - 0x00, // 0x80E8 Driver CH19 - 0xFF, // 0x80E9 Driver CH20 - 0xFF, // 0x80EA Driver CH21 - 0xFF, // 0x80EB Driver CH22 - 0xFF, // 0x80EC Driver CH23 - 0xFF, // 0x80ED Driver CH24 - 0xFF, // 0x80EE Driver CH25 - 0x00, // 0x80EF Reserved - 0x00, // 0x80F0 Reserved - 0x00, // 0x80F1 Reserved - 0x00, // 0x80F2 Reserved - 0x00, // 0x80F3 Reserved - 0x00, // 0x80F4 Reserved - 0x00, // 0x80F5 Reserved - 0x00, // 0x80F6 Reserved - 0x00, // 0x80F7 Reserved - 0x00, // 0x80F8 Reserved - 0x00, // 0x80F9 Reserved - 0x00, // 0x80FA Reserved - 0x00, // 0x80FB Reserved - 0x00, // 0x80FC Reserved - 0x00, // 0x80FD Reserved - 0x00, // 0x80FE Reserved - }; +const uint8_t GT911_Cfg[] = +{ + GT911_CFG_NUMER, // 0x8047 Config version + 0xE0, // 0x8048 X output map : x 480 + 0x01, + 0x10, // 0x804A Y ouptut max : y 272 + 0x01, + GT911_MAX_TP, // 0x804C Touch number + 0x3C, // 0x804D Module switch 1 : bit4= xy change Int mode + 0x20, // 0x804E Module switch 2 + 0x22, // 0x804F Shake_Count + 0x0A, // 0x8050 Filter + 0x28, // 0x8051 Larger touch + 0x0F, // 0x8052 Noise reduction + 0x5A, // 0x8053 Screen touch level + 0x3C, // 0x8054 Screen touch leave + 0x03, // 0x8055 Low power control + 0x05, // 0x8056 Refresh rate + 0x00, // 0x8057 X threshold + 0x00, // 0x8058 Y threshold + 0x00, // 0x8059 Reserved + 0x00, // 0x805A Reserved + 0x11, // 0x805B Space (top, bottom) + 0x11, // 0x805C Space (left, right) + 0x08, // 0x805D Mini filter + 0x18, // 0x805E Strech R0 + 0x1A, // 0x805F Strech R1 + 0x1E, // 0x8060 Strech R2 + 0x14, // 0x8061 Strech RM + 0x87, // 0x8062 Drv groupA num + 0x29, // 0x8063 Drv groupB num + 0x0A, // 0x8064 Sensor num + 0xCF, // 0x8065 FreqA factor + 0xD1, // 0x8066 FreqB factor + 0xB2, // 0x8067 Panel bit freq + 0x04, + 0x00, // 0x8069 Reserved + 0x00, + 0x00, // 0x806B Panel tx gain + 0xD8, // 0x806C Panel rx gain + 0x02, // 0x806D Panel dump shift + 0x1D, // 0x806E Drv frame control + 0x00, // 0x806F Charging level up + 0x01, // 0x8070 Module switch 3 + 0x00, // 0x8071 Gesture distance + 0x00, // 0x8072 Gesture long press time + 0x00, // 0x8073 X/Y slope adjust + 0x00, // 0x8074 Gesture control + 0x00, // 0x8075 Gesture switch 1 + 0x00, // 0x8076 Gesture switch 2 + 0x00, // 0x8077 Gesture refresh rate + 0x00, // 0x8078 Gesture touch level + 0x00, // 0x8079 New green wake up level + 0xB4, // 0x807A Freq hopping start + 0xEF, // 0x807B Freq hopping end + 0x94, // 0x807C Noise detect time + 0xD5, // 0x807D Hopping flag + 0x02, // 0x807E Hopping flag + 0x07, // 0x807F Noise threshold + 0x00, // 0x8080 Nois min threshold old + 0x00, // 0x8081 Reserved + 0x04, // 0x8082 Hopping sensor group + 0x6E, // 0x8083 Hopping Seg1 normalize + 0xB9, // 0x8084 Hopping Seg1 factor + 0x00, // 0x8085 Main clock adjust + 0x6A, // 0x8086 Hopping Seg2 normalize + 0xC4, // 0x8087 Hopping Seg2 factor + 0x00, // 0x8088 Reserved + 0x66, // 0x8089 Hopping Seg3 normalize + 0xCF, // 0x808A Hopping Seg3 factor + 0x00, // 0x808B Reserved + 0x62, // 0x808C Hopping Seg4 normalize + 0xDB, // 0x808D Hopping Seg4 factor + 0x00, // 0x808E Reserved + 0x5E, // 0x808F Hopping Seg5 normalize + 0xE8, // 0x8090 Hopping Seg5 factor + 0x00, // 0x8091 Reserved + 0x5E, // 0x8092 Hopping Seg6 normalize + 0x00, // 0x8093 Key1 + 0x00, // 0x8094 Key2 + 0x00, // 0x8095 Key3 + 0x00, // 0x8096 Key4 + 0x00, // 0x8097 Key area + 0x00, // 0x8098 Key touch level + 0x00, // 0x8099 Key leave level + 0x00, // 0x809A Key sens + 0x00, // 0x809B Key sens + 0x00, // 0x809C Key restrain + 0x00, // 0x809D Key restrain time + 0x00, // 0x809E Large gesture touch + 0x00, // 0x809F Reserved + 0x00, // 0x80A0 Reserved + 0x00, // 0x80A1 Hotknot noise map + 0x00, // 0x80A2 Link threshold + 0x00, // 0x80A3 Pxy threshold + 0x00, // 0x80A4 GHot dump shift + 0x00, // 0x80A5 GHot rx gain + 0x00, // 0x80A6 Freg gain + 0x00, // 0x80A7 Freg gain 1 + 0x00, // 0x80A8 Freg gain 2 + 0x00, // 0x80A9 Freg gain 3 + 0x00, // 0x80AA Reserved + 0x00, // 0x80AB Reserved + 0x00, // 0x80AC Reserved + 0x00, // 0x80AD Reserved + 0x00, // 0x80AE Reserved + 0x00, // 0x80AF Reserved + 0x00, // 0x80B0 Reserved + 0x00, // 0x80B1 Reserved + 0x00, // 0x80B2 Reserved + 0x00, // 0x80B3 Combine dis + 0x00, // 0x80B4 Split set + 0x00, // 0x80B5 Reserved + 0x00, // 0x80B6 Reserved + 0x14, // 0x80B7 Sensor CH0 + 0x12, // 0x80B8 Sensor CH1 + 0x10, // 0x80B9 Sensor CH2 + 0x0E, // 0x80BA Sensor CH3 + 0x0C, // 0x80BB Sensor CH4 + 0x0A, // 0x80BC Sensor CH5 + 0x08, // 0x80BD Sensor CH6 + 0x06, // 0x80BE Sensor CH7 + 0x04, // 0x80BF Sensor CH8 + 0x02, // 0x80C0 Sensor CH9 + 0xFF, // 0x80C1 Sensor CH10 + 0xFF, // 0x80C2 Sensor CH11 + 0xFF, // 0x80C3 Sensor CH12 + 0xFF, // 0x80C4 Sensor CH13 + 0x00, // 0x80C5 Reserved + 0x00, // 0x80C6 Reserved + 0x00, // 0x80C7 Reserved + 0x00, // 0x80C8 Reserved + 0x00, // 0x80C9 Reserved + 0x00, // 0x80CA Reserved + 0x00, // 0x80CB Reserved + 0x00, // 0x80CC Reserved + 0x00, // 0x80CD Reserved + 0x00, // 0x80CE Reserved + 0x00, // 0x80CF Reserved + 0x00, // 0x80D0 Reserved + 0x00, // 0x80D1 Reserved + 0x00, // 0x80D2 Reserved + 0x00, // 0x80D3 Reserved + 0x00, // 0x80D4 Reserved + 0x28, // 0x80D5 Driver CH0 + 0x26, // 0x80D6 Driver CH1 + 0x24, // 0x80D7 Driver CH2 + 0x22, // 0x80D8 Driver CH3 + 0x21, // 0x80D9 Driver CH4 + 0x20, // 0x80DA Driver CH5 + 0x1F, // 0x80DB Driver CH6 + 0x1E, // 0x80DC Driver CH7 + 0x1D, // 0x80DD Driver CH8 + 0x0C, // 0x80DE Driver CH9 + 0x0A, // 0x80DF Driver CH10 + 0x08, // 0x80E0 Driver CH11 + 0x06, // 0x80E1 Driver CH12 + 0x04, // 0x80E2 Driver CH13 + 0x02, // 0x80E3 Driver CH14 + 0x00, // 0x80E4 Driver CH15 + 0xFF, // 0x80E5 Driver CH16 + 0xFF, // 0x80E6 Driver CH17 + 0xFF, // 0x80E7 Driver CH18 + 0xFF, // 0x80E8 Driver CH19 + 0xFF, // 0x80E9 Driver CH20 + 0xFF, // 0x80EA Driver CH21 + 0xFF, // 0x80EB Driver CH22 + 0xFF, // 0x80EC Driver CH23 + 0xFF, // 0x80ED Driver CH24 + 0xFF, // 0x80EE Driver CH25 + 0x00, // 0x80EF Reserved + 0x00, // 0x80F0 Reserved + 0x00, // 0x80F1 Reserved + 0x00, // 0x80F2 Reserved + 0x00, // 0x80F3 Reserved + 0x00, // 0x80F4 Reserved + 0x00, // 0x80F5 Reserved + 0x00, // 0x80F6 Reserved + 0x00, // 0x80F7 Reserved + 0x00, // 0x80F8 Reserved + 0x00, // 0x80F9 Reserved + 0x00, // 0x80FA Reserved + 0x00, // 0x80FB Reserved + 0x00, // 0x80FC Reserved + 0x00, // 0x80FD Reserved + 0x00 // 0x80FE Reserved +}; //I2C #define GT_CMD_WR 0X28 //write From 8b15a28a06636cef09ddd6e8051de26c07db507b Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 10:32:55 +0200 Subject: [PATCH 45/57] Cosmetics --- radio/src/gui/480x272/radio_diaganas.cpp | 5 +++++ radio/src/targets/horus/tp_gt911.h | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index b632bf00c..0df7ca1bf 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -21,6 +21,7 @@ #include "opentx.h" #if defined(RADIO_TX16S) #include "tp_gt911.h" +#include #endif constexpr coord_t LEFT_NAME_COLUMN = MENUS_MARGIN_LEFT; @@ -75,6 +76,10 @@ bool menuRadioDiagAnalogs(event_t event) lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); lcdDrawText(lcdNextPos, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); + coord_t x = limit(10, (coord_t)touchState.x, 469); // TODO remove, prevent an emergency crash when drawing on y 280 line + coord_t y = limit(7, (coord_t)touchState.y, 264); // TODO remove, prevent an emergency crash when drawing on y 280 line + lcdDrawLine(x - 10, y - 7, x + 10, y + 7, SOLID); + lcdDrawLine(x - 10, y + 7, x + 10, y - 7, SOLID); } #endif diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index c09f62dae..d1d250790 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -229,8 +229,8 @@ const uint8_t GT911_Cfg[] = }; //I2C -#define GT_CMD_WR 0X28 //write -#define GT_CMD_RD 0X29 //read +#define GT_CMD_WR 0X28 +#define GT_CMD_RD 0X29 #define SLAVE_Write_Address 0X28 @@ -238,14 +238,14 @@ const uint8_t GT911_Cfg[] = #define GT_CTRL_REG 0X8040 #define GT_CFGS_REG 0X8047 #define GT_CHECK_REG 0X80FF -#define GT_PID_REG 0X8140 //ID +#define GT_PID_REG 0X8140 -#define GT_GSTID_REG 0X814E // -#define GT_TP1_REG 0X8150 // -#define GT_TP2_REG 0X8158 // -#define GT_TP3_REG 0X8160 // -#define GT_TP4_REG 0X8168 // -#define GT_TP5_REG 0X8170 // +#define GT_GSTID_REG 0X814E +#define GT_TP1_REG 0X8150 +#define GT_TP2_REG 0X8158 +#define GT_TP3_REG 0X8160 +#define GT_TP4_REG 0X8168 +#define GT_TP5_REG 0X8170 #define GT911_READ_XY_REG 0x814E #define GT911_CLEARBUF_REG 0x814E From a53745d8fd9361b04ab144db14330a2598a03ce9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 11:05:43 +0200 Subject: [PATCH 46/57] Fix x10 video buffer protection --- radio/src/gui/480x272/lcd.cpp | 4 ++++ radio/src/gui/480x272/radio_diaganas.cpp | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/480x272/lcd.cpp b/radio/src/gui/480x272/lcd.cpp index 6659e386b..9c6f48cdf 100644 --- a/radio/src/gui/480x272/lcd.cpp +++ b/radio/src/gui/480x272/lcd.cpp @@ -422,7 +422,11 @@ void lcdDrawPoint(coord_t x, coord_t y, LcdFlags att) { display_t * p = PIXEL_PTR(x, y); display_t color = lcdColorTable[COLOR_IDX(att)]; +#if defined(PCBX10) + if (p >= displayBuf) { // x10 screen is reversed, so overflow are happening the other way around +#else if (p < DISPLAY_END) { +#endif *p = color; } } diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 0df7ca1bf..b269f8fc0 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -76,10 +76,8 @@ bool menuRadioDiagAnalogs(event_t event) lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); lcdDrawText(lcdNextPos, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); - coord_t x = limit(10, (coord_t)touchState.x, 469); // TODO remove, prevent an emergency crash when drawing on y 280 line - coord_t y = limit(7, (coord_t)touchState.y, 264); // TODO remove, prevent an emergency crash when drawing on y 280 line - lcdDrawLine(x - 10, y - 7, x + 10, y + 7, SOLID); - lcdDrawLine(x - 10, y + 7, x + 10, y - 7, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y - 7, touchState.x + 10, touchState.y + 7, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y + 7, touchState.x + 10, touchState.y - 7, SOLID); } #endif From 94b3811bbbf274b758df5d5250b5826dce96b486 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 11:50:30 +0200 Subject: [PATCH 47/57] y is not x ! --- radio/src/gui/480x272/lcd.cpp | 2 +- radio/src/gui/480x272/radio_diaganas.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/480x272/lcd.cpp b/radio/src/gui/480x272/lcd.cpp index 9c6f48cdf..e77fb66c5 100644 --- a/radio/src/gui/480x272/lcd.cpp +++ b/radio/src/gui/480x272/lcd.cpp @@ -423,7 +423,7 @@ void lcdDrawPoint(coord_t x, coord_t y, LcdFlags att) display_t * p = PIXEL_PTR(x, y); display_t color = lcdColorTable[COLOR_IDX(att)]; #if defined(PCBX10) - if (p >= displayBuf) { // x10 screen is reversed, so overflow are happening the other way around + if (p >= displayBuf && x < LCD_W) { // x10 screen is reversed, so overflow are happening the other way around #else if (p < DISPLAY_END) { #endif diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index b269f8fc0..70d769d18 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -76,8 +76,8 @@ bool menuRadioDiagAnalogs(event_t event) lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); lcdDrawText(lcdNextPos, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); - lcdDrawLine(touchState.x - 10, touchState.y - 7, touchState.x + 10, touchState.y + 7, SOLID); - lcdDrawLine(touchState.x - 10, touchState.y + 7, touchState.x + 10, touchState.y - 7, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y - 8, touchState.x + 10, touchState.y + 8, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y + 8, touchState.x + 10, touchState.y - 8, SOLID); } #endif From 7ee5b1d0249ccd19d37032fcbac3fb8ac2710017 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Tue, 28 Apr 2020 11:59:18 +0200 Subject: [PATCH 48/57] Set SD card version to 26 becasue of already produced cards --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f0011a7aa..b2762bf4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(VERSION_REVISION "8") set(VERSION_SUFFIX $ENV{OPENTX_VERSION_SUFFIX}) set(VERSION_FAMILY ${VERSION_MAJOR}.${VERSION_MINOR}) set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}${VERSION_SUFFIX}) -set(SDCARD_REVISION "0027") +set(SDCARD_REVISION "0026") set(SDCARD_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}V${SDCARD_REVISION}) cmake_minimum_required(VERSION 2.8) From be2c10c6cc0be86c4b5148890c241a528ad4b489 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 13:54:09 +0200 Subject: [PATCH 49/57] Cosmetics --- CMakeLists.txt | 2 +- radio/src/dataconstants.h | 5 ++++- radio/src/gui/480x272/radio_diaganas.cpp | 2 +- radio/src/gui/480x272/radio_hardware.cpp | 12 ++++-------- radio/src/targets/horus/tp_gt911.cpp | 13 ++++++------- radio/src/targets/horus/tp_gt911.h | 16 ++++++++-------- radio/src/translations.cpp | 3 +-- radio/src/translations.h | 3 +-- radio/src/translations/cz.h.txt | 3 +-- radio/src/translations/de.h.txt | 3 +-- radio/src/translations/en.h.txt | 3 +-- radio/src/translations/es.h.txt | 3 +-- radio/src/translations/fi.h.txt | 3 +-- radio/src/translations/fr.h.txt | 3 +-- radio/src/translations/it.h.txt | 3 +-- radio/src/translations/nl.h.txt | 3 +-- radio/src/translations/pl.h.txt | 3 +-- radio/src/translations/pt.h.txt | 3 +-- radio/src/translations/se.h.txt | 3 +-- 19 files changed, 37 insertions(+), 52 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b2762bf4b..f0011a7aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(VERSION_REVISION "8") set(VERSION_SUFFIX $ENV{OPENTX_VERSION_SUFFIX}) set(VERSION_FAMILY ${VERSION_MAJOR}.${VERSION_MINOR}) set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}${VERSION_SUFFIX}) -set(SDCARD_REVISION "0026") +set(SDCARD_REVISION "0027") set(SDCARD_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}V${SDCARD_REVISION}) cmake_minimum_required(VERSION 2.8) diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 65f12aa48..ceda80447 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -204,7 +204,10 @@ enum TrainerMode { enum ModuleIndex { EXTERNAL_MODULE, EXTRA_MODULE, - SPORT_MODULE + SPORT_MODULE, + TRAINER_MODE_MASTER_BLUETOOTH, + TRAINER_MODE_SLAVE_BLUETOOTH, + TRAINER_MODE_MULTI }; #endif diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 70d769d18..e82b96a1c 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -68,7 +68,7 @@ bool menuRadioDiagAnalogs(event_t event) #if defined(HARDWARE_TOUCH) if (HAS_TOUCH_PANEL()) { - lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, "Touch panel:"); + lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 7 * FH, STR_TOUCH_PANEL); } if (touchPanelEvent) { diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index e50dcae33..291fcb7d7 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -412,14 +412,10 @@ bool menuRadioHardware(event_t event) lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0); lcdDrawText(lcdNextPos + 10, y, STR_KEYS_BTN, menuHorizontalPosition == 1 ? attr : 0); if (attr && event == EVT_KEY_BREAK(KEY_ENTER)) { - switch (menuHorizontalPosition) { - case 0: - pushMenu(menuRadioDiagAnalogs); - break; - case 1: - pushMenu(menuRadioDiagKeys); - break; - } + if (menuHorizontalPosition == 0) + pushMenu(menuRadioDiagAnalogs); + else + pushMenu(menuRadioDiagKeys);break; } break; } diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index ffad5cc48..5c4929e95 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -42,7 +42,7 @@ uint8_t GT911_Send_Cfg(uint8_t mode) uint8_t buf[2]; uint8_t i = 0; buf[0] = 0; - buf[1] = mode; // + buf[1] = mode; for (i = 0; i < sizeof(GT911_Cfg); i++) buf[0] += GT911_Cfg[i];//check sum @@ -174,11 +174,10 @@ void I2C_Stop(void) uint8_t I2C_Wait_Ack(void) { uint8_t ucErrTime = 0; - SDA_IN(); // + SDA_IN(); I2C_SDA_H(); delay_us(2); - //I2C_SCL_L();delay_us(6); - I2C_SCL_H();//delay_us(6); + I2C_SCL_H(); while (READ_SDA) { ucErrTime++; if (ucErrTime > 166) { @@ -188,7 +187,7 @@ uint8_t I2C_Wait_Ack(void) delay_us(1); } I2C_SDA_L(); - I2C_SCL_L();// + I2C_SCL_L(); return 0; } @@ -219,7 +218,7 @@ void I2C_Send_Byte(uint8_t txd) uint8_t t; SDA_OUT(); - I2C_SCL_L();// + I2C_SCL_L(); for (t = 0; t < 8; t++) { if ((txd & 0x80) >> 7) I2C_SDA_H(); @@ -346,7 +345,7 @@ bool touchPanelInit(void) delay_ms(10); tmp[0] = 0X00; - gt911WriteRegister(GT_CTRL_REG, tmp, 1);//end reset + gt911WriteRegister(GT_CTRL_REG, tmp, 1); //end reset touchGT911Flag = true; TOUCH_AF_ExtiConfig(); diff --git a/radio/src/targets/horus/tp_gt911.h b/radio/src/targets/horus/tp_gt911.h index d1d250790..2b5f7d32c 100644 --- a/radio/src/targets/horus/tp_gt911.h +++ b/radio/src/targets/horus/tp_gt911.h @@ -248,14 +248,14 @@ const uint8_t GT911_Cfg[] = #define GT_TP5_REG 0X8170 #define GT911_READ_XY_REG 0x814E -#define GT911_CLEARBUF_REG 0x814E -#define GT911_CONFIG_REG 0x8047 -#define GT911_COMMAND_REG 0x8040 -#define GT911_PRODUCT_ID_REG 0x8140 -#define GT911_VENDOR_ID_REG 0x814A -#define GT911_CONFIG_VERSION_REG 0x8047 -#define GT911_CONFIG_CHECKSUM_REG 0x80FF -#define GT911_FIRMWARE_VERSION_REG 0x8144 +#define GT911_CLEARBUF_REG 0x814E +#define GT911_CONFIG_REG 0x8047 +#define GT911_COMMAND_REG 0x8040 +#define GT911_PRODUCT_ID_REG 0x8140 +#define GT911_VENDOR_ID_REG 0x814A +#define GT911_CONFIG_VERSION_REG 0x8047 +#define GT911_CONFIG_CHECKSUM_REG 0x80FF +#define GT911_FIRMWARE_VERSION_REG 0x8144 PACK(typedef struct { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 0c0494055..4f43e33d1 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -215,7 +215,6 @@ const char STR_MENUSPECIALFUNCS[] = TR_MENUSPECIALFUNCS; const char STR_MENUVERSION[] = TR_MENUVERSION; const char STR_MENU_RADIO_SWITCHES[] = TR_MENU_RADIO_SWITCHES; const char STR_MENU_RADIO_ANALOGS[] = TR_MENU_RADIO_ANALOGS; -const char STR_MENU_RADIO_TOUCH[] = TR_MENU_RADIO_TOUCH; const char STR_MENUCALIBRATION[] = TR_MENUCALIBRATION; const char STR_MENUMODELSEL[] = TR_MENUMODELSEL; const char STR_MENUSETUP[] = TR_MENUSETUP; @@ -320,7 +319,6 @@ const char STR_MONITOR_SCREENS[] = TR_MONITOR_SCREENS; const char STR_RESET_BTN[] = TR_RESET_BTN; const char STR_DEBUG[] = TR_DEBUG; const char STR_KEYS_BTN[] = TR_KEYS_BTN; -const char STR_TOUCH_BTN[] = TR_TOUCH_BTN; const char STR_ANALOGS_BTN[] = TR_ANALOGS_BTN; const char STR_TOUCH_NOTFOUND[] = TR_TOUCH_NOTFOUND; const char STR_TOUCH_EXIT[] = TR_TOUCH_EXIT; @@ -592,6 +590,7 @@ const char STR_EXIT[] = TR_EXIT; const char STR_MODULE_RANGE[] = TR_MODULE_RANGE; const char STR_RECEIVER_OPTIONS[] = TR_RECEIVER_OPTIONS; const char STR_SPORT_UPDATE_POWER_MODE[] = TR_SPORT_UPDATE_POWER_MODE; +const char STR_TOUCH_PANEL[] = TR_TOUCH_PANEL; #if defined(PCBHORUS) const char STR_ASSIGN_SPLASH[] = TR_ASSIGN_SPLASH; diff --git a/radio/src/translations.h b/radio/src/translations.h index 3dfdac8af..6b0038118 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -169,6 +169,7 @@ extern const char STR_VSENSORTYPES[]; extern const char STR_VFORMULAS[]; extern const char STR_VPREC[]; extern const char STR_VCELLINDEX[]; +extern const char STR_TOUCH_PANEL[]; #if defined(BLUETOOTH) extern const char STR_BLUETOOTH[]; @@ -356,7 +357,6 @@ extern const char STR_MENUSPECIALFUNCS[]; extern const char STR_MENUVERSION[]; extern const char STR_MENU_RADIO_SWITCHES[]; extern const char STR_MENU_RADIO_ANALOGS[]; -extern const char STR_MENU_RADIO_TOUCH[]; extern const char STR_MENUCALIBRATION[]; extern const char STR_MENUMODELSEL[]; extern const char STR_MENUSETUP[]; @@ -496,7 +496,6 @@ extern const char STR_MONITOR_SCREENS[]; extern const char STR_RESET_BTN[]; extern const char STR_DEBUG[]; extern const char STR_KEYS_BTN[]; -extern const char STR_TOUCH_BTN[]; extern const char STR_ANALOGS_BTN[]; extern const char STR_TOUCH_NOTFOUND[]; extern const char STR_TOUCH_EXIT[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 40261da38..08ae06de2 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -590,7 +590,6 @@ #define TR_MENUVERSION "VERZE" #define TR_MENU_RADIO_SWITCHES "DIAG" #define TR_MENU_RADIO_ANALOGS "ANALOGY" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRACE" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trimy => Subtrimy" @@ -917,7 +916,6 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Přepínače")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogy")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -994,6 +992,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Název" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index c946b8fb6..62478e7ed 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -594,7 +594,6 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("Schalter-Test", "Schalter-Test") #define TR_MENU_RADIO_ANALOGS "Geber-Test" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION TR("KALIB. ANALOG", "KALIBRIERUNG-Analog") #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -919,7 +918,6 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Testen" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1000,6 +998,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis specific column headers #define TR_PHASES_HEADERS_NAME "Name " diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 359598005..72363c477 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -593,7 +593,6 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("SWITCHES", "SWITCHES TEST") #define TR_MENU_RADIO_ANALOGS TR("ANALOGS", "ANALOGS TEST") -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -918,7 +917,6 @@ #define TR_RESET_BTN BUTTON("Reset") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("Keys", "Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -999,6 +997,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 3fbe10531..b022314fa 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -587,7 +587,6 @@ #define TR_MENU_RADIO_SWITCHES TR("INTERUPTS", "TEST INTERRUPTORES") #define TR_MENU_RADIO_ANALOGS TR("ANALÓGICOS", "TEST ANALÓGICOS") #define TR_MENUCALIBRATION "CALIBRACIÓN" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Offsets" #else @@ -920,7 +919,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -998,6 +996,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS TR("No hay pant. telemetría", "No hay pantallas de telemetría") +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nombre" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 9ef39befe..afaef5c33 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -602,7 +602,6 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("SWITCHES","SWITCH TEST") #define TR_MENU_RADIO_ANALOGS TR("ANAS","ANALOG INPUTS") -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -936,7 +935,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1013,6 +1011,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 49876e791..422205dd5 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -613,7 +613,6 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("INTERS", "TEST INTERRUPTEURS") #define TR_MENU_RADIO_ANALOGS TR("ANAS", "ENTREES ANALOGIQUES") -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRATION" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -938,7 +937,6 @@ #define TR_RESET_BTN BUTTON("RAZ") #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("Btns","Inters")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Anas", "Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1023,6 +1021,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nom" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 9151ec531..750f77a7c 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -612,7 +612,6 @@ #define TR_MENUVERSION "VERSIONE" #define TR_MENU_RADIO_SWITCHES "DIAG" #define TR_MENU_RADIO_ANALOGS "ANAS" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRAZIONE" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -938,7 +937,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Interruttori")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analogico","Analogici")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1015,6 +1013,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nome" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 9acf7e8a8..f36f75cf1 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -597,7 +597,6 @@ #define TR_MENUVERSION "VERSIE" #define TR_MENU_RADIO_SWITCHES TR("Schak.", "Schakelaar-Test") #define TR_MENU_RADIO_ANALOGS "Analoog-Test" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION TR("CALIB. ANALOOG", "CALIBRERING Sticks+Pots") #if defined(COLORLCD) @@ -924,7 +923,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1007,6 +1005,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 9904709c2..5fd59c2ec 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -611,7 +611,6 @@ #define TR_MENUVERSION "WERSJA" #define TR_MENU_RADIO_SWITCHES TR("PRZEŁ","TEST PRZEŁ") #define TR_MENU_RADIO_ANALOGS TR("WE-ANA","WEJŚCIA ANALOG.") -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRACJA" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trymery => Subtrimy" @@ -937,7 +936,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1014,6 +1012,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Nazwa" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 62caa704c..857bc3c35 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -593,7 +593,6 @@ #define TR_MENUVERSION "VERSAO" #define TR_MENU_RADIO_SWITCHES "DIAGNOST" #define TR_MENU_RADIO_ANALOGS "ANALOGICOS" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "CALIBRAGEM" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "Trims => Subtrims" @@ -927,7 +926,6 @@ #define TR_RESET_BTN "[Reset]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1004,6 +1002,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Name" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index cfc7ded9b..feff5f1d2 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -610,7 +610,6 @@ #define TR_MENUVERSION "VERSION" #define TR_MENU_RADIO_SWITCHES TR("BRYTARE","TEST AV BRYTARE") #define TR_MENU_RADIO_ANALOGS "ANALOGA VÄRDEN" -#define TR_MENU_RADIO_TOUCH "TOUCHSCREEN TEST" #define TR_MENUCALIBRATION "KALIBRERING" #if defined(COLORLCD) #define TR_TRIMS2OFFSETS "[Spara Trimvärden]" @@ -937,7 +936,6 @@ #define TR_RESET_BTN "[Nollställ]" #define TR_DEBUG "Debug" #define TR_KEYS_BTN BUTTON(TR("SW","Switches")) -#define TR_TOUCH_BTN BUTTON("Touch") #define TR_ANALOGS_BTN BUTTON(TR("Analog","Analogs")) #define TR_TOUCH_NOTFOUND "Touch hardware not found" #define TR_TOUCH_EXIT "Touch screen to exit" @@ -1014,6 +1012,7 @@ #define LEN_SPORT_UPDATE_POWER_MODES "\004" #define TR_SPORT_UPDATE_POWER_MODES "AUTO""ON\0 " #define TR_NO_TELEMETRY_SCREENS "No Telemetry Screens" +#define TR_TOUCH_PANEL "Touch panel:" // Horus and Taranis column headers #define TR_PHASES_HEADERS_NAME "Namn" From 114fd2c4f3834b5fd58746d509b283e3c723fb39 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 16:13:17 +0200 Subject: [PATCH 50/57] Better sky9x fix --- radio/src/dataconstants.h | 5 +---- radio/src/gui/gui_common.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index ceda80447..65f12aa48 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -204,10 +204,7 @@ enum TrainerMode { enum ModuleIndex { EXTERNAL_MODULE, EXTRA_MODULE, - SPORT_MODULE, - TRAINER_MODE_MASTER_BLUETOOTH, - TRAINER_MODE_SLAVE_BLUETOOTH, - TRAINER_MODE_MULTI + SPORT_MODULE }; #endif diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 498c63a89..1ae1a45cc 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -739,12 +739,12 @@ bool isTrainerModeAvailable(int mode) return g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER; #endif -#if !defined(BLUETOOTH) || defined(PCBX9E) - if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH) - return false; -#else +#if defined(BLUETOOTH) && !defined(PCBX9E) if (g_eeGeneral.bluetoothMode != BLUETOOTH_TRAINER && (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH)) return false; +#elif !defined(PCBSKY9X) + if (mode == TRAINER_MODE_MASTER_BLUETOOTH || mode == TRAINER_MODE_SLAVE_BLUETOOTH) + return false; #endif #if defined(PCBXLITE) && !defined(PCBXLITES) From 3d9256e5558e2b434a43b8c8065bc79b928e2d1f Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 16:50:24 +0200 Subject: [PATCH 51/57] Default AETR for Jumper radio too --- radio/src/opentx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 5f89d258b..bcb696da8 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -295,7 +295,7 @@ void generalDefault() #if defined(FRSKY_RELEASE) g_eeGeneral.templateSetup = 17; /* TAER */ -#elif defined(RADIO_TX16S) //TODO : is RADIO_FAMILLY_T16 better ? +#elif defined(RADIO_FAMILY_T16) g_eeGeneral.templateSetup = 21; /* AETR to match bundled multi */ #endif From 5d0805c66556f8fe54c82381da20e35ea2a926b4 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 12:05:25 +0200 Subject: [PATCH 52/57] Some improvements --- radio/src/gui/480x272/radio_diaganas.cpp | 2 +- radio/src/gui/480x272/radio_hardware.cpp | 2 +- radio/src/gui/480x272/topbar.cpp | 3 ++- radio/src/opentx.cpp | 10 +--------- radio/src/targets/horus/CMakeLists.txt | 7 +++++++ 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index e82b96a1c..ae452f7ae 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -62,7 +62,7 @@ bool menuRadioDiagAnalogs(event_t event) #endif } -#if (NUM_PWMSTICKS > 0) || defined(SIMU) +#if defined(SIMU) || NUM_PWMSTICKS > 0 lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP + 8 * FH, STICKS_PWM_ENABLED() ? "Sticks: PWM" : "Sticks: ANA"); #endif diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp index 291fcb7d7..37f81bed3 100644 --- a/radio/src/gui/480x272/radio_hardware.cpp +++ b/radio/src/gui/480x272/radio_hardware.cpp @@ -415,7 +415,7 @@ bool menuRadioHardware(event_t event) if (menuHorizontalPosition == 0) pushMenu(menuRadioDiagAnalogs); else - pushMenu(menuRadioDiagKeys);break; + pushMenu(menuRadioDiagKeys); } break; } diff --git a/radio/src/gui/480x272/topbar.cpp b/radio/src/gui/480x272/topbar.cpp index f14d9a237..81b1f643a 100644 --- a/radio/src/gui/480x272/topbar.cpp +++ b/radio/src/gui/480x272/topbar.cpp @@ -91,8 +91,9 @@ void drawTopBar() /* Tx battery */ uint8_t bars = GET_TXBATT_BARS(5); #if defined(USB_CHARGER) - if (usbChargerLed() && BLINK_ON_PHASE) + if (usbChargerLed() && BLINK_ON_PHASE) { lcdDrawBitmapPattern(LCD_W-130, 24, LBM_TOPMENU_TXBATT_CHARGING, MENU_TITLE_COLOR); + } else { #endif lcdDrawBitmapPattern(LCD_W - 130, 24, LBM_TOPMENU_TXBATT, MENU_TITLE_COLOR); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index bcb696da8..eeb2d2ef2 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -293,11 +293,7 @@ void generalDefault() g_eeGeneral.stickMode = DEFAULT_MODE - 1; #endif -#if defined(FRSKY_RELEASE) - g_eeGeneral.templateSetup = 17; /* TAER */ -#elif defined(RADIO_FAMILY_T16) - g_eeGeneral.templateSetup = 21; /* AETR to match bundled multi */ -#endif + g_eeGeneral.templateSetup = DEFAULT_TEMPLATE_SETUP; g_eeGeneral.backlightMode = e_backlight_mode_all; g_eeGeneral.lightAutoOff = 2; @@ -324,11 +320,7 @@ void generalDefault() #endif #if defined(COLORLCD) -#if defined(RADIO_TX16S) - strcpy(g_eeGeneral.themeName, "Darkblue"); -#else strcpy(g_eeGeneral.themeName, theme->getName()); -#endif theme->init(); #endif diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index ba4052d48..b07230e4a 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -17,6 +17,7 @@ set(LINKER_SCRIPT targets/horus/stm32f4_flash.ld) set(RTC_BACKUP_RAM YES) set(PPM_LIMITS_SYMETRICAL YES) set(USB_SERIAL ON CACHE BOOL "Enable USB serial (CDC)") +set(DEFAULT_TEMPLATE_SETUP "0" CACHE STRING "Default channel order") # for size report script set(CPU_TYPE_FULL STM32F429xI) @@ -50,6 +51,7 @@ if (PCB STREQUAL X10) elseif (PCBREV STREQUAL T16) set(FLAVOUR t16) set(LUA_EXPORT lua_export_t16) + set(DEFAULT_TEMPLATE_SETUP 21) add_definitions(-DRADIO_T16) add_definitions(-DRADIO_FAMILY_T16) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF) @@ -57,6 +59,7 @@ if (PCB STREQUAL X10) elseif (PCBREV STREQUAL TX16S) set(FLAVOUR tx16s) set(LUA_EXPORT lua_export_t16) + set(DEFAULT_TEMPLATE_SETUP 21) add_definitions(-DRADIO_TX16S) add_definitions(-DRADIO_FAMILY_T16) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) @@ -139,6 +142,10 @@ if(INTERNAL_MODULE_MULTI) add_definitions(-DINTERNAL_MODULE_MULTI) endif() +if(NOT DEFAULT_TEMPLATE_SETUP STREQUAL "") + add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) +endif() + include_directories(${RADIO_SRC_DIRECTORY}/fonts/480x272 gui/${GUI_DIR} gui/${GUI_DIR}/layouts) file(GLOB THEMES_SRC RELATIVE ${RADIO_SRC_DIRECTORY}/gui/480x272 ${RADIO_SRC_DIRECTORY}/gui/480x272/themes/*.cpp) From 1eaf909bd4ab12c58a1f195d757c779a63eb51e1 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 17:56:24 +0200 Subject: [PATCH 53/57] Some improvements --- radio/src/CMakeLists.txt | 7 +++++++ radio/src/targets/horus/CMakeLists.txt | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 20852450c..96c9c622e 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -418,6 +418,13 @@ endif() set(SRC ${SRC} ${FIRMWARE_SRC}) +if(INTERNAL_MODULE_MULTI) + set(DEFAULT_TEMPLATE_SETUP 21 CACHE STRING "") +else() + set(DEFAULT_TEMPLATE_SETUP 0 CACHE STRING "") +endif() +message(STATUS "ICI ${INTERNAL_MODULE_MULTI} ${DEFAULT_TEMPLATE_SETUP}") +add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) ##### firmware target ##### diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index b07230e4a..ba4052d48 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -17,7 +17,6 @@ set(LINKER_SCRIPT targets/horus/stm32f4_flash.ld) set(RTC_BACKUP_RAM YES) set(PPM_LIMITS_SYMETRICAL YES) set(USB_SERIAL ON CACHE BOOL "Enable USB serial (CDC)") -set(DEFAULT_TEMPLATE_SETUP "0" CACHE STRING "Default channel order") # for size report script set(CPU_TYPE_FULL STM32F429xI) @@ -51,7 +50,6 @@ if (PCB STREQUAL X10) elseif (PCBREV STREQUAL T16) set(FLAVOUR t16) set(LUA_EXPORT lua_export_t16) - set(DEFAULT_TEMPLATE_SETUP 21) add_definitions(-DRADIO_T16) add_definitions(-DRADIO_FAMILY_T16) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF) @@ -59,7 +57,6 @@ if (PCB STREQUAL X10) elseif (PCBREV STREQUAL TX16S) set(FLAVOUR tx16s) set(LUA_EXPORT lua_export_t16) - set(DEFAULT_TEMPLATE_SETUP 21) add_definitions(-DRADIO_TX16S) add_definitions(-DRADIO_FAMILY_T16) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) @@ -142,10 +139,6 @@ if(INTERNAL_MODULE_MULTI) add_definitions(-DINTERNAL_MODULE_MULTI) endif() -if(NOT DEFAULT_TEMPLATE_SETUP STREQUAL "") - add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) -endif() - include_directories(${RADIO_SRC_DIRECTORY}/fonts/480x272 gui/${GUI_DIR} gui/${GUI_DIR}/layouts) file(GLOB THEMES_SRC RELATIVE ${RADIO_SRC_DIRECTORY}/gui/480x272 ${RADIO_SRC_DIRECTORY}/gui/480x272/themes/*.cpp) From b641906dd4d553ea1c96472ea23865d36756144a Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 17:58:13 +0200 Subject: [PATCH 54/57] remove debug message --- radio/src/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 96c9c622e..7310b878a 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -423,7 +423,6 @@ if(INTERNAL_MODULE_MULTI) else() set(DEFAULT_TEMPLATE_SETUP 0 CACHE STRING "") endif() -message(STATUS "ICI ${INTERNAL_MODULE_MULTI} ${DEFAULT_TEMPLATE_SETUP}") add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) ##### firmware target ##### From e3eb0d291f2c2354775b8be690c59a47c1aa5280 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 18:08:38 +0200 Subject: [PATCH 55/57] Fix simu compilation --- radio/src/CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 7310b878a..989457f92 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -359,6 +359,13 @@ endif() add_definitions(-DPOPUP_LEVEL=${POPUP_LEVEL}) +if(INTERNAL_MODULE_MULTI) + set(DEFAULT_TEMPLATE_SETUP 21 CACHE STRING "") +else() + set(DEFAULT_TEMPLATE_SETUP 0 CACHE STRING "") +endif() +add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) + set(SRC ${SRC} opentx.cpp @@ -418,13 +425,6 @@ endif() set(SRC ${SRC} ${FIRMWARE_SRC}) -if(INTERNAL_MODULE_MULTI) - set(DEFAULT_TEMPLATE_SETUP 21 CACHE STRING "") -else() - set(DEFAULT_TEMPLATE_SETUP 0 CACHE STRING "") -endif() -add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP}) - ##### firmware target ##### option(FIRMWARE_TARGET "Configure Firmware target (can be turned of for compiling Companion only)" ON) From 6f35853fda4e4644f23b6649e95a2c506bf46cf6 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 19:01:57 +0200 Subject: [PATCH 56/57] Change default theme for TX16s --- radio/src/gui/480x272/themes/darkblue.cpp | 5 ++++- radio/src/gui/480x272/themes/default.cpp | 4 +++- radio/src/targets/horus/CMakeLists.txt | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/themes/darkblue.cpp b/radio/src/gui/480x272/themes/darkblue.cpp index bf244169e..05a8b2e1f 100644 --- a/radio/src/gui/480x272/themes/darkblue.cpp +++ b/radio/src/gui/480x272/themes/darkblue.cpp @@ -266,4 +266,7 @@ class DarkblueTheme: public Theme BitmapBuffer * DarkblueTheme::menuIconNormal[MENUS_ICONS_COUNT] = { NULL }; BitmapBuffer * DarkblueTheme::menuIconSelected[MENUS_ICONS_COUNT] = { NULL }; -const DarkblueTheme darkblueTheme; +DarkblueTheme darkblueTheme; +#if defined(DEFAULT_THEME_DARKBLUE) + Theme * theme = &darkblueTheme; +#endif \ No newline at end of file diff --git a/radio/src/gui/480x272/themes/default.cpp b/radio/src/gui/480x272/themes/default.cpp index 5ecd5bfbd..b90ccd1a2 100644 --- a/radio/src/gui/480x272/themes/default.cpp +++ b/radio/src/gui/480x272/themes/default.cpp @@ -353,4 +353,6 @@ BitmapBuffer * DefaultTheme::menuIconSelected[MENUS_ICONS_COUNT] = { NULL }; BitmapBuffer * DefaultTheme::currentMenuBackground = NULL; DefaultTheme defaultTheme; -Theme * theme = &defaultTheme; +#if defined(DEFAULT_THEME_DEFAULT) + Theme * theme = &defaultTheme; +#endif diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index ba4052d48..f45d79b3c 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -63,6 +63,7 @@ if (PCB STREQUAL X10) option(BLUETOOTH "Support for bluetooth module" OFF) set(HARDWARE_TOUCH YES) set(USB_CHARGER YES) + set(DEFAULT_THEME_DARKBLUE ON) if (NOT BLUETOOTH) set(AUX_SERIAL ON) endif() @@ -115,6 +116,12 @@ add_definitions(-DEEPROM_VARIANT=0 -DAUDIO -DVOICE -DRTCLOCK) add_definitions(-DGPS_USART_BAUDRATE=${INTERNAL_GPS_BAUDRATE}) add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) +if(DEFAULT_THEME_DARKBLUE) + add_definitions(-DDEFAULT_THEME_DARKBLUE) +else() + add_definitions(-DDEFAULT_THEME_DEFAULT) +endif() + if(NOT UNEXPECTED_SHUTDOWN) add_definitions(-DNO_UNEXPECTED_SHUTDOWN) endif() From 5c25703142291a8340abf8d835abd62a8ea224a3 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 29 Apr 2020 20:05:29 +0200 Subject: [PATCH 57/57] Further improvements --- radio/src/targets/horus/CMakeLists.txt | 6 +++--- tools/build-frsky.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index f45d79b3c..a02abfa12 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -63,7 +63,7 @@ if (PCB STREQUAL X10) option(BLUETOOTH "Support for bluetooth module" OFF) set(HARDWARE_TOUCH YES) set(USB_CHARGER YES) - set(DEFAULT_THEME_DARKBLUE ON) + set(DEFAULT_THEME "DARKBLUE") if (NOT BLUETOOTH) set(AUX_SERIAL ON) endif() @@ -116,8 +116,8 @@ add_definitions(-DEEPROM_VARIANT=0 -DAUDIO -DVOICE -DRTCLOCK) add_definitions(-DGPS_USART_BAUDRATE=${INTERNAL_GPS_BAUDRATE}) add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) -if(DEFAULT_THEME_DARKBLUE) - add_definitions(-DDEFAULT_THEME_DARKBLUE) +if(DEFAULT_THEME) + add_definitions(-DDEFAULT_THEME_${DEFAULT_THEME}) else() add_definitions(-DDEFAULT_THEME_DEFAULT) endif() diff --git a/tools/build-frsky.py b/tools/build-frsky.py index 3db1e97fb..e4478a2a8 100755 --- a/tools/build-frsky.py +++ b/tools/build-frsky.py @@ -134,7 +134,7 @@ def build(board, translation, srcdir): os.mkdir("output") path = tempfile.mkdtemp() os.chdir(path) - command = "cmake %s -DTRANSLATIONS=%s -DFRSKY_RELEASE=YES %s" % (cmake_options, translation, srcdir) + command = "cmake %s -DTRANSLATIONS=%s -DFRSKY_RELEASE=YES -DDEFAULT_TEMPLATE_SETUP=17 %s" % (cmake_options, translation, srcdir) print(command) os.system(command) os.system("make firmware -j6")