Display BLE MAC address in sysinfo Screen.

This commit is contained in:
JF
2020-06-08 21:51:34 +02:00
parent 9115c49bba
commit 47851fb3b4
6 changed files with 36 additions and 10 deletions

View File

@@ -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;
};
}

View File

@@ -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);
}

View File

@@ -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 {