Display BLE MAC address in sysinfo Screen.
This commit is contained in:
@@ -2,12 +2,15 @@
|
||||
|
||||
#include <FreeRTOS.h>
|
||||
#include <queue.h>
|
||||
#include <array>
|
||||
|
||||
namespace Pinetime {
|
||||
namespace Controllers {
|
||||
class Ble {
|
||||
public:
|
||||
using BleAddress = std::array<uint8_t, 6>;
|
||||
enum class FirmwareUpdateStates {Idle, Running, Validated, Error};
|
||||
enum class AddressTypes { Public, Random };
|
||||
|
||||
Ble() = default;
|
||||
bool IsConnected() const {return isConnected;}
|
||||
@@ -24,12 +27,18 @@ namespace Pinetime {
|
||||
uint32_t FirmwareUpdateTotalBytes() const { return firmwareUpdateTotalBytes; }
|
||||
uint32_t FirmwareUpdateCurrentBytes() const { return firmwareUpdateCurrentBytes; }
|
||||
FirmwareUpdateStates State() const { return firmwareUpdateState; }
|
||||
|
||||
void Address(BleAddress&& addr) { address = addr; }
|
||||
const BleAddress& Address() const { return address; }
|
||||
void AddressType(AddressTypes t) { addressType = t;}
|
||||
private:
|
||||
bool isConnected = false;
|
||||
bool isFirmwareUpdating = false;
|
||||
uint32_t firmwareUpdateTotalBytes = 0;
|
||||
uint32_t firmwareUpdateCurrentBytes = 0;
|
||||
FirmwareUpdateStates firmwareUpdateState = FirmwareUpdateStates::Idle;
|
||||
BleAddress address;
|
||||
AddressTypes addressType;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -90,8 +90,13 @@ void NimbleController::Init() {
|
||||
res = ble_hs_id_infer_auto(0, &addrType);
|
||||
ASSERT(res == 0);
|
||||
res = ble_svc_gap_device_name_set(deviceName);
|
||||
|
||||
ASSERT(res == 0);
|
||||
Pinetime::Controllers::Ble::BleAddress address;
|
||||
res = ble_hs_id_copy_addr(addrType, address.data(), nullptr);
|
||||
ASSERT(res == 0);
|
||||
bleController.AddressType((addrType == 0) ? Ble::AddressTypes::Public : Ble::AddressTypes::Random);
|
||||
bleController.Address(std::move(address));
|
||||
|
||||
res = ble_gatts_start();
|
||||
ASSERT(res == 0);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace Pinetime {
|
||||
AlertNotificationClient alertNotificationClient;
|
||||
CurrentTimeService currentTimeService;
|
||||
|
||||
uint8_t addrType;
|
||||
uint8_t addrType; // 1 = Random, 0 = PUBLIC
|
||||
uint16_t connectionHandle;
|
||||
|
||||
ble_uuid128_t dfuServiceUuid {
|
||||
|
||||
Reference in New Issue
Block a user