luat_airlink.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef LUAT_AIRLINK_H
  2. #define LUAT_AIRLINK_H
  3. typedef struct luat_airlink_cmd
  4. {
  5. uint16_t cmd; // 命令, 从0x0001开始, 到0xfffe结束
  6. uint16_t len; // 数据长度,最高64k, 实际使用最高2k
  7. uint8_t data[0];
  8. }luat_airlink_cmd_t;
  9. int luat_airlink_init(void);
  10. int luat_airlink_start(int id);
  11. int luat_airlink_stop(int id);
  12. void luat_airlink_data_pack(uint8_t* buff, size_t len, uint8_t* dst);
  13. void luat_airlink_data_unpack(uint8_t* buff, size_t len, size_t* pkg_offset, size_t* pkg_size);
  14. void luat_airlink_task_start(void);
  15. void luat_airlink_print_buff(const char* tag, uint8_t* buff, size_t len);
  16. void luat_airlink_on_data_recv(uint8_t *data, size_t len);
  17. typedef int (*luat_airlink_cmd_exec)(luat_airlink_cmd_t* cmd, void* userdata);
  18. typedef struct luat_airlink_cmd_reg
  19. {
  20. uint16_t id;
  21. luat_airlink_cmd_exec exec;
  22. }luat_airlink_cmd_reg_t;
  23. enum {
  24. LUAT_AIRLINK_QUEUE_CMD = 1,
  25. LUAT_AIRLINK_QUEUE_IPPKG
  26. };
  27. typedef struct airlink_queue_item {
  28. size_t len;
  29. luat_airlink_cmd_t* cmd;
  30. }airlink_queue_item_t;
  31. int luat_airlink_queue_send(int tp, airlink_queue_item_t* item);
  32. int luat_airlink_queue_get_cnt(int tp);
  33. int luat_airlink_cmd_recv(int tp, airlink_queue_item_t* cmd, size_t timeout);
  34. int luat_airlink_cmd_recv_simple(airlink_queue_item_t* cmd);
  35. int luat_airlink_queue_send_ippkg(uint8_t adapter_id, uint8_t* data, size_t len);
  36. void luat_airlink_print_mac_pkg(uint8_t* buff, uint16_t len);
  37. void luat_airlink_hexdump(const char* tag, uint8_t* buff, uint16_t len);
  38. typedef struct luat_airlink_dev_wifi_info {
  39. uint8_t sta_mac[6];
  40. uint8_t ap_mac[6];
  41. uint8_t bt_mac[6];
  42. uint8_t sta_state;
  43. uint8_t ap_state;
  44. }luat_airlink_dev_wifi_info_t;
  45. typedef struct luat_airlink_dev_cat_info {
  46. uint8_t ipv4[4];
  47. uint8_t ipv6[16];
  48. uint8_t cat_state;
  49. uint8_t sim_state;
  50. uint8_t imei[16];
  51. uint8_t iccid[20];
  52. uint8_t imsi[16];
  53. }luat_airlink_dev_wifi_cat_t;
  54. typedef struct luat_airlink_dev_info
  55. {
  56. uint8_t tp;
  57. union
  58. {
  59. luat_airlink_dev_wifi_info_t wifi;
  60. luat_airlink_dev_wifi_cat_t cat1;
  61. };
  62. uint8_t unique_id_len;
  63. uint8_t unique_id[24];
  64. }luat_airlink_dev_info_t;
  65. #endif