luat_airlink_cmds.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #include "luat_base.h"
  2. #include "luat_spi.h"
  3. #include "luat_airlink.h"
  4. #include "luat_rtos.h"
  5. #include "luat_debug.h"
  6. #include "luat_spi.h"
  7. #include "luat_pm.h"
  8. #include "luat_gpio.h"
  9. #include "luat_airlink.h"
  10. #include "luat_fota.h"
  11. #define LUAT_LOG_TAG "airlink"
  12. #include "luat_log.h"
  13. #define CMD_DEFINE(func) extern int luat_airlink_cmd_exec_##func(luat_airlink_cmd_t* cmd, void* userdata)
  14. #define CMD_REG(id,func) {id, luat_airlink_cmd_exec_##func}
  15. // 基础指令0x01开始
  16. CMD_DEFINE(ping);
  17. CMD_DEFINE(pong);
  18. CMD_DEFINE(reset);
  19. CMD_DEFINE(fota_init);
  20. CMD_DEFINE(fota_write);
  21. CMD_DEFINE(fota_done);
  22. CMD_DEFINE(fota_end);
  23. CMD_DEFINE(dev_info);
  24. CMD_DEFINE(sdata);
  25. CMD_DEFINE(nop);
  26. // MAC和IP包指令, 0x100开始
  27. CMD_DEFINE(ip_pkg);
  28. CMD_DEFINE(set_mac);
  29. CMD_DEFINE(link_up);
  30. CMD_DEFINE(link_down);
  31. // WIFI指令, 0x200开始
  32. CMD_DEFINE(wlan_init);
  33. CMD_DEFINE(wlan_sta_connect);
  34. CMD_DEFINE(wlan_sta_disconnect);
  35. CMD_DEFINE(wlan_ap_start);
  36. CMD_DEFINE(wlan_ap_stop);
  37. CMD_DEFINE(wlan_scan);
  38. CMD_DEFINE(wlan_scan_result_cb);
  39. // GPIO指令, 0x300开始
  40. CMD_DEFINE(gpio_setup);
  41. CMD_DEFINE(gpio_set);
  42. // CMD_DEFINE(gpio_get);
  43. // UART指令, 0x400开始
  44. CMD_DEFINE(uart_setup);
  45. CMD_DEFINE(uart_write);
  46. CMD_DEFINE(uart_close);
  47. CMD_DEFINE(uart_data_cb);
  48. __USER_FUNC_IN_RAM__ const luat_airlink_cmd_reg_t airlink_cmds[] = {
  49. // 最常用的放前面
  50. CMD_REG(0x10, dev_info),
  51. CMD_REG(0x100, ip_pkg),
  52. CMD_REG(0x03, reset),
  53. #ifdef LUAT_USE_AIRLINK_EXEC_SDATA
  54. CMD_REG(0x20, sdata),
  55. #endif
  56. // CMD_REG(0x01, ping),
  57. // CMD_REG(0x02, pong),
  58. #ifdef LUAT_USE_AIRLINK_EXEC_FOTA
  59. CMD_REG(0x04, fota_init),
  60. CMD_REG(0x05, fota_write),
  61. CMD_REG(0x06, fota_done),
  62. CMD_REG(0x07, fota_end),
  63. #endif
  64. #ifdef LUAT_USE_AIRLINK_EXEC_WIFI
  65. CMD_REG(0x200, wlan_init),
  66. CMD_REG(0x201, wlan_sta_connect),
  67. CMD_REG(0x202, wlan_sta_disconnect),
  68. CMD_REG(0x203, wlan_ap_start),
  69. CMD_REG(0x204, wlan_ap_stop),
  70. CMD_REG(0x205, wlan_scan),
  71. #else
  72. CMD_REG(0x206, wlan_scan_result_cb),
  73. #endif
  74. #ifdef LUAT_USE_AIRLINK_EXEC_GPIO
  75. CMD_REG(0x300, gpio_setup),
  76. CMD_REG(0x301, gpio_set),
  77. #endif
  78. #ifdef LUAT_USE_AIRLINK_EXEC_UART
  79. CMD_REG(0x400, uart_setup),
  80. CMD_REG(0x401, uart_write),
  81. CMD_REG(0x402, uart_close),
  82. #else
  83. CMD_REG(0x410, uart_data_cb),
  84. #endif
  85. CMD_REG(0x21, nop),
  86. {0, NULL}
  87. };