Start implementation of RFCOMM decoding layer. Add new service initialize routines...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / RFCOMM.h
index 7f1b626..ff04ed5 100644 (file)
@@ -38,6 +38,7 @@
 \r
        /* Includes: */\r
                #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
                #include <string.h>\r
                #include <stdbool.h>\r
                #include <stdio.h>\r
        /* Macros: */\r
                #define BT_RFCOMM_DEBUG(l, s, ...)              do { if (RFCOMM_DEBUG_LEVEL >= l) printf_P(PSTR("(RFCOMM) " s "\r\n"), ##__VA_ARGS__); } while (0)\r
                #define RFCOMM_DEBUG_LEVEL                      2\r
+               \r
+               #define FRAME_POLL_FINAL                        (1 << 5)\r
+       \r
+       /* Enums: */\r
+               enum RFCOMM_Frame_Types_t\r
+               {\r
+                       RFCOMM_Frame_SABM  = 0x2F, /**< Set Asynchronous Balance Mode Field */\r
+                       RFCOMM_Frame_UA    = 0x63, /**< Unnumbered Acknowledgement Field */\r
+                       RFCOMM_Frame_DM    = 0x0F, /**< Disconnected Mode Field */\r
+                       RFCOMM_Frame_DISC  = 0x43, /**< Disconnect Field */\r
+                       RFCOMM_Frame_UIH   = 0xEF, /**< Unnumbered Information with Header check Field */\r
+               };\r
+       \r
+       /* Type Defines: */\r
+               typedef struct\r
+               {\r
+                       struct\r
+                       {\r
+                               unsigned char LogicalChannel   : 6;\r
+                               unsigned char CommandResponse  : 1;\r
+                               unsigned char LastAddressOctet : 1;\r
+                       } Header;\r
+                       \r
+                       uint8_t FrameType;\r
+               } RFCOMM_Header_t;\r
 \r
        /* Function Prototypes: */\r
+               void RFCOMM_Initialize(void);\r
                void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel);\r
                \r
+               #if defined(INCLUDE_FROM_RFCOMM_C)\r
+                       static uint16_t RFCOMM_GetFrameDataLength(void** BufferPos);\r
+               #endif\r
+               \r
 #endif\r