/** @file quec_wifi_msg.h @brief Quectel wifi msg api header. */ /*============================================================================ Copyright (c) 2020 Quectel Wireless Solution, Co., Ltd. All Rights Reserved. Quectel Wireless Solution Proprietary and Confidential. =============================================================================*/ /*=========================================================================== EDIT HISTORY FOR MODULE This section contains comments describing changes made to the module. Notice that changes are listed in reverse chronological order. WHEN WHO WHAT, WHERE, WHY ---------- ------------ ---------------------------------------------------- =============================================================================*/ #ifndef QUEC_WIFI_MSG_H #define QUEC_WIFI_MSG_H #ifdef __cplusplus extern "C" { #endif /*======================================================================== * Macro Definition *========================================================================*/ #define QUEC_PROTOCOL_HEAD_MAX_SIZE 6 #define QUEC_PROTOCOL_MSG_DATA_MAX_LEN 1600 #define QUEC_PROTOCOL_MSG_MAX_LEN (QUEC_PROTOCOL_HEAD_MAX_SIZE + QUEC_PROTOCOL_MSG_DATA_MAX_LEN) #define QUEC_MSG_CACHE_MAX_LEN (QUEC_PROTOCOL_MSG_MAX_LEN * 4) /*======================================================================== * Enumeration Definition *========================================================================*/ typedef enum { QUEC_WIFI_MSG_SUCCESS = 0, QUEC_WIFI_MSG_EXECUTE_ERR = 1, QUEC_WIFI_MSG_INVALID_PARAM_ERR, QUEC_WIFI_MSG_TASK_CREATE_ERR, QUEC_WIFI_MSG_MUTEX_CREATE_ERR, } quec_wifi_msg_errcode_e; typedef enum { QUEC_WIFI_NPTO_PARSE_RESULT_SUCC = 0, QUEC_WIFI_NPTO_PARSE_RESULT_NOMAGIC = 101, // No protocol header QUEC_WIFI_NPTO_PARSE_RESULT_TOOSMALL, // Data too small QUEC_WIFI_NPTO_PARSE_RESULT_ERRCRC, // CRC error QUEC_WIFI_NPTO_PARSE_RESULT_UNKNOWN, }quec_wifi_npto_parse_result_e; typedef enum { QUEC_WIFI_NPTO_802_3_STREAM = 0, QUEC_WIFI_NPTO_STA_IP_START_CMD = 1, //开启wifi sta功能, 成功连接热点,接受到该事件 QUEC_WIFI_NPTO_STA_IP_DOWN_CMD = 2, QUEC_WIFI_NPTO_UAP_IP_START_CMD = 3, //开启wifi ap功能,接受到该事件 QUEC_WIFI_NPTO_UAP_IP_DOWN_CMD = 4, //关闭wifi ap功能,接受到该事件 QUEC_WIFI_NPTO_IP_ADDR_SET_CMD = 5, QUEC_WIFI_NPTO_WLAN_CREATE_CMD = 6, //开启wifi sta功能,会先接受到7,再接受到6 QUEC_WIFI_NPTO_WLAN_DESTROY_CMD = 7, //开启wifi sta功能,会先接受到7,再接受到6 QUEC_WIFI_NPTO_STATUS_UPDATE_CMD = 8, QUEC_WIFI_NPTO_UAP_STA_CONNECT_CMD = 9, QUEC_WIFI_NPTO_UAP_STA_DISCONNECT_CMD = 10, QUEC_WIFI_APP_STA_ENABLE_CMD = 20, QUEC_WIFI_APP_STA_DISABLE_CMD = 21, QUEC_WIFI_APP_AP_ENABLE_CMD = 23, QUEC_WIFI_APP_AP_DISABLE_CMD = 24, QUEC_WIFI_APP_EVENT_NOTIFY = 25, QUEC_WIFI_APP_SCAN_START_CMD = 26, QUEC_WIFI_APP_STA_STATUS_CMD = 27, QUEC_WIFI_APP_STA_LINK_STATUS_CMD = 28, //对应WiFi的cmd27 QUEC_WIFI_APP_STA_SET_GOT_IP = 29, //要进入低功耗模式,必须先设置该状态 QUEC_WIFI_APP_PSM_CMD = 30, //设置进入低功耗模式 QUEC_WIFI_APP_SET_BLACK_MAC = 31, //增加或者删减sta黑名单 QUEC_WIFI_APP_AP_SET_CHANNEL = 32, //设置AP信道 QUEC_WIFI_APP_WIFI_STATE_REPORT= 34, // wifi状态主动上报,参数为rw_evt_type枚举 QUEC_WIFI_APP_RESET_CMD = 40, QUEC_WIFI_APP_RESET_DONE = 41, QUEC_WIFI_APP_GET_VERSION = 42, //GET VERSION QUEC_WIFI_APP_OTA_CMD = 50, // WIFI OTA CMD, 0x32 QUEC_WIFI_BOOT_UPGRADE_CMD = 51, // WIFI BOOT CMD, 0x33 QUEC_BLE_APP_INIT_CMD = 60, //0x3C, 用于初始化BLE,参数为 1 开启ble, 0 关闭 ble QUEC_BLE_APP_GET_BLE_MAC_ADDR_CMD = 61, //0X3D, 查询设备BLE地址 QUEC_BLE_APP_SET_BLE_NAME_CMD = 62, //0X3E, 设置BLE名称,最大长度:25字节 QUEC_BLE_APP_SET_BLE_ADV_PARAM_CMD = 63, //0X3F, 设置BLE广播参数 QUEC_BLE_APP_ADV_DATA_CMD = 64, //0x40, 设置BLE广播数据,参数为ql_ble_adv_data_info结构 QUEC_BLE_APP_SET_SERICE_UUID_CMD = 65, //0x41, 创建BLE服务,参数为ql_ble_app_service_info结构 QUEC_BLE_APP_SET_CHARACT_UUID_CMD = 66, //0x42, 创建BLE特征,参数为ql_ble_app_service_info结构 QUEC_BLE_APP_ADV_START_CMD = 67, //0x43, 开启BLE广播, 01 开启, 00 关闭 QUEC_BLE_APP_DATA_SEND_CMD = 68, //0x44, 发送GATT数据,参数为ql_ble_send_data_info结构 QUEC_BLE_APP_DISCONNECT_CMD = 69, //0x45, 断开BLE连接,无参数 QUEC_BLE_APP_INFO_RPT = 70, //0x46, BLE信息上报 QUEC_WIFI_APP_CMD_MAX } quec_wifi_npto_cmd_t; typedef enum { /* for station mode */ RW_EVT_STA_IDLE = 0, RW_EVT_STA_CONNECTING, RW_EVT_STA_BEACON_LOSE, RW_EVT_STA_PASSWORD_WRONG, // 3 密码错误 RW_EVT_STA_NO_AP_FOUND, // 4 扫描不到ap RW_EVT_STA_ASSOC_FULL, // 5 ap接入点已满 RW_EVT_STA_DEAUTH, // 6 收到AP的deauth包 RW_EVT_STA_AUTH_FAILED, // 7 验证失败 RW_EVT_STA_DISASSOC, // 8 收到AP的disassoc包 RW_EVT_STA_ASSOC_FAILED, // 9 关联认证失败 RW_EVT_STA_ACTIVE_DISCONNECTED, // 10 sta主动断开连接 RW_EVT_STA_CONNECTED, // 11 连接成功 RW_EVT_STA_GOT_IP, // 12 获取ip成功 /* for softap mode */ RW_EVT_AP_CONNECTED, /* a client association success */ RW_EVT_AP_DISCONNECTED, /* a client disconnect */ RW_EVT_AP_CONNECT_FAILED, /* a client association failed */ RW_EVT_AP_GOT_IP, RW_EVT_MAX } rw_evt_type; /*======================================================================== * Type Definition *========================================================================*/ typedef void (*quec_wifi_msg_net_notify_cb)(void *ctx); typedef void (*quec_wifi_msg_app_notify_cb)(void *ctx); typedef struct { int msg_id; void *msg_info; } quec_wifi_msg_cmd_info_s; typedef struct { unsigned int data_len; unsigned int pos; char *data; } quec_wifi_msg_protocol_info_s; typedef struct { unsigned char magic0; // Must be 0xAA unsigned char magic1; // Must be 0x55 unsigned short cmdlen; // Command length unsigned char command; // Command.Set bit 8 to 1 means command feedback. unsigned char checksum; unsigned char *data; } quec_wifi_msg_protocol_head_info_s; typedef struct{ uint8_t *or_addr; uint8_t *data; }quec_wifi_msg_align_s; typedef struct { uint8_t *data; int data_len; int cmd; } quec_wifi_msg_output_data_info_s; /*======================================================================== * function Definition *========================================================================*/ int quec_wifi_msg_recv(void *ctx); /***************************************************************** * Function: quec_wifi_msg_app_notify_cb_register * * Description: Register Wi-Fi APP engine notification from MSG engine callback. * * Parameters: * cb [in] Wi-Fi APP engine notification from MSG engine callback. * Once the MSG engine parses the corresponding command,the command will be passed to APP engine. * * Return: * 0 success * other error code * *****************************************************************/ quec_wifi_msg_errcode_e quec_wifi_msg_app_notify_cb_register(quec_wifi_msg_app_notify_cb cb); /***************************************************************** * Function: quec_wifi_msg_init * * Description: Initialize Wi-Fi msg engine. * * Parameters: * argv [in] No defined yet. * * Return: * 0 success * other error code * *****************************************************************/ quec_wifi_msg_errcode_e quec_wifi_msg_init(void *argv); /***************************************************************** * Function: quec_wifi_msg_deinit * * Description: Deinitialize Wi-Fi msg engine. * * Parameters: * argv [in] No defined yet. * * Return: * 0 success * other error code * *****************************************************************/ quec_wifi_msg_errcode_e quec_wifi_msg_deinit(void *argv); #ifdef __cplusplus } /*"C" */ #endif #endif