mirror of
https://github.com/Genaker/LoraSA.git
synced 2026-05-05 21:12:59 +02:00
Refactor header files - includes should only declare, not define
This commit is contained in:
@@ -57,6 +57,7 @@ void _onUsbEvent0(void *arg, esp_event_base_t event_base, int32_t event_id,
|
||||
bool Comms::initComms(Config &c)
|
||||
{
|
||||
bool fine = false;
|
||||
#ifndef HELTEC
|
||||
if (c.listen_on_usb.equalsIgnoreCase("readline"))
|
||||
{
|
||||
// comms using readline plaintext protocol
|
||||
@@ -68,13 +69,14 @@ bool Comms::initComms(Config &c)
|
||||
|
||||
fine = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (c.listen_on_serial0.equalsIgnoreCase("readline"))
|
||||
{
|
||||
// comms using readline plaintext protocol
|
||||
Comms0 = new ReadlineComms("UART0", Serial0);
|
||||
Serial0.onReceive(_onReceive0, false);
|
||||
Serial0.begin(115200);
|
||||
Comms0 = new ReadlineComms("UART0", SERIAL0);
|
||||
SERIAL0.onReceive(_onReceive0, false);
|
||||
SERIAL0.begin(115200);
|
||||
|
||||
Serial.println("Initialized communications on Serial0 using readline protocol");
|
||||
}
|
||||
|
||||
@@ -5,6 +5,12 @@
|
||||
#include <HardwareSerial.h>
|
||||
#include <config.h>
|
||||
|
||||
#ifdef HELTEC
|
||||
#define SERIAL0 Serial
|
||||
#else
|
||||
#define SERIAL0 Serial0
|
||||
#endif
|
||||
|
||||
enum MessageType
|
||||
{
|
||||
WRAP = 0,
|
||||
@@ -69,7 +75,7 @@ struct Comms
|
||||
|
||||
struct NoopComms : Comms
|
||||
{
|
||||
NoopComms() : Comms("no-op", Serial0) {};
|
||||
NoopComms() : Comms("no-op", SERIAL0) {};
|
||||
|
||||
virtual bool send(Message &) { return true; };
|
||||
virtual void _onReceive() {};
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#ifndef __LILY_GO_H
|
||||
#define __LILY_GO_H
|
||||
|
||||
// Define for our code
|
||||
#define RST_OLED UNUSED_PIN
|
||||
@@ -25,32 +27,43 @@
|
||||
// Assume MISO and MOSI being wrong when not using Heltec's board definition
|
||||
// and use hspi to make it work anyway. See heltec_setup() for the actual SPI setup.
|
||||
#include <SPI.h>
|
||||
SPIClass *hspi = new SPIClass(2);
|
||||
SX1262 radio = new Module(SS, DIO1, RST_LoRa, BUSY_LoRa, *hspi);
|
||||
extern SPIClass *hspi;
|
||||
#define RADIO_TYPE SX1262
|
||||
#define RADIO_MODULE_INIT() new Module(SS, DIO1, RST_LoRa, BUSY_LoRa, *hspi);
|
||||
#else // ARDUINO_heltec_wifi_32_lora_V3
|
||||
#ifdef USING_SX1280PA
|
||||
SX1280 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#define RADIO_TYPE SX1280
|
||||
#define RADIO_MODULE_INIT() \
|
||||
new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#endif // end USING_SX1280PA
|
||||
#ifdef USING_SX1262
|
||||
// Default SPI on pins from pins_arduino.h
|
||||
SX1262 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#define RADIO_TYPE SX1262
|
||||
#define RADIO_MODULE_INIT() \
|
||||
new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN)
|
||||
#endif // end USING_SX1262
|
||||
#ifdef USING_LR1121
|
||||
// Default SPI on pins from pins_arduino.h
|
||||
LR1121 radio = new Module(RADIO_CS_PIN, RADIO_DIO9_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#define RADIO_TYPE LR1121
|
||||
#define RADIO_MODULE_INIT() \
|
||||
new Module(RADIO_CS_PIN, RADIO_DIO9_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#endif // end USING_LR1121
|
||||
#ifdef USING_SX1276
|
||||
// Default SPI on pins from pins_arduino.h
|
||||
SX1276 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#define RADIO_TYPE SX1276
|
||||
#define RADIO_MODULE_INIT() \
|
||||
new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
|
||||
#endif // end USING_SX1276
|
||||
#endif // end ARDUINO_heltec_wifi_32_lora_V3
|
||||
#endif // end HELTEC_NO_RADIO_INSTANCE
|
||||
|
||||
void heltec_led(int led) {}
|
||||
extern RADIO_TYPE radio;
|
||||
|
||||
void heltec_deep_sleep() {}
|
||||
void heltec_led(int led);
|
||||
|
||||
void heltec_delay(int millisec) { delay(millisec); }
|
||||
void heltec_deep_sleep(int sleep_seconds = 0);
|
||||
|
||||
void heltec_delay(int millisec);
|
||||
|
||||
#ifndef HELTEC_NO_DISPLAY_INSTANCE
|
||||
/**
|
||||
@@ -89,78 +102,34 @@ class PrintSplitter : public Print
|
||||
#endif
|
||||
#define SCREEN_ADDRESS 0x3C
|
||||
|
||||
SSD1306Wire display(SCREEN_ADDRESS, I2C_SDA, I2C_SCL, DISPLAY_GEOMETRY);
|
||||
#define DISPLAY_TYPE SSD1306Wire
|
||||
#define DISPLAY_INIT() SSD1306Wire(SCREEN_ADDRESS, I2C_SDA, I2C_SCL, DISPLAY_GEOMETRY)
|
||||
// SH1106Wire display(0x3c, I2C_SDA, I2C_SCL, DISPLAY_GEOMETRY);
|
||||
PrintSplitter both(Serial, display);
|
||||
|
||||
#define BOTH_TYPE PrintSplitter
|
||||
#define BOTH_INIT() PrintSplitter(Serial, display)
|
||||
#else
|
||||
Print &both = Serial;
|
||||
#define DISPLAY_TYPE void *
|
||||
#define BOTH_TYPE Print &
|
||||
#define BOTH_INIT() Serial
|
||||
#endif
|
||||
|
||||
extern DISPLAY_TYPE display;
|
||||
extern BOTH_TYPE both;
|
||||
// some fake pin
|
||||
#ifdef T3_V1_6_SX1276
|
||||
#define BUTTON_PIN 22
|
||||
#endif
|
||||
#define BUTTON BUTTON_PIN
|
||||
#include "HotButton.h"
|
||||
HotButton button(BUTTON);
|
||||
extern HotButton button;
|
||||
|
||||
void heltec_loop()
|
||||
{
|
||||
#ifndef DT3_V1_6_SX1276
|
||||
button.update();
|
||||
#endif
|
||||
}
|
||||
void heltec_loop();
|
||||
|
||||
// This file contains a binary patch for the SX1262
|
||||
#include "modules/SX126x/patches/SX126x_patch_scan.h"
|
||||
|
||||
void heltec_display_power(bool on)
|
||||
{
|
||||
#ifndef HELTEC_NO_DISPLAY_INSTANCE
|
||||
if (on)
|
||||
{
|
||||
#ifdef HELTEC_WIRELESS_STICK
|
||||
// They hooked the display to "external" power, and didn't tell anyone
|
||||
heltec_ve(true);
|
||||
delay(5);
|
||||
#endif
|
||||
pinMode(RST_OLED, OUTPUT);
|
||||
digitalWrite(RST_OLED, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(RST_OLED, LOW);
|
||||
delay(20);
|
||||
digitalWrite(RST_OLED, HIGH);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef HELTEC_WIRELESS_STICK
|
||||
heltec_ve(false);
|
||||
#else
|
||||
display.displayOff();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
void heltec_setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println("LILYGO BOARD");
|
||||
void heltec_display_power(bool on);
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
SPI.begin(RADIO_SCLK_PIN, RADIO_MISO_PIN, RADIO_MOSI_PIN);
|
||||
#elif defined(ARDUINO_ARCH_STM32)
|
||||
SPI.setMISO(RADIO_MISO_PIN);
|
||||
SPI.setMOSI(RADIO_MOSI_PIN);
|
||||
SPI.setSCLK(RADIO_SCLK_PIN);
|
||||
SPI.begin();
|
||||
void heltec_setup();
|
||||
#endif
|
||||
|
||||
#ifndef ARDUINO_heltec_wifi_32_lora_V3
|
||||
hspi->begin(SCK, MISO, MOSI, SS);
|
||||
#endif
|
||||
#ifndef HELTEC_NO_DISPLAY_INSTANCE
|
||||
heltec_display_power(true);
|
||||
display.init();
|
||||
// display.setContrast(200);
|
||||
display.flipScreenVertically();
|
||||
#endif
|
||||
}
|
||||
@@ -12,6 +12,86 @@
|
||||
|
||||
#include "LoRaBoards.h"
|
||||
|
||||
#include "LiLyGo.h"
|
||||
|
||||
// Implement stubs for functions that exist on Heltec, but not on LilyGo
|
||||
void heltec_led(int led) {}
|
||||
|
||||
void heltec_deep_sleep(int sleep_seconds) {}
|
||||
|
||||
void heltec_delay(int millisec) { delay(millisec); }
|
||||
|
||||
DISPLAY_TYPE display = DISPLAY_INIT();
|
||||
BOTH_TYPE both = BOTH_INIT();
|
||||
|
||||
HotButton button(BUTTON);
|
||||
|
||||
void heltec_loop()
|
||||
{
|
||||
#ifndef DT3_V1_6_SX1276
|
||||
button.update();
|
||||
#endif
|
||||
}
|
||||
|
||||
void heltec_display_power(bool on)
|
||||
{
|
||||
#ifndef HELTEC_NO_DISPLAY_INSTANCE
|
||||
if (on)
|
||||
{
|
||||
#ifdef HELTEC_WIRELESS_STICK
|
||||
// They hooked the display to "external" power, and didn't tell anyone
|
||||
heltec_ve(true);
|
||||
delay(5);
|
||||
#endif
|
||||
pinMode(RST_OLED, OUTPUT);
|
||||
digitalWrite(RST_OLED, HIGH);
|
||||
delay(1);
|
||||
digitalWrite(RST_OLED, LOW);
|
||||
delay(20);
|
||||
digitalWrite(RST_OLED, HIGH);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef HELTEC_WIRELESS_STICK
|
||||
heltec_ve(false);
|
||||
#else
|
||||
display.displayOff();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void heltec_setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println("LILYGO BOARD");
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
SPI.begin(RADIO_SCLK_PIN, RADIO_MISO_PIN, RADIO_MOSI_PIN);
|
||||
#elif defined(ARDUINO_ARCH_STM32)
|
||||
SPI.setMISO(RADIO_MISO_PIN);
|
||||
SPI.setMOSI(RADIO_MOSI_PIN);
|
||||
SPI.setSCLK(RADIO_SCLK_PIN);
|
||||
SPI.begin();
|
||||
#endif
|
||||
|
||||
#ifndef ARDUINO_heltec_wifi_32_lora_V3
|
||||
hspi->begin(SCK, MISO, MOSI, SS);
|
||||
#endif
|
||||
#ifndef HELTEC_NO_DISPLAY_INSTANCE
|
||||
heltec_display_power(true);
|
||||
display.init();
|
||||
// display.setContrast(200);
|
||||
display.flipScreenVertically();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef ARDUINO_heltec_wifi_32_lora_V3
|
||||
SPIClass hspi = new SPIClass(2);
|
||||
#endif
|
||||
|
||||
RADIO_TYPE radio = RADIO_MODULE_INIT();
|
||||
|
||||
#if defined(HAS_SDCARD)
|
||||
SPIClass SDCardSPI(HSPI);
|
||||
#endif
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* @last-update 2024-08-07
|
||||
*/
|
||||
|
||||
#ifdef LILYGO
|
||||
#pragma once
|
||||
|
||||
#include "utilities.h"
|
||||
@@ -95,3 +96,4 @@ extern SPIClass SDCardSPI;
|
||||
#elif defined(ARDUINO_ARCH_STM32)
|
||||
extern HardwareSerial SerialGPS;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
// #include "utilities.h"
|
||||
// Our Code
|
||||
#include "LiLyGo.h"
|
||||
#include <LiLyGo.h>
|
||||
#endif // end LILYGO
|
||||
|
||||
#define BT_SCAN_DELAY 60 * 1 * 1000
|
||||
|
||||
Reference in New Issue
Block a user