WioWM1110Board.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifdef WIO_WM1110
  2. #include <Arduino.h>
  3. #include <Wire.h>
  4. #include <bluefruit.h>
  5. #include "WioWM1110Board.h"
  6. static BLEDfu bledfu;
  7. static void connect_callback(uint16_t conn_handle) {
  8. (void)conn_handle;
  9. MESH_DEBUG_PRINTLN("BLE client connected");
  10. }
  11. static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
  12. (void)conn_handle;
  13. (void)reason;
  14. MESH_DEBUG_PRINTLN("BLE client disconnected");
  15. }
  16. void WioWM1110Board::begin() {
  17. startup_reason = BD_STARTUP_NORMAL;
  18. sd_power_mode_set(NRF_POWER_MODE_LOWPWR);
  19. NRF_POWER->DCDCEN = 1;
  20. pinMode(BATTERY_PIN, INPUT);
  21. pinMode(LED_GREEN, OUTPUT);
  22. pinMode(LED_RED, OUTPUT);
  23. pinMode(SENSOR_POWER_PIN, OUTPUT);
  24. digitalWrite(LED_GREEN, HIGH);
  25. digitalWrite(LED_RED, LOW);
  26. digitalWrite(SENSOR_POWER_PIN, LOW);
  27. Serial1.begin(115200);
  28. #if defined(PIN_WIRE_SDA) && defined(PIN_WIRE_SCL)
  29. Wire.setPins(PIN_WIRE_SDA, PIN_WIRE_SCL);
  30. #endif
  31. Wire.begin();
  32. delay(10);
  33. }
  34. bool WioWM1110Board::startOTAUpdate(const char *id, char reply[]) {
  35. Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);
  36. Bluefruit.configPrphConn(92, BLE_GAP_EVENT_LENGTH_MIN, 16, 16);
  37. Bluefruit.begin(1, 0);
  38. Bluefruit.setTxPower(4);
  39. Bluefruit.setName("WM1110_OTA");
  40. Bluefruit.Periph.setConnectCallback(connect_callback);
  41. Bluefruit.Periph.setDisconnectCallback(disconnect_callback);
  42. bledfu.begin();
  43. Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  44. Bluefruit.Advertising.addTxPower();
  45. Bluefruit.Advertising.addName();
  46. Bluefruit.Advertising.restartOnDisconnect(true);
  47. Bluefruit.Advertising.setInterval(32, 244);
  48. Bluefruit.Advertising.setFastTimeout(30);
  49. Bluefruit.Advertising.start(0);
  50. strcpy(reply, "OK - started");
  51. return true;
  52. }
  53. #endif