#include #include "target.h" HeltecV4Board board; #if defined(P_LORA_SCLK) static SPIClass spi; RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY, spi); #else RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY); #endif WRAPPER_CLASS radio_driver(radio, board); ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); #if ENV_INCLUDE_GPS #include MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1, &rtc_clock); EnvironmentSensorManager sensors = EnvironmentSensorManager(nmea); #else EnvironmentSensorManager sensors; #endif #ifdef DISPLAY_CLASS DISPLAY_CLASS display(NULL); MomentaryButton user_btn(PIN_USER_BTN, 1000, true); #if UI_HAS_JOYSTICK // Optional wired joystick — see the heltec_v4_companion_solo_dual env for the // pin defines this needs. Unlike the Wio Tracker L1 (external pull-ups on // board) these pass pulldownup = true, so each contact only has to short its // pin to GND; the internal pull-up does the rest. Back gets multiclick = true // because the UI's triple-click buzzer toggle lives on it. MomentaryButton joystick_left (JOYSTICK_LEFT, 1000, true, true, false); MomentaryButton joystick_right(JOYSTICK_RIGHT, 1000, true, true, false); MomentaryButton back_btn (PIN_BACK_BTN, 1000, true, true, true); #if UI_HAS_JOYSTICK_UPDOWN MomentaryButton joystick_up (JOYSTICK_UP, 1000, true, true, false); MomentaryButton joystick_down(JOYSTICK_DOWN, 1000, true, true, false); #endif #endif #endif bool radio_init() { fallback_clock.begin(); rtc_clock.begin(Wire); #if defined(P_LORA_SCLK) return radio.std_init(&spi); #else return radio.std_init(); #endif } mesh::LocalIdentity radio_new_identity() { RadioNoiseListener rng(radio); return mesh::LocalIdentity(&rng); // create new random identity }