aboutsummaryrefslogtreecommitdiffstats
path: root/src/Components/Ble/ImmediateAlertService.cpp
diff options
context:
space:
mode:
authorAvamander <avamander@gmail.com>2020-10-02 21:44:27 +0300
committerAvamander <avamander@gmail.com>2020-10-02 21:44:27 +0300
commit40a643d203d2d21834dd2b35d83419a56a3939b6 (patch)
tree522947ffe2e7c10f6e8c45a6e7d1e58d3521829b /src/Components/Ble/ImmediateAlertService.cpp
parent455d8319e4af521de4e24cfa423a4c06c4378a8d (diff)
Renamed Components/ to components/
Diffstat (limited to 'src/Components/Ble/ImmediateAlertService.cpp')
-rw-r--r--src/Components/Ble/ImmediateAlertService.cpp76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/Components/Ble/ImmediateAlertService.cpp b/src/Components/Ble/ImmediateAlertService.cpp
deleted file mode 100644
index d2c4cffb..00000000
--- a/src/Components/Ble/ImmediateAlertService.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "ImmediateAlertService.h"
-#include <SystemTask/SystemTask.h>
-#include "AlertNotificationService.h"
-
-using namespace Pinetime::Controllers;
-
-constexpr ble_uuid16_t ImmediateAlertService::immediateAlertServiceUuid;
-constexpr ble_uuid16_t ImmediateAlertService::alertLevelUuid;
-
-namespace {
- int AlertLevelCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt *ctxt, void *arg) {
- auto *immediateAlertService = static_cast<ImmediateAlertService *>(arg);
- return immediateAlertService->OnAlertLevelChanged(conn_handle, attr_handle, ctxt);
- }
-
- const char* ToString(ImmediateAlertService::Levels level) {
- switch (level) {
- case ImmediateAlertService::Levels::NoAlert: return "Alert : None";
- case ImmediateAlertService::Levels::HighAlert: return "Alert : High";
- case ImmediateAlertService::Levels::MildAlert: return "Alert : Mild";
- default: return "";
- }
- }
-}
-
-ImmediateAlertService::ImmediateAlertService(Pinetime::System::SystemTask &systemTask,
- Pinetime::Controllers::NotificationManager &notificationManager) :
- systemTask{systemTask},
- notificationManager{notificationManager},
- characteristicDefinition{
- {
- .uuid = (ble_uuid_t *) &alertLevelUuid,
- .access_cb = AlertLevelCallback,
- .arg = this,
- .flags = BLE_GATT_CHR_F_WRITE_NO_RSP,
- .val_handle = &alertLevelHandle
- },
- {
- 0
- }
- },
- serviceDefinition{
- {
- /* Device Information Service */
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid = (ble_uuid_t *) &immediateAlertServiceUuid,
- .characteristics = characteristicDefinition
- },
- {
- 0
- },
- }{
-
-}
-
-void ImmediateAlertService::Init() {
- int res = 0;
- res = ble_gatts_count_cfg(serviceDefinition);
- ASSERT(res == 0);
-
- res = ble_gatts_add_svcs(serviceDefinition);
- ASSERT(res == 0);
-}
-
-int ImmediateAlertService::OnAlertLevelChanged(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt *context) {
- if(attributeHandle == alertLevelHandle) {
- if(context->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- auto alertLevel = static_cast<Levels>(context->om->om_data[0]);
- auto* alertString = ToString(alertLevel);
- notificationManager.Push(Pinetime::Controllers::NotificationManager::Categories::SimpleAlert, alertString, strlen(alertString));
- systemTask.PushMessage(Pinetime::System::SystemTask::Messages::OnNewNotification);
- }
- }
-
- return 0;
-} \ No newline at end of file