begin splitting up source files, so we can have a tree of sources...

unique to each architecture.  For now, we have "esp32" and "bare"

esp32 is the old esp stuff

bare is an target suitable for emulation that doesn't require any
particular hardware to run (no bluetooth, no i2c devices, no spi devices)
pull/87/head
geeksville 2020-04-10 12:15:00 -07:00
rodzic 06a17885eb
commit 93a06906cb
5 zmienionych plików z 84 dodań i 3 usunięć

Wyświetl plik

@ -15,6 +15,11 @@ default_envs = tbeam
; default to a US frequency range, change it as needed for your region and hardware (CN, JP, EU433, EU865)
hw_version = US
; Common settings for ESP targes, mixin with extends = esp32_base
[esp32_base]
src_filter =
${env.src_filter} -<bare/>
[env]
platform = espressif32
framework = arduino
@ -70,7 +75,8 @@ lib_deps =
https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git
; The 1.0 release of the TBEAM board
[env:tbeam]
[env:tbeam]
extends = esp32_base
board = ttgo-t-beam
lib_deps =
${env.lib_deps}
@ -79,22 +85,26 @@ build_flags =
${env.build_flags} -D TBEAM_V10
; The original TBEAM board without the AXP power chip and a few other changes
[env:tbeam0.7]
[env:tbeam0.7]
extends = esp32_base
board = ttgo-t-beam
build_flags =
${env.build_flags} -D TBEAM_V07
[env:heltec]
;build_type = debug ; to make it possible to step through our jtag debugger
extends = esp32_base
board = heltec_wifi_lora_32_V2
[env:ttgo-lora32-v1]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${env.build_flags} -D TTGO_LORA_V1
; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works
[env:ttgo-lora32-v2]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${env.build_flags} -D TTGO_LORA_V2
@ -104,4 +114,8 @@ build_flags =
[env:bare]
board = ttgo-lora32-v1
build_flags =
${env.build_flags} -D BARE_BOARD
${env.build_flags} -D BARE_BOARD
src_filter =
${env.src_filter} -<esp32/>
lib_ignore =
BluetoothOTA

Wyświetl plik

@ -0,0 +1,6 @@
#include "target_specific.h"
void setBluetoothEnable(bool on)
{
// Do nothing
}

Wyświetl plik

@ -202,6 +202,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// This string must exactly match the case used in release file names or the android updater won't work
#define HW_VENDOR "bare"
#define NO_ESP32 // Don't use ESP32 libs (mainly bluetooth)
#endif
// -----------------------------------------------------------------------------

Wyświetl plik

@ -0,0 +1,53 @@
#include "BluetoothUtil.h"
#include "MeshBluetoothService.h"
#include "PowerFSM.h"
#include "configuration.h"
#include "main.h"
#include "target_specific.h"
bool bluetoothOn;
// This routine is called multiple times, once each time we come back from sleep
void reinitBluetooth()
{
DEBUG_MSG("Starting bluetooth\n");
// FIXME - we are leaking like crazy
// AllocatorScope scope(btPool);
// Note: these callbacks might be coming in from a different thread.
BLEServer *serve = initBLE(
[](uint32_t pin) {
powerFSM.trigger(EVENT_BLUETOOTH_PAIR);
screen.startBluetoothPinScreen(pin);
},
[]() { screen.stopBluetoothPinScreen(); }, getDeviceName(), HW_VENDOR, xstr(APP_VERSION),
xstr(HW_VERSION)); // FIXME, use a real name based on the macaddr
createMeshBluetoothService(serve);
// Start advertising - this must be done _after_ creating all services
serve->getAdvertising()->start();
}
// Enable/disable bluetooth.
void setBluetoothEnable(bool on)
{
if (on != bluetoothOn) {
DEBUG_MSG("Setting bluetooth enable=%d\n", on);
bluetoothOn = on;
if (on) {
Serial.printf("Pre BT: %u heap size\n", ESP.getFreeHeap());
// ESP_ERROR_CHECK( heap_trace_start(HEAP_TRACE_LEAKS) );
reinitBluetooth();
} else {
// We have to totally teardown our bluetooth objects to prevent leaks
stopMeshBluetoothService(); // Must do before shutting down bluetooth
deinitBLE();
destroyMeshBluetoothService(); // must do after deinit, because it frees our service
Serial.printf("Shutdown BT: %u heap size\n", ESP.getFreeHeap());
// ESP_ERROR_CHECK( heap_trace_stop() );
// heap_trace_dump();
}
}
}

Wyświetl plik

@ -0,0 +1,6 @@
#pragma once
// Functions that are unique to particular target types (esp32, bare, nrf52 etc...)
// Enable/disable bluetooth.
void setBluetoothEnable(bool on);