Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
mock_bluetooth.h
Go to the documentation of this file.
1#pragma once
2
5#include <string.h>
6
7namespace ersa {
8namespace test {
9
11public:
12 MockBluetooth() = default;
13
14 Result<void> init() override { return Result<void>(); }
15 const char* sourceId() const override { return "test-mock"; }
16 bool isAvailable() const override { return connected_; }
19 c.notifications = c.media = c.calls = c.answerReject = c.hangup = c.dial = c.remoteDismiss = connected_;
20 return c;
21 }
22 void setCallCallback(hal::CompanionCallCallback cb, void* userData) override {
23 callCb_ = cb; callUserData_ = userData;
24 }
25 void setMediaCallback(hal::CompanionMediaCallback cb, void* userData) override {
26 mediaCb_ = cb; mediaUserData_ = userData;
27 }
29 notifCb_ = cb; notifUserData_ = userData;
30 }
31 void setTimeCallback(hal::CompanionTimeCallback cb, void* userData) override {
32 timeCb_ = cb; timeUserData_ = userData;
33 }
36 }
37 bool acceptCall() override { ++acceptCount_; return connected_; }
38 bool rejectCall() override { ++rejectCount_; return connected_; }
39 bool hangupCall() override { ++hangupCount_; return connected_; }
40 bool dial(const char* number) override {
41 if (!connected_ || !number || !number[0]) return false;
42 ++dialCount_; strncpy(lastDialed_, number, sizeof(lastDialed_) - 1);
43 lastDialed_[sizeof(lastDialed_) - 1] = '\0'; return true;
44 }
46 if (!connected_) return false;
47 lastMediaAction_ = action; ++mediaCmdCount_; return true;
48 }
49 bool dismissNotification(uint32_t uid) override {
50 if (!connected_ || !dismissSucceeds_) return false;
51 ++notificationDismissCount_; lastDismissedUid_ = uid; return true;
52 }
53 void startAdvertising() override { advertising_ = true; }
54 void stopAdvertising() override { advertising_ = false; }
55 bool isConnected() const override { return connected_; }
56 const char* getDeviceName() const override { return "Ersa Wearable"; }
57 const char* getDeviceAddress() const override { return "AA:BB:CC:11:22:33"; }
58
59 void setConnectionCallback(hal::BleConnectionCallback cb, void* userData) override {
60 connCb_ = cb;
61 connUserData_ = userData;
62 }
63
64 // Test helper simulation triggers
65 void simulateConnection(bool conn) {
66 connected_ = conn;
67 if (connCb_) connCb_(conn, connUserData_);
69 }
70
71 void simulateIncomingCall(const char* caller, const char* number) {
73 }
74
78
82
83 void simulateMedia(bool playing, const char* title, const char* artist) {
84 if (mediaCb_) mediaCb_(playing, title, artist, mediaUserData_);
85 }
86
87 void simulateTime(uint32_t epoch) {
88 if (timeCb_) timeCb_(epoch, timeUserData_);
89 }
90
91 void simulateNotification(const char* title, const char* message, const char* app = "Messages", uint32_t uid = 1, bool canDismissRemotely = false) {
92 if (notifCb_) notifCb_(title, message, app, uid, canDismissRemotely, notifUserData_);
93 }
94
95 bool isAdvertising() const { return advertising_; }
96 int acceptCount() const { return acceptCount_; }
97 int rejectCount() const { return rejectCount_; }
98 int hangupCount() const { return hangupCount_; }
99 int dialCount() const { return dialCount_; }
100 const char* lastDialed() const { return lastDialed_; }
101 int mediaCmdCount() const { return mediaCmdCount_; }
104 uint32_t lastDismissedUid() const { return lastDismissedUid_; }
105 void setDismissSucceeds(bool succeeds) { dismissSucceeds_ = succeeds; }
106
107private:
108 bool advertising_{false};
109 bool connected_{false};
111
113 void* callUserData_{nullptr};
114
116 void* mediaUserData_{nullptr};
117
119 void* connUserData_{nullptr};
120
122 void* notifUserData_{nullptr};
124 void* timeUserData_{nullptr};
126 void* availabilityUserData_{nullptr};
127
132 char lastDialed_[32]{""};
133
137 uint32_t lastDismissedUid_{0};
138};
139
140} // namespace test
141} // namespace ersa
Definition types.h:52
Definition bluetooth.h:20
Definition companion_source.h:49
Definition mock_bluetooth.h:10
int mediaCmdCount_
Definition mock_bluetooth.h:134
int acceptCount_
Definition mock_bluetooth.h:128
bool advertising_
Definition mock_bluetooth.h:108
void simulateNotification(const char *title, const char *message, const char *app="Messages", uint32_t uid=1, bool canDismissRemotely=false)
Definition mock_bluetooth.h:91
bool isAvailable() const override
Definition mock_bluetooth.h:16
int mediaCmdCount() const
Definition mock_bluetooth.h:101
void simulateCallEnded()
Definition mock_bluetooth.h:79
int hangupCount_
Definition mock_bluetooth.h:130
void setConnectionCallback(hal::BleConnectionCallback cb, void *userData) override
Definition mock_bluetooth.h:59
int acceptCount() const
Definition mock_bluetooth.h:96
void stopAdvertising() override
Definition mock_bluetooth.h:54
void * callUserData_
Definition mock_bluetooth.h:113
void setTimeCallback(hal::CompanionTimeCallback cb, void *userData) override
Definition mock_bluetooth.h:31
hal::CompanionTimeCallback timeCb_
Definition mock_bluetooth.h:123
bool acceptCall() override
Definition mock_bluetooth.h:37
int notificationDismissCount() const
Definition mock_bluetooth.h:103
void * notifUserData_
Definition mock_bluetooth.h:122
void simulateTime(uint32_t epoch)
Definition mock_bluetooth.h:87
void setMediaCallback(hal::CompanionMediaCallback cb, void *userData) override
Definition mock_bluetooth.h:25
void setNotificationCallback(hal::CompanionNotificationCallback cb, void *userData) override
Definition mock_bluetooth.h:28
hal::CompanionCallCallback callCb_
Definition mock_bluetooth.h:112
const char * getDeviceName() const override
Return the local BLE device name.
Definition mock_bluetooth.h:56
void simulateConnection(bool conn)
Definition mock_bluetooth.h:65
bool dismissNotification(uint32_t uid) override
Definition mock_bluetooth.h:49
bool hangupCall() override
Definition mock_bluetooth.h:39
const char * getDeviceAddress() const override
Definition mock_bluetooth.h:57
hal::CompanionMediaAction lastMediaAction_
Definition mock_bluetooth.h:135
void * connUserData_
Definition mock_bluetooth.h:119
int dialCount_
Definition mock_bluetooth.h:131
hal::CompanionMediaAction lastMediaAction() const
Definition mock_bluetooth.h:102
bool mediaCommand(hal::CompanionMediaAction action) override
Definition mock_bluetooth.h:45
void startAdvertising() override
Definition mock_bluetooth.h:53
bool isAdvertising() const
Definition mock_bluetooth.h:95
void simulateIncomingCall(const char *caller, const char *number)
Definition mock_bluetooth.h:71
hal::CompanionAvailabilityCallback availabilityCb_
Definition mock_bluetooth.h:125
void setDismissSucceeds(bool succeeds)
Definition mock_bluetooth.h:105
void setCallCallback(hal::CompanionCallCallback cb, void *userData) override
Definition mock_bluetooth.h:22
Result< void > init() override
Definition mock_bluetooth.h:14
hal::CompanionNotificationCallback notifCb_
Definition mock_bluetooth.h:121
hal::BleConnectionCallback connCb_
Definition mock_bluetooth.h:118
bool dial(const char *number) override
Definition mock_bluetooth.h:40
hal::CompanionMediaCallback mediaCb_
Definition mock_bluetooth.h:115
bool rejectCall() override
Definition mock_bluetooth.h:38
void * timeUserData_
Definition mock_bluetooth.h:124
void setAvailabilityCallback(hal::CompanionAvailabilityCallback cb, void *userData) override
Definition mock_bluetooth.h:34
const char * lastDialed() const
Definition mock_bluetooth.h:100
int rejectCount_
Definition mock_bluetooth.h:129
int dialCount() const
Definition mock_bluetooth.h:99
char lastDialed_[32]
Definition mock_bluetooth.h:132
bool isConnected() const override
Definition mock_bluetooth.h:55
void simulateCallAnswered()
Definition mock_bluetooth.h:75
bool dismissSucceeds_
Definition mock_bluetooth.h:110
void * availabilityUserData_
Definition mock_bluetooth.h:126
uint32_t lastDismissedUid_
Definition mock_bluetooth.h:137
const char * sourceId() const override
Definition mock_bluetooth.h:15
void * mediaUserData_
Definition mock_bluetooth.h:116
hal::CompanionCapabilities capabilities() const override
Definition mock_bluetooth.h:17
int rejectCount() const
Definition mock_bluetooth.h:97
bool connected_
Definition mock_bluetooth.h:109
int notificationDismissCount_
Definition mock_bluetooth.h:136
void simulateMedia(bool playing, const char *title, const char *artist)
Definition mock_bluetooth.h:83
uint32_t lastDismissedUid() const
Definition mock_bluetooth.h:104
int hangupCount() const
Definition mock_bluetooth.h:98
void(*)(bool, void *) CompanionAvailabilityCallback
Definition companion_source.h:26
void(*)(const char *, const char *, const char *, uint32_t, bool, void *) CompanionNotificationCallback
Definition companion_source.h:28
void(*)(uint32_t, void *) CompanionTimeCallback
Definition companion_source.h:25
void(*)(bool connected, void *userData) BleConnectionCallback
Definition bluetooth.h:10
void(*)(bool, const char *, const char *, void *) CompanionMediaCallback
Definition companion_source.h:24
CompanionMediaAction
Definition companion_source.h:15
void(*)(CompanionCallAction, const char *, const char *, void *) CompanionCallCallback
Definition companion_source.h:23
Definition application.h:10
Definition companion_source.h:31
bool notifications
Definition companion_source.h:32