al_bluetooth_ctrl.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776
  1. #ifndef __AL_BLUETOOTH_CTRL_H__
  2. #define __AL_BLUETOOTH_CTRL_H__
  3. #include "al_basictypes.h"
  4. //**********************************************************************
  5. //module 5851S
  6. //**********************************************************************
  7. #ifdef CONFIG_BT_5851S
  8. #define BT_NAME_LEN_MAX 40
  9. #define BT_HEADER_LEN 3
  10. #define BT_TRAILER_LEN 2
  11. #define BT_VER_LEN_MAX 40
  12. #define BT_TEL_NUM_LEN_MAX 20
  13. #define BT_MAC_LEN_MAX 8
  14. #define CMD_BT_HEADER "AT#"
  15. #define CMD_BT_TRAILER "rn"
  16. #define HB_STATUS_BT_INCOMING_CALL (0x01 ) //電話呼入狀態
  17. #define HB_STATUS_BT_OUTGOING_CALL (0x02) //電話呼出狀態
  18. #define HB_STATUS_BT_PHONE_CALL (0x03) //通話狀態
  19. #define HB_STATUS_BT_PHONE_RING 0x4
  20. #define HB_STATUS_BT_PHONE_OFF_CALL 0x5
  21. #define HB_STATUS_BT_RECONNECT (0xff)
  22. #define HB_STATUS_BT_WAIT_CONN (0x01) //等待連接配對
  23. #define HB_STATUS_BT_CONNECTED ( 0x02) //藍牙連接成功,等待播放音樂
  24. #define HB_STATUS_BT_PLAYING (0x03) //正在播放音樂
  25. #define HB_STATUS_BT_TEL HB_STATUS_BT_PHONE_RING //電話響鈴
  26. #define HB_STATUS_BT_PAUSE HB_STATUS_BT_CONNECTED //音樂播放暫停
  27. typedef enum {
  28. BT_CMD_STANDBY = 0,
  29. BT_CMD_SET_BT_MODE,
  30. BT_CMD_GET_CONSTATUS,
  31. BT_CMD_GET_PLAYSTATUS,
  32. BT_CMD_GET_PHONESTATUS,
  33. BT_CMD_SET_LANG,
  34. BT_CMD_GET_PHONE_NUM,
  35. BT_CMD_GET_PAIRED_NAME,
  36. BT_CMD_DIS = 0x41,
  37. BT_CMD_PLAYPAUSE = 0x42,
  38. BT_CMD_PREV = 0x43,
  39. BT_CMD_NEXT = 0x44,
  40. BT_CMD_ANSWER_CALL = 0x45,
  41. BT_CMD_CUT_CALL = 0x46,
  42. BT_CMD_QUERY_STATUS = 0x47,
  43. BT_CMD_GET_VER = 0x48,
  44. BT_CMD_GET_ADC = 0x49,
  45. BT_CMD_SET_BT_NAME = 0x4b,
  46. BT_CMD_MAX,
  47. } AL_Enum_BT_CMD;
  48. typedef enum{
  49. BT_REC_STATUS = 0x41,
  50. BT_REC_PHONE_NUM = 0x42,
  51. BT_REC_PHONE_STATUS = 0x43,
  52. BT_REC_PAIRED_NAME = 0x44,
  53. BT_REC_SW_VER = 0x45,
  54. BT_REC_ADC_VALUE = 0x46,
  55. } AL_Enum_BT_REC_CMD;
  56. typedef enum{
  57. BT_REQ_NONE = 0,
  58. BT_REQ_HAD_PAIRED_NAME=0x1,
  59. BT_REQ_HAD_PHONE_NUM=0x2,
  60. BT_REQ_GET_PAIRED_NAME=0x4,
  61. BT_REQ_GET_PHONE_NUM=0x8,
  62. BT_REQ_GET_VER=0x10,
  63. BT_REQ_GET_ADC_VALUE=0x20,
  64. } Al_Enum_BT_Request;
  65. typedef enum {
  66. BT_STATUS_WAIT_CONN = 0x1,
  67. BT_STATUS_RCONNECT = 0x2,
  68. BT_STATUS_CONNECTED = 0x3,
  69. BT_STATUS_PAUSE = BT_STATUS_CONNECTED,
  70. BT_STATUS_PLAYING = 0x4,
  71. BT_STATUS_PHONE_CALL = 0x5,
  72. BT_STATUS_ONGOING_CALL = BT_STATUS_PHONE_CALL,
  73. BT_STATUS_INCOMING_CALL = 0x6,
  74. BT_STATUS_OUTGOING_CALL = 0x7,
  75. BT_SYS_STATUS_MODE_STANDBY = 0x100,
  76. BT_SYS_STATUS_MODE_BT = 0x200,
  77. } Al_Enum_BT_Status;
  78. //**********************************************************************
  79. //module AK105XT
  80. //**********************************************************************
  81. #elif defined(CONFIG_BT_AK105XT)
  82. #define BT_NAME_LEN_MAX 32
  83. #define BT_HEADER_LEN 6
  84. #define BT_TRAILER_LEN 6
  85. #define BT_VER_LEN_MAX 20
  86. #define BT_TEL_NUM_LEN_MAX 20
  87. #define BT_MAC_LEN_MAX 8
  88. #define CMD_BT_HEADER "GAITEK"
  89. #define CMD_BT_TRAILER "KETIAG"
  90. #define HB_STATUS_BT_WAIT_CONN (0x01) //等待連接配對
  91. #define HB_STATUS_BT_RECONNECT (0x02) //正在自動回連設備
  92. #define HB_STATUS_BT_CONNECTED ( 0x03) //藍牙連接成功,等待播放音樂
  93. #define HB_STATUS_BT_PLAYING (0x04) //正在播放音樂
  94. #define HB_STATUS_BT_PAUSE HB_STATUS_BT_CONNECTED //音樂播放暫停
  95. #define HB_STATUS_BT_PHONE_CALL (0x05) //通話狀態
  96. #define HB_STATUS_BT_ONGOING_CALL HB_STATUS_BT_PHONE_CALL
  97. #define HB_STATUS_BT_INCOMING_CALL (0x06 ) //電話呼入狀態
  98. #define HB_STATUS_BT_OUTGOING_CALL (0x07) //電話呼出狀態
  99. #define HB_STATUS_BT_PHONE_OFF_CALL 0x8 // off call for UI notice
  100. typedef enum {
  101. BT_CMD_STANDBY = 0,
  102. BT_CMD_SET_BT_MODE,
  103. BT_CMD_PLAYPAUSE,
  104. BT_CMD_NEXT,
  105. BT_CMD_PREV,
  106. BT_CMD_TEST,
  107. BT_CMD_DIS,
  108. BT_CMD_RECON,
  109. BT_CMD_SET_NAME,
  110. BT_CMD_RESET_CONFIG,
  111. BT_CMD_HEART_BEAT,
  112. BT_CMD_GET_NAME,
  113. BT_CMD_GET_MAC,
  114. BT_CMD_GET_PAIRED_NAME,
  115. BT_CMD_TEST_WAIT_CONN,
  116. BT_CMD_GET_PHONE_NUM,
  117. BT_CMD_GET_VER,
  118. BT_CMD_GET_CONSTATUS,
  119. BT_CMD_GET_PLAYSTATUS,
  120. BT_CMD_PHONE_ANSWER,
  121. BT_CMD_PHONE_REDIAL,
  122. BT_CMD_PHONE_REJECT,
  123. BT_CMD_PHONE_CNACEL,
  124. BT_CMD_PHONE_SWITCH_SCO,
  125. BT_CMD_PHONE_CONNECT_SCO,
  126. BT_CMD_PHONE_DISCONNECT_SCO,
  127. BT_CMD_SET_LANG,
  128. BT_CMD_GET_PHONESTATUS,
  129. BT_CMD_MAX,
  130. } AL_Enum_BT_CMD;
  131. typedef enum{
  132. BT_REQ_NONE = 0,
  133. BT_REQ_GET_NAME=0x1,
  134. BT_REQ_GET_MAC=0x2,
  135. BT_REQ_GET_PAIRED_NAME=0x4,
  136. BT_REQ_GET_PHONE_NUM=0x8,
  137. BT_REQ_GET_VER=0x10,
  138. } Al_Enum_BT_Request;
  139. typedef enum {
  140. BT_STATUS_WAIT_CONN = 0x1,
  141. BT_STATUS_RCONNECT = 0x2,
  142. BT_STATUS_CONNECTED = 0x3,
  143. BT_STATUS_PAUSE = BT_STATUS_CONNECTED,
  144. BT_STATUS_PLAYING = 0x4,
  145. BT_STATUS_PHONE_CALL = 0x5,
  146. BT_STATUS_ONGOING_CALL = BT_STATUS_PHONE_CALL,
  147. BT_STATUS_INCOMING_CALL = 0x6,
  148. BT_STATUS_OUTGOING_CALL = 0x7,
  149. BT_SYS_STATUS_MODE_STANDBY = 0x100,
  150. BT_SYS_STATUS_MODE_BT = 0x200,
  151. } Al_Enum_BT_Status;
  152. #elif defined(CONFIG_BT_RDA5856)
  153. #define BT_HEADER_LEN 3
  154. #define BT_TRAILER_LEN 3
  155. #define BT_VER_LEN_MAX 20
  156. #define BT_TEL_NUM_LEN_MAX 16
  157. #define BT_MAC_LEN_MAX 8
  158. /*-----------------------------------------------------------------------*/
  159. /*-----------------------------------------------------------------------*/
  160. /*BT define, must match with bt, do't modify ~~ */
  161. #define CMD_BT_HEADER "RB#"
  162. #define CMD_BT_TRAILER "#BR"
  163. #define MAX_BT_PAIRERED_DEVICE_LIST 5
  164. #define BT_NAME_LEN_MAX 32
  165. #define SIZE_OF_BDADDR 6
  166. #define SIZE_OF_LINKKEY 16
  167. #define SIZE_OF_DHKEY 24
  168. typedef enum {
  169. BT_CMD_STANDBY = 0x0,
  170. BT_CMD_SET_BT_RECEIVE_MODE = 0x1,
  171. BT_CMD_SET_BT_SEND_MODE = 0x2,
  172. BT_CMD_CHANGE_MODE = 0x3, //one by one change mode
  173. BT_CMD_PLAYPAUSE = 0x4, //play<->pause
  174. BT_CMD_NEXT = 0x5, //next
  175. BT_CMD_PREV = 0x6, //prev
  176. BT_CMD_TEST = 0x7,
  177. BT_CMD_DISCONNECT = 0x8,
  178. BT_CMD_RECONNECT = 0x9,
  179. BT_CMD_SET_NAME = 0xa,
  180. BT_CMD_RESET_CONFIG = 0xb,
  181. BT_CMD_HEART_BEAT = 0xc,
  182. BT_CMD_GET_NAME = 0xd,
  183. BT_CMD_GET_MAC = 0xe,
  184. BT_CMD_GET_PAIRED_NAME = 0xf,
  185. BT_CMD_TEST_WAIT_CONN = 0x10,
  186. BT_CMD_GET_PHONE_NUM = 0x11,
  187. BT_CMD_GET_VER = 0x12,
  188. BT_CMD_GET_CONSTATUS = 0x13,
  189. BT_CMD_GET_PLAYSTATUS = 0x14,
  190. BT_CMD_PHONE_ANSWER = 0x15,
  191. BT_CMD_PHONE_REDIAL = 0x16,
  192. BT_CMD_PHONE_REJECT = 0x17,
  193. BT_CMD_PHONE_CNACEL = 0x18,
  194. BT_CMD_PHONE_SWITCH_SCO = 0x19,
  195. BT_CMD_PHONE_CONNECT_SCO = 0x1a,
  196. BT_CMD_PHONE_DISCONNECT_SCO = 0x1b,
  197. BT_CMD_SET_LANG = 0x1c,
  198. BT_CMD_GET_PHONESTATUS = 0x1d,
  199. BT_CMD_RETURN_BT_CMD_STATUS = 0x1e,
  200. BT_CMD_BTINQUIRY = 0x1f,
  201. BT_CMD_BTINQUIRYCANCEL = 0x20,
  202. BT_CMD_BTCONNECT = 0x21,
  203. BT_CMD_UPDATE_TVBTADDRS = 0x22,
  204. BT_CMD_SET_BT_MODE = 0x23,
  205. BT_CMD_UPDATE_TVBTINQUIRYOVER = 0x24,
  206. BT_CMD_GET_PAIRERED_DEVICE = 0x25,
  207. BT_CMD_RESP_PAIRERED_DEVICE = 0x26,
  208. BT_CMD_GET_CONNECTED_DEVICE = 0x27,
  209. BT_CMD_RESP_CONNECTED_DEVICE = 0x28,
  210. BT_CMD_CANCEL_PAIRER = 0x29,
  211. BT_CMD_BT_VISIBLE = 0x2a,
  212. BT_CMD_BT_VOLADD = 0x2b,
  213. BT_CMD_BT_VOLSUB = 0x2c,
  214. BT_CMD_AVRCP_PASSTHROUGH = 0x2d,
  215. BT_CMD_SPP_PASSTHROUGH = 0x2e,
  216. BT_CMD_SEARCH_ALL = 0x2f,
  217. BT_CMD_SEND_FMFREQ = 0x30,
  218. BT_CMD_SEND_FMSCAN = 0x31,
  219. BT_CMD_RESP_NAME = 0x32,
  220. BT_CMD_RESP_VER = 0x33,
  221. BT_CMD_RESP_CONNECT_FAIL = 0x34,
  222. BT_CMD_GPIO_CONTROL = 0x35,
  223. BT_CMD_MUTE_CONTROL = 0x36,
  224. BT_CMD_CANCEL_ALL_PAIRER = 0x37,
  225. BT_CMD_SYSRESTART = 0x38,
  226. BT_CMD_RESP_CMD_NOACTION = 0x39,
  227. BT_CMD_GET_HOST_AKH = 0x3a,
  228. BT_CMD_PLAY_1K_AUDIO = 0x3b,
  229. BT_CMD_MAX,
  230. } AL_Enum_BT_CMD;
  231. typedef enum{
  232. BT_RESP_OK = 0,
  233. BT_RESP_FAIL=0x1,
  234. BT_RESP_ERR_CMD=0x2,
  235. BT_RESP_ERR_CHECKSUM=0x3,
  236. BT_RESP_ERR_PARAM=0x4,
  237. BT_RESP_MAX,
  238. } Al_Enum_BT_RespondStatus;
  239. typedef enum {
  240. BT_MODE_OFF = 0x0,
  241. BT_MODE_SEND = 0x1,
  242. BT_MODE_RECEIVE_BT = 0x2,
  243. BT_MODE_RECEIVE_FM = 0x3,
  244. BT_MODE_RECEIVE_LINEIN = 0x4,
  245. BT_MODE_RECEIVE_USB = 0x5,
  246. BT_MODE_MAX,
  247. } Al_BTMode_t;
  248. typedef enum {
  249. HB_STATUS_BT_WAIT_CONN = 0x1,
  250. HB_STATUS_BT_RECONNECT = 0x2,
  251. HB_STATUS_BT_CONNECTED = 0x3,
  252. HB_STATUS_BT_PAUSE = HB_STATUS_BT_CONNECTED,
  253. HB_STATUS_BT_PLAYING = 0x4,
  254. HB_STATUS_BT_PHONE_CALL = 0x5,
  255. HB_STATUS_BT_ONGOING_CALL = HB_STATUS_BT_PHONE_CALL,
  256. HB_STATUS_BT_INCOMING_CALL = 0x6,
  257. HB_STATUS_BT_OUTGOING_CALL = 0x7,
  258. HB_STATUS_BT_PHONE_OFF_CALL = 0x8,
  259. } Al_Enum_BT_Status;
  260. typedef enum {
  261. BT_AVRCP_OP_PLAY = 0x1,
  262. BT_AVRCP_OP_PAUSE = 0x2,
  263. BT_AVRCP_OP_STOP = 0x3,
  264. BT_AVRCP_OP_FORWARD = 0x4,
  265. BT_AVRCP_OP_BACKWARD = 0x5,
  266. BT_AVRCP_OP_VOLUME_UP = 0x6,
  267. BT_AVRCP_OP_VOLUME_DOWN = 0x7,
  268. BT_AVRCP_OP_MAX,
  269. } Al_Enum_BT_AVRCP_OpCmd;
  270. typedef enum {
  271. BT_SPP_EVENT_POWER = 0x1,
  272. BT_SPP_EVENT_MUTE = 0x2,
  273. BT_SPP_EVENT_1 = 0x3,
  274. BT_SPP_EVENT_2 = 0x4,
  275. BT_SPP_EVENT_3 = 0x5,
  276. BT_SPP_EVENT_4 = 0x6,
  277. BT_SPP_EVENT_5 = 0x7,
  278. BT_SPP_EVENT_6 = 0x8,
  279. BT_SPP_EVENT_7 = 0x9,
  280. BT_SPP_EVENT_8 = 0xa,
  281. BT_SPP_EVENT_9 = 0xb,
  282. BT_SPP_EVENT_DIGITAL = 0xc,
  283. BT_SPP_EVENT_POINT = 0xd,
  284. BT_SPP_EVENT_PLAY = 0xe,
  285. BT_SPP_EVENT_PAUSE = 0xf,
  286. BT_SPP_EVENT_PRE = 0x10,
  287. BT_SPP_EVENT_NEXT = 0x11,
  288. BT_SPP_EVENT_FR = 0x12,
  289. BT_SPP_EVENT_FF = 0x13,
  290. BT_SPP_EVENT_VOL_PLUS = 0x14,
  291. BT_SPP_EVENT_VOL_M = 0x15,
  292. BT_SPP_EVENT_UP = 0x16,
  293. BT_SPP_EVENT_DOWN = 0x17,
  294. BT_SPP_EVENT_LEFT = 0x18,
  295. BT_SPP_EVENT_RIGHT = 0x19,
  296. BT_SPP_EVENT_ENTER = 0x1a,
  297. BT_SPP_EVENT_MENU = 0x1b,
  298. BT_SPP_EVENT_SOURCE = 0x1C,
  299. BT_SPP_EVENT_CH_PLUS = 0x1d,
  300. BT_SPP_EVENT_RED = 0x1e,
  301. BT_SPP_EVENT_GREEN = 0x1f,
  302. BT_SPP_EVENT_YELLOW = 0x20,
  303. BT_SPP_EVENT_BLUE = 0x21,
  304. BT_SPP_EVENT_STOP = 0x22,
  305. BT_SPP_EVENT_0 = 0x23,
  306. BT_SPP_EVENT_CH_M = 0x24,
  307. BT_SPP_EVENT_CH_LIST = 0x25,
  308. BT_SPP_EVENT_SLEEP = 0x26,
  309. BT_SPP_EVENT_FREEZE = 0x27,
  310. BT_SPP_EVENT_INFO = 0x28,
  311. BT_SPP_EVENT_PIC_MOD = 0x29,
  312. BT_SPP_EVENT_SOUND_MOD = 0x2a,
  313. BT_SPP_EVENT_ASPECT = 0x2b,
  314. BT_SPP_EVENT_MTS = 0x2c,
  315. BT_SPP_EVENT_EPG = 0x2d,
  316. BT_SPP_EVENT_PIP_MENU = 0x2e,
  317. BT_SPP_EVENT_TVRADIO = 0x2f,
  318. BT_SPP_EVENT_TEXT = 0x30,
  319. BT_SPP_EVENT_SUBTITLE = 0x31,
  320. BT_SPP_EVENT_AD = 0x32,
  321. BT_SPP_EVENT_PLAY_PAUSE = 0x33,
  322. BT_SPP_EVENT_REC = 0x34,
  323. BT_SPP_EVENT_USB = 0x35,
  324. BT_SPP_EVENT_EXIT = 0x36,
  325. BT_SPP_EVENT_MAX,
  326. } Al_Enum_BT_SPP_EventCmd;
  327. typedef struct {
  328. UINT8 bytes[SIZE_OF_BDADDR];
  329. } t_bdaddr;
  330. typedef struct _AP_BT_HEART_BEAT
  331. {
  332. al_uint8 bt_mode;//g_bt_type; Al_BTMode_t
  333. al_uint8 bt_status;//bt status
  334. al_uint8 bt_ready;//bt ready; 0~1
  335. al_uint8 reserve[5];//reserve byte:byte[0]:app_bt_state_t;byte[1]:is_avrcp_connected;byte[2]:connecting flag;byte[3]:disconneting flag;byte[4]:abnormal disconnect flag
  336. t_bdaddr connectedaddr;;//connected bt
  337. }AP_BT_HEART_BEAT;
  338. /*-----------------------------------------------------------------------*/
  339. /*-----------------------------------------------------------------------*/
  340. typedef enum{
  341. BT_REQ_NONE = 0,
  342. BT_REQ_GET_NAME=0x1,
  343. BT_REQ_GET_MAC=0x2,
  344. BT_REQ_GET_PAIRED_NAME=0x4,
  345. BT_REQ_GET_PHONE_NUM=0x8,
  346. BT_REQ_GET_VER=0x10,
  347. BT_REQ_GET_PAIRED_DEVICE=0x20,
  348. } Al_Enum_BT_Request;
  349. typedef struct {
  350. al_uint8 len;
  351. al_uint8 cmd;
  352. } Al_RBT_Cmd_Head;
  353. //**********************************************************************
  354. //module POL6556
  355. //**********************************************************************
  356. #elif defined(CONFIG_BT_POL6556)
  357. #define BT_HEADER_LEN 3
  358. #define BT_TRAILER_LEN 3
  359. #define BT_VER_LEN_MAX 20
  360. #define BT_TEL_NUM_LEN_MAX 16
  361. #define BT_MAC_LEN_MAX 8
  362. /*-----------------------------------------------------------------------*/
  363. /*-----------------------------------------------------------------------*/
  364. /*BT define, must match with bt, do't modify ~~ */
  365. #define CMD_BT_HEADER "\xAC\x69"
  366. #define MAX_BT_PAIRERED_DEVICE_LIST 5
  367. #define BT_NAME_LEN_MAX 40
  368. #define SIZE_OF_BDADDR 6
  369. #define SIZE_OF_LINKKEY 16
  370. #define SIZE_OF_DHKEY 24
  371. typedef enum {
  372. //CMD common
  373. BT_CMD_ACK_OK = 0x0,
  374. BT_CMD_ACK_ERR = 0x1,
  375. //MCU->BT
  376. BT_CMD_SET_BT_POWER_ON = 0x2,
  377. BT_CMD_STANDBY = 0x3, //BT_CMD_SET_BT_POWER_OFF
  378. //BT->MCU
  379. BT_CMD_REPORT_CONNECT_RESULTS = 0x4,
  380. BT_CMD_REPORT_DISCONNECT_RESULTS = 0x5,
  381. //MCU->BT
  382. BT_CMD_BTINQUIRY = 0x6,//BT_CMD_SET_INQUIRY_START
  383. BT_CMD_BTINQUIRYCANCEL = 0x7,//BT_CMD_SET_INQUIRY_STOP
  384. BT_CMD_BTCONNECT = 0x8,//BT_CMD_SET_CONNECT
  385. BT_CMD_DISCONNECT = 0x9,//BT_CMD_SET_DISCONNECT
  386. //BT->MCU
  387. BT_CMD_REPORT_CONNECT_STATUS = 0xa,
  388. BT_CMD_REPORT_INQUIRY_COMPLETE = 0xb,
  389. BT_CMD_REPORT_INQUIRY_RESULTS = 0xc,
  390. BT_CMD_REPORT_RECEIVE_BT_CTRL_CMD = 0xd,
  391. BT_CMD_SET_BT_MUSIC_VOL_VALUE = 0xe,
  392. BT_CMD_SET_POWER_ON_TO_WAIT_CONN = 0xf,
  393. BT_CMD_SET_POWER_ON_TO_TX_NOT_ACTION = 0x10,
  394. BT_CMD_SET_AUDIO_CHANNEL_INPUT_SELECT = 0x11,
  395. BT_CMD_GET_AUDIO_CHANNEL_INPUT_SELECT = 0x12,
  396. BT_CMD_REPORT_AUDIO_CHANNEL_INPUT_SELECT = 0x13,
  397. BT_CMD_SET_POWER_ON_RX = 0x40,
  398. BT_CMD_SET_POWER_ON_TX = 0x41,
  399. BT_CMD_GET_RX_OR_TX_MODE = 0x42,
  400. BT_CMD_REPORT_BT_RX_OR_TX_MODE = 0x43,
  401. BT_CMD_GET_CONSTATUS = 0x44,//BT_CMD_GET_BT_CONNECT_STATE
  402. BT_CMD_REPORT_CONNECT_STATE_WITH_ADDR_AND_NAME = 0x45,
  403. BT_CMD_GET_BT_INQUIRY_STATUS = 0x46,
  404. BT_CMD_REPORT_BT_INQUIRY_STATUS = 0x47,
  405. BT_CMD_GET_BT_MUSIC_STATUS = 0x48,
  406. BT_CMD_REPORT_BT_MUSIC_STATUS = 0x49,
  407. BT_CMD_SET_BT_CTRL_CMD = 0x4A,
  408. BT_CMD_GET_BT_MUSIC_VOL_RESULTS = 0x4B,
  409. BT_CMD_REPORT_BT_MUSIC_VOL_RESULTS = 0x4C,
  410. BT_CMD_GET_BT_MUTE_STATUS = 0x4D,
  411. BT_CMD_REPORT_BT_MUTE_STATUS = 0x4E,
  412. BT_CMD_SET_BT_TONE_VOL_VALUE = 0x4F,
  413. BT_CMD_GET_BT_TONE_VOL_RESULTS = 0x50,
  414. BT_CMD_REPORT_BT_TONE_VOL_RESULTS = 0x51,
  415. BT_CMD_SET_BT_TO_TEST_MODE = 0xA0,
  416. BT_CMD_SET_NAME = 0xA1,//BT_CMD_SET_BT_LOCAL_NAME
  417. BT_CMD_GET_NAME = 0xA2,//BT_CMD_GET_BT_LOCAL_NAME
  418. BT_CMD_REPORT_BT_LOCAL_NAME = 0xA3,
  419. BT_CMD_GET_VER = 0xA4,//BT_CMD_GET_BT_VERSION
  420. BT_CMD_REPORT_BT_VERSION = 0xA5,
  421. BT_CMD_MAX,
  422. BT_CMD_SET_LANG,
  423. BT_CMD_GET_MAC,
  424. BT_CMD_GET_PAIRERED_DEVICE,
  425. BT_CMD_GET_PAIRED_NAME,
  426. BT_CMD_SET_BT_MODE,
  427. BT_CMD_GPIO_CONTROL,
  428. BT_CMD_PLAY_1K_AUDIO,
  429. BT_CMD_MUTE_CONTROL,
  430. BT_CMD_CANCEL_PAIRER,
  431. BT_CMD_CANCEL_ALL_PAIRER,
  432. BT_CMD_BT_VISIBLE,
  433. BT_CMD_GET_CONNECTED_DEVICE,
  434. BT_CMD_PREV,
  435. BT_CMD_PLAYPAUSE,
  436. BT_CMD_NEXT,
  437. BT_CMD_GET_PHONE_NUM,
  438. BT_CMD_GET_PLAYSTATUS,
  439. BT_CMD_GET_PHONESTATUS,
  440. } AL_Enum_BT_CMD;
  441. typedef enum{
  442. BT_RESP_OK = 0,
  443. BT_RESP_FAIL=0x1,
  444. BT_RESP_ERR_CMD=0x2,
  445. BT_RESP_ERR_CHECKSUM=0x3,
  446. BT_RESP_ERR_PARAM=0x4,
  447. BT_RESP_MAX,
  448. } Al_Enum_BT_RespondStatus;
  449. typedef enum {
  450. BT_MODE_OFF = 0x0,
  451. BT_MODE_ON = 0x1,
  452. BT_MODE_SEND = 0x2,
  453. BT_MODE_RECEIVE_BT = 0x3,
  454. BT_MODE_RECEIVE_FM = 0x4,
  455. BT_MODE_RECEIVE_LINEIN = 0x5,
  456. BT_MODE_RECEIVE_USB = 0x6,
  457. BT_MODE_MAX,
  458. } Al_BTMode_t;
  459. typedef enum {
  460. HB_STATUS_BT_WAIT_CONN = 0x1,
  461. HB_STATUS_BT_RECONNECT = 0x2,
  462. HB_STATUS_BT_CONNECTED = 0x3,
  463. HB_STATUS_BT_PAUSE = HB_STATUS_BT_CONNECTED,
  464. HB_STATUS_BT_PLAYING = 0x4,
  465. HB_STATUS_BT_PHONE_CALL = 0x5,
  466. HB_STATUS_BT_ONGOING_CALL = HB_STATUS_BT_PHONE_CALL,
  467. HB_STATUS_BT_INCOMING_CALL = 0x6,
  468. HB_STATUS_BT_OUTGOING_CALL = 0x7,
  469. HB_STATUS_BT_PHONE_OFF_CALL = 0x8,
  470. } Al_Enum_BT_Status;
  471. typedef enum {
  472. BT_AVRCP_OP_PLAY = 0x1,
  473. BT_AVRCP_OP_PAUSE = 0x2,
  474. BT_AVRCP_OP_STOP = 0x3,
  475. BT_AVRCP_OP_FORWARD = 0x4,
  476. BT_AVRCP_OP_BACKWARD = 0x5,
  477. BT_AVRCP_OP_VOLUME_UP = 0x6,
  478. BT_AVRCP_OP_VOLUME_DOWN = 0x7,
  479. BT_AVRCP_OP_MAX,
  480. } Al_Enum_BT_AVRCP_OpCmd;
  481. typedef enum {
  482. BT_SPP_EVENT_POWER = 0x1,
  483. BT_SPP_EVENT_MUTE = 0x2,
  484. BT_SPP_EVENT_1 = 0x3,
  485. BT_SPP_EVENT_2 = 0x4,
  486. BT_SPP_EVENT_3 = 0x5,
  487. BT_SPP_EVENT_4 = 0x6,
  488. BT_SPP_EVENT_5 = 0x7,
  489. BT_SPP_EVENT_6 = 0x8,
  490. BT_SPP_EVENT_7 = 0x9,
  491. BT_SPP_EVENT_8 = 0xa,
  492. BT_SPP_EVENT_9 = 0xb,
  493. BT_SPP_EVENT_DIGITAL = 0xc,
  494. BT_SPP_EVENT_POINT = 0xd,
  495. BT_SPP_EVENT_PLAY = 0xe,
  496. BT_SPP_EVENT_PAUSE = 0xf,
  497. BT_SPP_EVENT_PRE = 0x10,
  498. BT_SPP_EVENT_NEXT = 0x11,
  499. BT_SPP_EVENT_FR = 0x12,
  500. BT_SPP_EVENT_FF = 0x13,
  501. BT_SPP_EVENT_VOL_PLUS = 0x14,
  502. BT_SPP_EVENT_VOL_M = 0x15,
  503. BT_SPP_EVENT_UP = 0x16,
  504. BT_SPP_EVENT_DOWN = 0x17,
  505. BT_SPP_EVENT_LEFT = 0x18,
  506. BT_SPP_EVENT_RIGHT = 0x19,
  507. BT_SPP_EVENT_ENTER = 0x1a,
  508. BT_SPP_EVENT_MENU = 0x1b,
  509. BT_SPP_EVENT_SOURCE = 0x1C,
  510. BT_SPP_EVENT_CH_PLUS = 0x1d,
  511. BT_SPP_EVENT_RED = 0x1e,
  512. BT_SPP_EVENT_GREEN = 0x1f,
  513. BT_SPP_EVENT_YELLOW = 0x20,
  514. BT_SPP_EVENT_BLUE = 0x21,
  515. BT_SPP_EVENT_STOP = 0x22,
  516. BT_SPP_EVENT_0 = 0x23,
  517. BT_SPP_EVENT_CH_M = 0x24,
  518. BT_SPP_EVENT_CH_LIST = 0x25,
  519. BT_SPP_EVENT_SLEEP = 0x26,
  520. BT_SPP_EVENT_FREEZE = 0x27,
  521. BT_SPP_EVENT_INFO = 0x28,
  522. BT_SPP_EVENT_PIC_MOD = 0x29,
  523. BT_SPP_EVENT_SOUND_MOD = 0x2a,
  524. BT_SPP_EVENT_ASPECT = 0x2b,
  525. BT_SPP_EVENT_MTS = 0x2c,
  526. BT_SPP_EVENT_EPG = 0x2d,
  527. BT_SPP_EVENT_PIP_MENU = 0x2e,
  528. BT_SPP_EVENT_TVRADIO = 0x2f,
  529. BT_SPP_EVENT_TEXT = 0x30,
  530. BT_SPP_EVENT_SUBTITLE = 0x31,
  531. BT_SPP_EVENT_AD = 0x32,
  532. BT_SPP_EVENT_PLAY_PAUSE = 0x33,
  533. BT_SPP_EVENT_REC = 0x34,
  534. BT_SPP_EVENT_USB = 0x35,
  535. BT_SPP_EVENT_EXIT = 0x36,
  536. BT_SPP_EVENT_MAX,
  537. } Al_Enum_BT_SPP_EventCmd;
  538. typedef struct {
  539. UINT8 bytes[SIZE_OF_BDADDR];
  540. } t_bdaddr;
  541. /*-----------------------------------------------------------------------*/
  542. /*-----------------------------------------------------------------------*/
  543. typedef enum{
  544. BT_REQ_NONE = 0,
  545. BT_REQ_GET_NAME=0x1,
  546. BT_REQ_GET_MAC=0x2,
  547. BT_REQ_GET_PAIRED_NAME=0x4,
  548. BT_REQ_GET_PHONE_NUM=0x8,
  549. BT_REQ_GET_VER=0x10,
  550. BT_REQ_GET_PAIRED_DEVICE=0x20,
  551. } Al_Enum_BT_Request;
  552. typedef struct {
  553. al_uint8 len;
  554. al_uint8 cmd;
  555. } Al_RBT_Cmd_Head;
  556. typedef struct {
  557. al_uint8 FrameHead_L;
  558. al_uint8 FrameHead_H;
  559. al_uint8 FrameLen_L;
  560. al_uint8 FrameLen_H;
  561. al_uint8 FrameId;
  562. al_uint8 Cmd_id;
  563. al_uint8 Cmd_value_len;
  564. al_uint* Cmd_value;
  565. al_uint8 CheckSum_L;
  566. al_uint8 CheckSum_H;
  567. } Al_PBT_Frame_St;
  568. #endif
  569. #define BT_INPUT_SIZE_MAX 128
  570. #define GET_BT_SYS_MODE(x) ((x>>16)&0xf)
  571. #define GET_BT_STATE(x) (x&0xf)
  572. #define HB_STATUS_MODE_STANDBY (0x100)
  573. #define HB_STATUS_MODE_BT (0x200)
  574. typedef struct BT_MessageBody_t_ {
  575. #if defined(CONFIG_BT_RDA5856)||defined(CONFIG_BT_POL6556)
  576. al_uint32 dMessage;
  577. al_uint32 dParam;
  578. al_uint8 dMessageCmd;
  579. al_uint8 dCmdSize;
  580. al_uint8 *pdata;
  581. #else
  582. al_uint32 dMessage;
  583. al_uint32 dParam;
  584. #endif
  585. } BT_MessageBody_t;
  586. typedef enum {
  587. BT_MESSAGE_MODE = 0x1,
  588. BT_MESSAGE_CON_STATUS,
  589. BT_MESSAGE_PLAYER,
  590. BT_MESSAGE_PHONE,
  591. BT_MESSAGE_BT_NAME,
  592. BT_MESSAGE_PAIRED_NAME,
  593. BT_MESSAGE_MAC,
  594. BT_MESSAGE_VER,
  595. BT_MESSAGE_PHONE_NUM,
  596. BT_MESSAGE_ADC_VALUE,
  597. BT_MESSAGE_MAX,
  598. } BT_Message_t;
  599. #if defined(CONFIG_BT_RDA5856)||defined(CONFIG_BT_POL6556)
  600. typedef int (*BT_ModCbk_pf) (BT_MessageBody_t message);
  601. #else
  602. typedef int (*BT_ModCbk_pf) (BT_Message_t message, al_uint32 arg);
  603. #endif
  604. typedef struct BT_ModualCfg_t_ {
  605. BT_ModCbk_pf pfCallBack;
  606. } BT_ModualCfg_t;
  607. /*//non-used
  608. typedef enum {
  609. BT_ERR_NULL = 0,
  610. BT_ERR_CMD,
  611. BT_ERR_CHECKSUM,
  612. BT_ERR_PARAM,
  613. BT_ERR_FAIL,
  614. BT_ERR_MAX,
  615. } Al_Enum_BT_ERRCode;
  616. */
  617. typedef enum {
  618. BT_LANG_EN = 0,
  619. BT_LANG_CN,
  620. BT_LANG_MAX,
  621. } Al_Enum_BT_Lang;
  622. typedef struct {
  623. al_uint8 header[6];
  624. al_uint8 *data;
  625. } Al_BT_Packet, *Al_BT_pPacket;
  626. typedef struct {
  627. al_uint16 crc;
  628. al_uint8 cmd;
  629. al_uint8 len;
  630. } Al_BT_Cmd_Head;
  631. typedef struct {
  632. Al_BT_Cmd_Head head;
  633. al_uint32 result;
  634. } Al_BT_Respond_Cmd_Head;
  635. typedef struct {
  636. Al_BT_Cmd_Head head;
  637. al_uint8 name[BT_NAME_LEN_MAX];
  638. } Al_BT_Name_Packet;
  639. typedef struct {
  640. Al_BT_Cmd_Head head;
  641. al_uint8 localMac[6];
  642. al_uint8 reserve[2];
  643. } Al_BT_Get_MAC_Packet;
  644. typedef struct {
  645. Al_BT_Cmd_Head head;
  646. al_uint8 remoteMac[6];
  647. al_uint8 reserve[2];
  648. } Al_BT_Test_Packet;
  649. typedef struct {
  650. Al_BT_Cmd_Head head;
  651. al_uint8 number[20];
  652. } Al_BT_Get_Phone_Num_Packet;
  653. typedef struct {
  654. Al_BT_Cmd_Head head;
  655. al_uint8 ver[20];
  656. } Al_BT_Get_Ver_Packet;
  657. typedef struct {
  658. Al_BT_Cmd_Head head;
  659. al_uint32 lang;
  660. } Al_BT_Set_Lang_Packet;
  661. al_int Al_Bluetooth_Listener(void *argv);
  662. al_int32 Al_Bluetooth_Set_Action(al_uint8 inCmd, al_uint8 * data, al_uint8 size);
  663. al_int32 Al_Bluetooth_Get_Action(al_uint8 inCmd, void * data);
  664. #if defined(CONFIG_BT_POL6556)
  665. int Al_Bluetooth_calc_uartdata_checksum(al_uint8 *p_data, int len);
  666. #endif
  667. #if defined(CONFIG_BT_RDA5856)||defined(CONFIG_BT_POL6556)
  668. al_int32 Al_Bluetooth_Set_BT_requestState(al_uint8 inCmd);
  669. #endif
  670. #if defined(CONFIG_BT_RDA5856)
  671. int Al_Bluetooth_calc_uartdata_checksum(char *p_data, int len);
  672. al_int8 Al_Bluetooth_HostCalcAKH(al_uint16 rec,al_uint16 *number,al_uint16 *akh);
  673. #endif
  674. #endif