Statistics
| Branch: | Tag: | Revision:

amiro-os / include / amiro / bluetooth / bluetooth-iwrap.hpp @ a47d64ad

History | View | Annotate | Download (959 Bytes)

1 58fe0e0b Thomas Schöpping
#ifndef _BLUETOOTH_IWRAP_H_
2
#define _BLUETOOTH_IWRAP_H_
3
4
#include <amiro/bluetooth/bluetooth-transport.hpp>
5
#include <amiro/bluetooth/bluetooth-profile.hpp>
6
7
#if !CH_USE_QUEUES || !CH_USE_EVENTS
8
#error "Bluetooth Serial Port Profile requires CH_USE_QUEUES, CH_USE_EVENTS"
9
#endif
10
11
#define BLUETOOTH_IWRAP_MAILBOX_SIZE  5
12
13
#define HOST_IWRAP_PLAIN_LINKID       0xFF
14
15
namespace amiro {
16
17
  class BluetoothIwrap : public chibios_rt::BaseStaticThread<128> {
18
  public:
19
    BluetoothIwrap(UARTDriver* uart);
20
21
    void bluetoothIwrapSendCommand(const char* cmd);
22
    msg_t iwrapTransmit(uint8_t linkid, const uint8_t* txdata, size_t length);
23
24
    BluetoothTransport transport;
25
26
    BluetoothProfile profiles[8];
27
28
  protected:
29
    virtual msg_t main(void);
30
31
  private:
32
    msg_t iwrapReceive();
33
34
    chibios_rt::Mailbox mailbox;
35
    msg_t mailboxBuffer[BLUETOOTH_IWRAP_MAILBOX_SIZE];
36
37
    char connAddr[17];
38
    int iwrapblock;
39
  };
40
}
41
42
#endif /* _BLUETOOTH_IWRAP_H_ */