luat_wlan_raw_air101.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "luat_base.h"
  2. #include "luat_malloc.h"
  3. #include "luat_msgbus.h"
  4. #include "luat_wlan_raw.h"
  5. #include <string.h>
  6. #include "wm_irq.h"
  7. #include "tls_sys.h"
  8. #include "wm_ram_config.h"
  9. #include "wm_efuse.h"
  10. #include "wm_regs.h"
  11. #include "wm_wifi.h"
  12. #include "wm_netif.h"
  13. #include "wm_debug.h"
  14. #define LUAT_LOG_TAG "wlanraw"
  15. #include "luat_log.h"
  16. extern u8* tls_wifi_buffer_acquire(int total_len);
  17. extern void tls_wifi_buffer_release(bool is_apsta, u8* buffer);
  18. int luat_wlan_raw_write(int is_apsta, uint8_t* buff, size_t len) {
  19. u8* tmp = tls_wifi_buffer_acquire(len);
  20. if (tmp == NULL) {
  21. LLOGW("tls_wifi_buffer_acquire failed, len:%d", len);
  22. return -1;
  23. }
  24. memcpy(tmp, buff, len);
  25. tls_wifi_buffer_release(is_apsta, tmp);
  26. return 0;
  27. }
  28. int luat_wlan_get_mac(int id, char* mac);
  29. static char wlan_raw_ap_mac[6];
  30. int luat_wlan_raw_in(const u8 *bssid, u8 *buf, u32 buf_len) {
  31. // printf("pkgin %02X%02X%02X%02X%02X%02X %p %d\n",
  32. // bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5],
  33. // buf, buf_len);
  34. if (memcmp(bssid, wlan_raw_ap_mac, 6) != 0) {
  35. l_wlan_raw_event(1, buf, buf_len); // AP数据包
  36. }
  37. else {
  38. l_wlan_raw_event(0, buf, buf_len); // STA数据包
  39. }
  40. return 0;
  41. }
  42. int luat_wlan_raw_setup(luat_wlan_raw_conf_t *conf) {
  43. luat_wlan_get_mac(1, wlan_raw_ap_mac);
  44. return 0;
  45. }