Skip to content

Commit 9e06e8e

Browse files
committed
Working on BLE API
1 parent bc45a60 commit 9e06e8e

6 files changed

Lines changed: 423 additions & 149 deletions

File tree

lib/btremote/include/btremote.h

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "configuration.h"
55
#include "megahub.h"
66

7+
#include <ArduinoJson.h>
78
#include <BLE2902.h>
89
#include <BLEDevice.h>
910
#include <BLEServer.h>
@@ -46,22 +47,28 @@ struct FragmentBuffer {
4647
// BLE Server Klasse
4748
class BTRemote : public BLEServerCallbacks, public BLECharacteristicCallbacks {
4849
private:
49-
BLEServer *pServer;
50-
BLEService *pService;
51-
BLECharacteristic *pRequestChar;
52-
BLECharacteristic *pResponseChar;
53-
BLECharacteristic *pEventChar;
54-
BLECharacteristic *pControlChar;
50+
BLEServer *pServer_;
51+
BLEService *pService_;
52+
BLECharacteristic *pRequestChar_;
53+
BLECharacteristic *pResponseChar_;
54+
BLECharacteristic *pEventChar_;
55+
BLECharacteristic *pControlChar_;
5556

56-
bool deviceConnected;
57-
size_t mtu; // Default MTU
57+
SerialLoggingOutput *loggingOutput_;
58+
Configuration *configuration_;
59+
Megahub *hub_;
5860

59-
std::map<uint8_t, FragmentBuffer> fragmentBuffers;
60-
uint8_t nextMessageId;
61+
TaskHandle_t logforwarderTaskHandle_;
62+
63+
bool deviceConnected_;
64+
size_t mtu_; // Default MTU
65+
66+
std::map<uint8_t, FragmentBuffer> fragmentBuffers_;
67+
uint8_t nextMessageId_;
6168

6269
// Callback-Funktionen
6370
// Callback: (appRequestType, messageId, payload)
64-
std::function<void(uint8_t, uint8_t, const std::vector<uint8_t> &)> onRequestCallback;
71+
std::function<void(uint8_t, uint8_t, const std::vector<uint8_t> &)> onRequestCallback_;
6572

6673
// Fragment verarbeiten
6774
void handleFragment(const uint8_t *data, size_t length);
@@ -82,6 +89,26 @@ class BTRemote : public BLEServerCallbacks, public BLECharacteristicCallbacks {
8289
// MTU-Information an Client senden
8390
void sendMTUNotification();
8491

92+
bool reqStopProgram(const JsonDocument &requestDoc, JsonDocument &responseDoc);
93+
bool reqGetProjectFile(const JsonDocument &requestDoc, JsonDocument &responseDoc);
94+
bool reqPutProjectFile(const JsonDocument &requestDoc, JsonDocument &responseDoc);
95+
bool reqDeleteProject(const JsonDocument &requestDoc, JsonDocument &responseDoc);
96+
bool reqSyntaxCheck(const JsonDocument &requestDoc, JsonDocument &responseDoc);
97+
bool reqRun(const JsonDocument &requestDoc, JsonDocument &responseDoc);
98+
bool reqGetProjects(const JsonDocument &requestDoc, JsonDocument &responseDoc);
99+
bool reqGetAutostart(const JsonDocument &requestDoc, JsonDocument &responseDoc);
100+
bool reqPutAutostart(const JsonDocument &requestDoc, JsonDocument &responseDoc);
101+
102+
// Control Message senden
103+
void sendControlMessage(ControlMessageType type, uint8_t messageId);
104+
105+
// Request Callback registrieren
106+
// Callback-Signatur: void callback(uint8_t appRequestType, uint8_t messageId, const std::vector<uint8_t>& payload)
107+
void onRequest(std::function<void(uint8_t, uint8_t, const std::vector<uint8_t> &)> callback);
108+
109+
// Event senden
110+
bool sendEvent(uint8_t appEventType, const std::vector<uint8_t> &data);
111+
85112
public:
86113
BTRemote(FS *fs, Megahub *hub, SerialLoggingOutput *loggingOutput, Configuration *configuragtion);
87114

@@ -95,15 +122,10 @@ class BTRemote : public BLEServerCallbacks, public BLECharacteristicCallbacks {
95122
// Characteristic Callbacks
96123
void onWrite(BLECharacteristic *pCharacteristic) override;
97124

98-
// Event senden
99-
bool sendEvent(uint8_t appEventType, const std::vector<uint8_t> &data);
100-
101-
// Control Message senden
102-
void sendControlMessage(ControlMessageType type, uint8_t messageId);
103-
104-
// Request Callback registrieren
105-
// Callback-Signatur: void callback(uint8_t appRequestType, uint8_t messageId, const std::vector<uint8_t>& payload)
106-
void onRequest(std::function<void(uint8_t, uint8_t, const std::vector<uint8_t> &)> callback);
125+
// Events
126+
void publishLogMessages();
127+
void publishCommands();
128+
void publishPortstatus();
107129

108130
// Timeout-Handler (sollte regelmäßig aufgerufen werden)
109131
void loop();
@@ -112,4 +134,4 @@ class BTRemote : public BLEServerCallbacks, public BLECharacteristicCallbacks {
112134
size_t getMTU() const;
113135
};
114136

115-
#endif // BTREMOTE_H
137+
#endif // BTREMOTE_H

0 commit comments

Comments
 (0)