at.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. #ifndef _AT_H_
  2. #define _AT_H_
  3. #include "typedef.h"
  4. // #define DEVICE_EVENT_FROM_AT_UART (('A' << 24) | ('T' << 16) | ('U' << 8) | '\0')
  5. void at_cmd_rx_handler(void);
  6. #define AT_PACKET_TYPE_CMD 0x01
  7. #define AT_PACKET_TYPE_EVT 0x02
  8. //Byte 0 | Byte 1 | Byte 2 | Byte 3 ~ (length + 3)
  9. //packet type | Opcode | Length | Payload
  10. struct at_format {
  11. u8 type;
  12. u8 opcode;
  13. u8 length;
  14. u8 payload[0];
  15. };
  16. #define AT_FORMAT_HEAD 3//sizeof(struct at_format)
  17. //
  18. #define AT_CMD_SET_BT_ADDR 0x00
  19. struct cmd_set_bt_addr {
  20. u8 addr[6];
  21. };
  22. #define AT_CMD_SET_BLE_ADDR 0x01
  23. struct cmd_set_ble_addr {
  24. u8 addr[6];
  25. };
  26. #define AT_CMD_SET_VISIBILITY 0x02
  27. struct cmd_set_bt_visbility {
  28. u8 discovery : 1;
  29. u8 connect : 1;
  30. u8 adv : 1;
  31. };
  32. #define AT_CMD_SET_BT_NAME 0x03
  33. struct cmd_set_bt_name {
  34. u8 name[0x20];
  35. };
  36. #define AT_CMD_SET_BLE_NAME 0x04
  37. struct cmd_set_ble_name {
  38. u8 name[0x18];
  39. };
  40. #define AT_CMD_SEND_SPP_DATA 0x05
  41. struct cmd_send_spp_data {
  42. u8 spp_data[0];
  43. };
  44. #define AT_CMD_SEND_BLE_DATA 0x09
  45. struct cmd_send_ble_data {
  46. u16 att_handle;
  47. u8 att_data[0];
  48. };
  49. #define AT_CMD_SEND_DATA 0x0A
  50. struct cmd_send_data {
  51. u8 data[0];
  52. };
  53. #define AT_CMD_STATUS_REQUEST 0x0B
  54. #define AT_CMD_SET_PAIRING_MODE 0x0C
  55. #define AT_PAIRING_MODE_PINCODE 0x00
  56. #define AT_PAIRING_MODE_JUSTWORK 0x01
  57. #define AT_PAIRING_MODE_PASSKEY 0x02
  58. #define AT_PAIRING_MODE_CONFIRM 0x03
  59. struct cmd_set_pairing_mode {
  60. u8 mode;
  61. };
  62. #define AT_CMD_SET_PINCODE 0x0D
  63. struct cmd_set_pincode {
  64. u8 pincode[0x10];
  65. };
  66. #define AT_CMD_SET_UART_FLOW 0x0E
  67. #define AT_CMD_SET_UART_BAUD 0x0F
  68. struct cmd_set_uart_baud {
  69. char baudrate[0x07];
  70. };
  71. #define AT_CMD_VERSION_REQUEST 0x10
  72. #define AT_CMD_BT_DISCONNECT 0x11
  73. #define AT_CMD_BLE_DISCONNECT 0x12
  74. #define AT_CMD_SET_COD 0x15
  75. #define AT_CMD_SET_RF_MAX_TXPOWER 0x16
  76. #define AT_CMD_SET_EDR_TXPOWER 0x17
  77. #define AT_CMD_SET_BLE_TXPOWER 0x18
  78. struct cmd_set_cod {
  79. u8 classofdevice[0x03];
  80. };
  81. #define AT_CMD_SET_LOW_POWER_MODE 0x26
  82. #define AT_CMD_ENTER_SLEEP_MODE 0x27
  83. #define AT_CMD_SET_CONFIRM_GKEY 0x28
  84. struct cmd_set_confirm_gkey {
  85. u8 ok_or_no;
  86. u8 passkey[6];
  87. };
  88. #define AT_CMD_SET_ADV_DATA 0x2d
  89. struct cmd_set_adv_data {
  90. u8 data[0x1f];
  91. };
  92. #define AT_CMD_SET_SCAN_DATA 0x2e
  93. struct cmd_set_scan_data {
  94. u8 data[0x1f];
  95. };
  96. #define AT_CMD_SET_XTAL 0x30
  97. #define AT_CMD_SET_DCDC 0x31
  98. struct cmd_set_dcdc {
  99. u8 enable;
  100. };
  101. #define AT_CMD_GET_BT_ADDR 0x34
  102. #define AT_CMD_GET_BLE_ADDR 0x35
  103. #define AT_CMD_GET_BT_NAME 0x36
  104. #define AT_CMD_GET_BLE_NAME 0x37
  105. #define AT_CMD_GET_PINCODE 0x33
  106. #define AT_CMD_BLE_CONN_PARAM_REQUEST 0x38
  107. #define AT_CMD_SET_BLE_SCAN_PARAM 0x50
  108. #define AT_CMD_SET_BLE_SCAN_ENABLE 0x51
  109. #define AT_CMD_BLE_CREAT_CONNECT 0x52
  110. #define AT_CMD_BLE_CREAT_CONNECT_CANNEL 0x53
  111. #define AT_CMD_BLE_PROFILE_SEARCH 0x54
  112. #define AT_CMD_BLE_ATT_ENABLE_CCC 0x55
  113. #define AT_CMD_BLE_ATT_READ 0x56
  114. #define AT_CMD_BLE_ATT_WRITE 0x57
  115. #define AT_CMD_BLE_ATT_WRITE_NO_RSP 0x58
  116. #define AT_EVT_BT_CONNECTED 0x00
  117. #define AT_EVT_BLE_CONNECTED 0x02
  118. #define AT_EVT_BT_DISCONNECTED 0x03
  119. #define AT_EVT_BLE_DISCONNECTED 0x05
  120. #define AT_EVT_CMD_COMPLETE 0x06
  121. #define AT_EVT_SPP_DATA_RECEIVED 0x07
  122. #define AT_EVT_BLE_DATA_RECEIVED 0x08
  123. #define AT_EVT_SYSTEM_READY 0x09
  124. #define AT_EVT_STATUS_RESPONSE 0x0A
  125. #define AT_EVT_WEIXIN_DATA_RECEIVE 0x0B
  126. #define AT_EVT_INDICATE_COMPLETE 0x0C
  127. #define AT_EVT_CONFIRM_GKEY 0x0E
  128. #define AT_EVT_UART_EXCEPTION 0x0F
  129. #define AT_EVT_CONN_PARAM_UPDATE_COMPLETE 0x10
  130. #define AT_EVT_ADV_REPORT 0x20
  131. #define AT_EVT_PROFILE_REPOFT 0x21
  132. #define AT_EVT_PROFILE_SEARCH_END 0x22
  133. void at_uart_init(void *packet_handler);
  134. int ct_uart_send_packet(const u8 *packet, int size);
  135. void slave_connect_param_update(u16 interval_min, u16 interval_max, u16 latency, u16 timeout);
  136. void at_send_event(u8 opcode, const u8 *packet, int size);
  137. void ct_uart_change_baud(u32 baud);
  138. #endif