taco 3 месяцев назад
Родитель
Сommit
9f683975c1

+ 9 - 0
examples/companion_radio/ui-tiny/UITask.cpp

@@ -643,6 +643,15 @@ void UITask::loop() {
     next_backlight_btn_check = millis() + 300;
   }
 #endif
+#if defined(HAS_TORCH)
+  ev = back_btn.check();
+  if (ev == BUTTON_EVENT_CLICK && c == 0) {
+    c = checkDisplayOn(KEY_PREV);
+  } else if (ev == BUTTON_EVENT_DOUBLE_CLICK) {
+    board.toggleTorch();
+    c = 0;
+  }
+#endif
 
   if (c != 0 && curr) {
     curr->handleInput(c);

+ 12 - 0
variants/lilygo_techo_card/TechoCardBoard.cpp

@@ -67,6 +67,18 @@ void TechoCardBoard::onAfterTransmit() {
     Led_A.show();
 }
 
+void TechoCardBoard::toggleTorch() {
+    if (!_torchStatus) {
+        Led_C.setPixelColor(0, 255, 255, 255);
+        Led_C.show();
+        _torchStatus = true;
+    } else {
+        Led_C.setPixelColor(0, 0, 0, 0);
+        Led_C.show();
+        _torchStatus = false;
+        }
+}
+
 void TechoCardBoard::turnOffLeds() {
     for (uint8_t i = 0; i < sizeof(Led) / sizeof(*Led); i++)
     {

+ 2 - 0
variants/lilygo_techo_card/TechoCardBoard.h

@@ -15,6 +15,7 @@
 #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
 
 class TechoCardBoard : public NRF52BoardDCDC {
+  bool _torchStatus = false;
 public:
   TechoCardBoard() : NRF52Board("TECHO_OTA") {}
   void begin();
@@ -29,6 +30,7 @@ public:
 
   void powerOff() override;
 
+  void toggleTorch();
   void turnOffLeds();
   
 };

+ 2 - 1
variants/lilygo_techo_card/platformio.ini

@@ -14,6 +14,7 @@ build_flags = ${nrf52_base.build_flags}
   -D SX126X_CURRENT_LIMIT=140
   -D SX126X_RX_BOOSTED_GAIN=1
   -D HAS_NEOPIXEL=1
+  -D HAS_TORCH=1
   ; -D DISABLE_DIAGNOSTIC_OUTPUT
   -D ENV_INCLUDE_GPS=1
   -D DISPLAY_CLASS=U8g2Display
@@ -79,7 +80,7 @@ build_flags =
   -D UI_RECENT_LIST_SIZE=3
   -D UI_GPS_PAGE=1
   ; -D MESH_PACKET_LOGGING=1
-  ; -D MESH_DEBUG=1
+  -D MESH_DEBUG=1
   -D AUTO_SHUTDOWN_MILLIVOLTS=3300
 build_src_filter = ${LilyGo_T-Echo_Card.build_src_filter}
   +<helpers/nrf52/SerialBLEInterface.cpp>

+ 1 - 0
variants/lilygo_techo_card/target.cpp

@@ -23,6 +23,7 @@ EnvironmentSensorManager sensors = EnvironmentSensorManager();
 #ifdef DISPLAY_CLASS
   DISPLAY_CLASS display;
   MomentaryButton user_btn(PIN_USER_BTN, 1000, true);
+  MomentaryButton back_btn(PIN_BUTTON2, 1000, true);
 #endif
 
 bool radio_init() {

+ 1 - 0
variants/lilygo_techo_card/target.h

@@ -22,6 +22,7 @@ extern EnvironmentSensorManager sensors;
 #ifdef DISPLAY_CLASS
   extern DISPLAY_CLASS display;
   extern MomentaryButton user_btn;
+  extern MomentaryButton back_btn;
 #endif
 
 bool radio_init();