diff options
Diffstat (limited to 'src/components/ble')
23 files changed, 115 insertions, 57 deletions
diff --git a/src/components/ble/AlertNotificationClient.cpp b/src/components/ble/AlertNotificationClient.cpp index abe41099..e7a18626 100644 --- a/src/components/ble/AlertNotificationClient.cpp +++ b/src/components/ble/AlertNotificationClient.cpp @@ -1,7 +1,7 @@ -#include <systemtask/SystemTask.h> -#include "NotificationManager.h" - #include "AlertNotificationClient.h" +#include <algorithm> +#include "NotificationManager.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; constexpr ble_uuid16_t AlertNotificationClient::ansServiceUuid; @@ -159,8 +159,8 @@ void AlertNotificationClient::OnNotification(ble_gap_event *event) { const auto maxBufferSize{maxMessageSize + headerSize}; const auto dbgPacketLen = OS_MBUF_PKTLEN(event->notify_rx.om); - size_t bufferSize = min(dbgPacketLen + stringTerminatorSize, maxBufferSize); - auto messageSize = min(maxMessageSize, (bufferSize - headerSize)); + size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize); + auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize)); NotificationManager::Notification notif; os_mbuf_copydata(event->notify_rx.om, headerSize, messageSize - 1, notif.message.data()); diff --git a/src/components/ble/AlertNotificationClient.h b/src/components/ble/AlertNotificationClient.h index bc0df51e..fa10456c 100644 --- a/src/components/ble/AlertNotificationClient.h +++ b/src/components/ble/AlertNotificationClient.h @@ -1,13 +1,23 @@ #pragma once #include <cstdint> -#include <array> +#include <functional> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min #include "BleClient.h" - namespace Pinetime { + + namespace System { + class SystemTask; + } + namespace Controllers { + class NotificationManager; + class AlertNotificationClient : public BleClient { public: explicit AlertNotificationClient(Pinetime::System::SystemTask &systemTask, diff --git a/src/components/ble/AlertNotificationService.cpp b/src/components/ble/AlertNotificationService.cpp index 32711b92..3156470c 100644 --- a/src/components/ble/AlertNotificationService.cpp +++ b/src/components/ble/AlertNotificationService.cpp @@ -1,10 +1,9 @@ - -#include <hal/nrf_rtc.h> -#include "NotificationManager.h" -#include <systemtask/SystemTask.h> - #include "AlertNotificationService.h" +#include <hal/nrf_rtc.h> #include <cstring> +#include <algorithm> +#include "NotificationManager.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; @@ -60,8 +59,8 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle const auto maxBufferSize{maxMessageSize + headerSize}; const auto dbgPacketLen = OS_MBUF_PKTLEN(ctxt->om); - size_t bufferSize = min(dbgPacketLen + stringTerminatorSize, maxBufferSize); - auto messageSize = min(maxMessageSize, (bufferSize-headerSize)); + size_t bufferSize = std::min(dbgPacketLen + stringTerminatorSize, maxBufferSize); + auto messageSize = std::min(maxMessageSize, (bufferSize-headerSize)); NotificationManager::Notification notif; os_mbuf_copydata(ctxt->om, headerSize, messageSize-1, notif.message.data()); diff --git a/src/components/ble/AlertNotificationService.h b/src/components/ble/AlertNotificationService.h index 1b8c4989..120312d2 100644 --- a/src/components/ble/AlertNotificationService.h +++ b/src/components/ble/AlertNotificationService.h @@ -1,10 +1,20 @@ #pragma once #include <cstdint> #include <array> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min namespace Pinetime { + + namespace System { + class SystemTask; + } namespace Controllers { + class NotificationManager; + class AlertNotificationService { public: AlertNotificationService(Pinetime::System::SystemTask &systemTask, diff --git a/src/components/ble/BatteryInformationService.h b/src/components/ble/BatteryInformationService.h index 74b2222c..b00000a4 100644 --- a/src/components/ble/BatteryInformationService.h +++ b/src/components/ble/BatteryInformationService.h @@ -1,5 +1,9 @@ #pragma once +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min namespace Pinetime { namespace System { diff --git a/src/components/ble/BleController.cpp b/src/components/ble/BleController.cpp index 2b396e12..650ec79f 100644 --- a/src/components/ble/BleController.cpp +++ b/src/components/ble/BleController.cpp @@ -1,5 +1,3 @@ -#include <cstring> -#include <cstdlib> #include "BleController.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/BleController.h b/src/components/ble/BleController.h index 3f52ea25..0570c8d0 100644 --- a/src/components/ble/BleController.h +++ b/src/components/ble/BleController.h @@ -1,8 +1,7 @@ #pragma once -#include <FreeRTOS.h> -#include <queue.h> #include <array> +#include <cstdint> namespace Pinetime { namespace Controllers { diff --git a/src/components/ble/CurrentTimeClient.cpp b/src/components/ble/CurrentTimeClient.cpp index 92f9374b..be50fede 100644 --- a/src/components/ble/CurrentTimeClient.cpp +++ b/src/components/ble/CurrentTimeClient.cpp @@ -1,5 +1,6 @@ -#include <hal/nrf_rtc.h> #include "CurrentTimeClient.h" +#include <hal/nrf_rtc.h> +#include "components/datetime/DateTimeController.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/CurrentTimeClient.h b/src/components/ble/CurrentTimeClient.h index 93139399..1b2e018c 100644 --- a/src/components/ble/CurrentTimeClient.h +++ b/src/components/ble/CurrentTimeClient.h @@ -1,13 +1,15 @@ #pragma once +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max +#include <host/ble_gap.h> +#undef max +#undef min #include <cstdint> -#include <array> - -#include "components/datetime/DateTimeController.h" #include "BleClient.h" -#include <host/ble_gap.h> namespace Pinetime { namespace Controllers { + class DateTime; class CurrentTimeClient : public BleClient { public: diff --git a/src/components/ble/CurrentTimeService.h b/src/components/ble/CurrentTimeService.h index a6be9647..23956283 100644 --- a/src/components/ble/CurrentTimeService.h +++ b/src/components/ble/CurrentTimeService.h @@ -3,7 +3,11 @@ #include <array> #include "components/datetime/DateTimeController.h" +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min namespace Pinetime { namespace Controllers { diff --git a/src/components/ble/DeviceInformationService.h b/src/components/ble/DeviceInformationService.h index 25ab8402..94ca7bbf 100644 --- a/src/components/ble/DeviceInformationService.h +++ b/src/components/ble/DeviceInformationService.h @@ -1,9 +1,10 @@ #pragma once -#include <cstdint> -#include <array> - +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> -#include <Version.h> +#undef max +#undef min +#include "Version.h" namespace Pinetime { namespace Controllers { diff --git a/src/components/ble/DfuService.cpp b/src/components/ble/DfuService.cpp index 4dec5141..90795b49 100644 --- a/src/components/ble/DfuService.cpp +++ b/src/components/ble/DfuService.cpp @@ -1,8 +1,8 @@ +#include "DfuService.h" #include <cstring> - #include "components/ble/BleController.h" +#include "drivers/SpiNorFlash.h" #include "systemtask/SystemTask.h" -#include "DfuService.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/DfuService.h b/src/components/ble/DfuService.h index d7ba460c..096bd99a 100644 --- a/src/components/ble/DfuService.h +++ b/src/components/ble/DfuService.h @@ -3,7 +3,11 @@ #include <cstdint> #include <array> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min namespace Pinetime { namespace System { diff --git a/src/components/ble/ImmediateAlertService.cpp b/src/components/ble/ImmediateAlertService.cpp index e2cee308..0f6bf6cf 100644 --- a/src/components/ble/ImmediateAlertService.cpp +++ b/src/components/ble/ImmediateAlertService.cpp @@ -1,7 +1,7 @@ -#include <systemtask/SystemTask.h> -#include <cstring> #include "ImmediateAlertService.h" -#include "AlertNotificationService.h" +#include <cstring> +#include "NotificationManager.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/ImmediateAlertService.h b/src/components/ble/ImmediateAlertService.h index c42846c4..2bc9cba5 100644 --- a/src/components/ble/ImmediateAlertService.h +++ b/src/components/ble/ImmediateAlertService.h @@ -1,5 +1,9 @@ #pragma once +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#undef max +#undef min namespace Pinetime { namespace System { diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp index 84f2972b..fdecb6b3 100644 --- a/src/components/ble/MusicService.cpp +++ b/src/components/ble/MusicService.cpp @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ -#include <systemtask/SystemTask.h> #include "MusicService.h" +#include "systemtask/SystemTask.h" int MSCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg) { auto musicService = static_cast<Pinetime::Controllers::MusicService *>(arg); diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h index b365909b..ee3628b0 100644 --- a/src/components/ble/MusicService.h +++ b/src/components/ble/MusicService.h @@ -18,10 +18,13 @@ #pragma once #include <cstdint> -#include <array> +#include <string> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> #include <host/ble_uuid.h> -#include <string> +#undef max +#undef min //c7e50000-78fc-48fe-8e23-43b37a1942d0 #define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0xe5, 0xc7} diff --git a/src/components/ble/NimbleController.cpp b/src/components/ble/NimbleController.cpp index af7f4029..a6f3cc39 100644 --- a/src/components/ble/NimbleController.cpp +++ b/src/components/ble/NimbleController.cpp @@ -1,15 +1,19 @@ -#include "components/datetime/DateTimeController.h" -#include <systemtask/SystemTask.h> -#include "components/ble/NotificationManager.h" -#include <hal/nrf_rtc.h> #include "NimbleController.h" -#include "MusicService.h" -#include <services/gatt/ble_svc_gatt.h> -#include <services/gap/ble_svc_gap.h> -#include <host/util/util.h> -#include <host/ble_hs_id.h> -#include <host/ble_hs.h> +#include <hal/nrf_rtc.h> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#include <host/ble_hs.h> +#include <host/ble_hs_id.h> +#include <host/util/util.h> +#undef max +#undef min +#include <services/gap/ble_svc_gap.h> +#include <services/gatt/ble_svc_gatt.h> +#include "components/ble/BleController.h" +#include "components/ble/NotificationManager.h" +#include "components/datetime/DateTimeController.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h index 8ddec1f9..914f11e6 100644 --- a/src/components/ble/NimbleController.h +++ b/src/components/ble/NimbleController.h @@ -2,24 +2,35 @@ #include <cstdint> -#include "AlertNotificationService.h" +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max +#include <host/ble_gap.h> +#undef max +#undef min #include "AlertNotificationClient.h" -#include "DeviceInformationService.h" +#include "AlertNotificationService.h" +#include "BatteryInformationService.h" #include "CurrentTimeClient.h" -#include "DfuService.h" #include "CurrentTimeService.h" -#include "MusicService.h" -#include "BatteryInformationService.h" +#include "DeviceInformationService.h" +#include "DfuService.h" #include "ImmediateAlertService.h" +#include "MusicService.h" #include "ServiceDiscovery.h" -#include <host/ble_gap.h> namespace Pinetime { namespace Drivers { class SpiNorFlash; } + + namespace System { + class SystemTask; + } + namespace Controllers { + class Ble; class DateTime; + class NotificationManager; class NimbleController { diff --git a/src/components/ble/NotificationManager.cpp b/src/components/ble/NotificationManager.cpp index 67711723..dabcb4ba 100644 --- a/src/components/ble/NotificationManager.cpp +++ b/src/components/ble/NotificationManager.cpp @@ -1,6 +1,6 @@ +#include "NotificationManager.h" #include <cstring> #include <algorithm> -#include "NotificationManager.h" using namespace Pinetime::Controllers; diff --git a/src/components/ble/NotificationManager.h b/src/components/ble/NotificationManager.h index 49fe8306..036d2ed9 100644 --- a/src/components/ble/NotificationManager.h +++ b/src/components/ble/NotificationManager.h @@ -2,6 +2,8 @@ #include <array> #include <atomic> +#include <cstddef> +#include <cstdint> namespace Pinetime { namespace Controllers { @@ -27,7 +29,7 @@ namespace Pinetime { bool ClearNewNotificationFlag(); bool AreNewNotificationsAvailable(); - static constexpr uint8_t MaximumMessageSize() { return MessageSize; }; + static constexpr size_t MaximumMessageSize() { return MessageSize; }; size_t NbNotifications() const; private: diff --git a/src/components/ble/ServiceDiscovery.cpp b/src/components/ble/ServiceDiscovery.cpp index 4b29d89c..4d37b8bd 100644 --- a/src/components/ble/ServiceDiscovery.cpp +++ b/src/components/ble/ServiceDiscovery.cpp @@ -1,5 +1,7 @@ -#include <libraries/log/nrf_log.h> #include "ServiceDiscovery.h" +#include <libraries/log/nrf_log.h> +#include "BleClient.h" + using namespace Pinetime::Controllers; ServiceDiscovery::ServiceDiscovery(std::array<BleClient*, 2>&& clients) : clients{clients} { diff --git a/src/components/ble/ServiceDiscovery.h b/src/components/ble/ServiceDiscovery.h index c86fc4ec..0b26bd1d 100644 --- a/src/components/ble/ServiceDiscovery.h +++ b/src/components/ble/ServiceDiscovery.h @@ -1,12 +1,12 @@ #pragma once #include <array> -#include <functional> -#include <memory> -#include "BleClient.h" +#include <cstdint> namespace Pinetime { namespace Controllers { + class BleClient; + class ServiceDiscovery { public: ServiceDiscovery(std::array<BleClient*, 2>&& bleClients); |