mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
74 lines
1.7 KiB
C++
74 lines
1.7 KiB
C++
#ifdef WIO_WM1110
|
|
|
|
#include <Arduino.h>
|
|
#include <Wire.h>
|
|
#include <bluefruit.h>
|
|
|
|
#include "WioWM1110Board.h"
|
|
|
|
static BLEDfu bledfu;
|
|
|
|
static void connect_callback(uint16_t conn_handle) {
|
|
(void)conn_handle;
|
|
MESH_DEBUG_PRINTLN("BLE client connected");
|
|
}
|
|
|
|
static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
|
|
(void)conn_handle;
|
|
(void)reason;
|
|
|
|
MESH_DEBUG_PRINTLN("BLE client disconnected");
|
|
}
|
|
|
|
void WioWM1110Board::begin() {
|
|
startup_reason = BD_STARTUP_NORMAL;
|
|
|
|
NRF_POWER->DCDCEN = 1;
|
|
|
|
pinMode(BATTERY_PIN, INPUT);
|
|
pinMode(LED_GREEN, OUTPUT);
|
|
pinMode(LED_RED, OUTPUT);
|
|
pinMode(SENSOR_POWER_PIN, OUTPUT);
|
|
|
|
digitalWrite(LED_GREEN, HIGH);
|
|
digitalWrite(LED_RED, LOW);
|
|
digitalWrite(SENSOR_POWER_PIN, LOW);
|
|
|
|
Serial1.begin(115200);
|
|
|
|
#if defined(PIN_WIRE_SDA) && defined(PIN_WIRE_SCL)
|
|
Wire.setPins(PIN_WIRE_SDA, PIN_WIRE_SCL);
|
|
#endif
|
|
|
|
Wire.begin();
|
|
|
|
delay(10);
|
|
}
|
|
|
|
bool WioWM1110Board::startOTAUpdate(const char *id, char reply[]) {
|
|
Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);
|
|
Bluefruit.configPrphConn(92, BLE_GAP_EVENT_LENGTH_MIN, 16, 16);
|
|
|
|
Bluefruit.begin(1, 0);
|
|
Bluefruit.setTxPower(4);
|
|
Bluefruit.setName("WM1110_OTA");
|
|
|
|
Bluefruit.Periph.setConnectCallback(connect_callback);
|
|
Bluefruit.Periph.setDisconnectCallback(disconnect_callback);
|
|
|
|
bledfu.begin();
|
|
|
|
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
|
|
Bluefruit.Advertising.addTxPower();
|
|
Bluefruit.Advertising.addName();
|
|
Bluefruit.Advertising.restartOnDisconnect(true);
|
|
Bluefruit.Advertising.setInterval(32, 244);
|
|
Bluefruit.Advertising.setFastTimeout(30);
|
|
Bluefruit.Advertising.start(0);
|
|
|
|
strcpy(reply, "OK - started");
|
|
return true;
|
|
}
|
|
|
|
#endif
|
|
|