amiro-os / include / amiro / bluetooth / checkutility.hpp @ bc91a128
History | View | Annotate | Download (1.363 KB)
1 | 58fe0e0b | Thomas Schöpping | #ifndef AMIRO_WT12_CHECKUTILITY_H_
|
---|---|---|---|
2 | #define AMIRO_WT12_CHECKUTILITY_H_
|
||
3 | |||
4 | #include <ch.hpp> |
||
5 | |||
6 | namespace amiro {
|
||
7 | |||
8 | class WT12CheckUtility |
||
9 | { |
||
10 | public:
|
||
11 | enum Constants {
|
||
12 | MUX_StartOfFrame = 0xBFu
|
||
13 | }; |
||
14 | |||
15 | private:
|
||
16 | struct Message {
|
||
17 | struct Head {
|
||
18 | uint8_t start_of_frame; |
||
19 | uint8_t link_id; |
||
20 | uint8_t flags; |
||
21 | uint16_t length; |
||
22 | }; |
||
23 | |||
24 | Head head; |
||
25 | char* message;
|
||
26 | uint8_t n_link; |
||
27 | }; |
||
28 | |||
29 | public:
|
||
30 | explicit WT12CheckUtility();
|
||
31 | ~WT12CheckUtility(); |
||
32 | |||
33 | void reset();
|
||
34 | bool waitForReady(const bool print = false); |
||
35 | uint8_t selftest(); |
||
36 | void msgPrint(const char* message, const uint16_t length); |
||
37 | void msgPrintMulti(const char* message_buf, const uint16_t* length_buf, const uint16_t num_messages); |
||
38 | void sendMessage(char* message, uint8_t link_id = 0xFF); |
||
39 | void sendMessageRaw(const char* message); |
||
40 | uint16_t receiveMessage(char* message, const uint16_t max_length); |
||
41 | uint16_t receiveMessages(char* message_buf, const uint16_t msg_buf_size, uint16_t* length_buf, const uint16_t len_buf_size, const char* last_msg, const char* filter_in = "", const char* filter_out = NULL); |
||
42 | |||
43 | void receiveRaw(uint8_t* buffer, uint16_t num_bytes, const bool print = false); |
||
44 | void receiveRawLine(const bool print = true); |
||
45 | void clearMessageBuffer(const bool print = false); |
||
46 | |||
47 | }; |
||
48 | } |
||
49 | |||
50 | #endif // AMIRO_WT12_CHECKUTILITY_H_ |