update: remove old bl616 wifi driver, add new api
Signed-off-by: sakumisu <1203593632@qq.com>
This commit is contained in:
182
demo/usbh_bl616_wifi_cli.c
Normal file
182
demo/usbh_bl616_wifi_cli.c
Normal file
@@ -0,0 +1,182 @@
|
||||
#include "usbh_core.h"
|
||||
#include "usbh_cdc_acm.h"
|
||||
#include "shell.h"
|
||||
|
||||
static USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t cdc_buffer[8 * 1024];
|
||||
|
||||
int wifi_scan(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "ap_scan\r\n");
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi scan failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi scan failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_scan, wifi_scan);
|
||||
|
||||
int wifi_scan_result(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "ap_scan_result {\"offset\":0, \"count\":0}\r\n");
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi scan failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi scan failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_scan_result, wifi_scan_result);
|
||||
|
||||
int wifi_connect(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (argc < 3) {
|
||||
printf("please input correct command: wifi_connect ssid password\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "ap_connect {\"ssid\":\"%s\", \"password\":\"%s\"}\r\n", argv[1], argv[2]);
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi connect failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi connect failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_connect, wifi_connect);
|
||||
|
||||
int wifi_disconnect(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "ap_disconnect\r\n");
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi disconnect failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi disconnect failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_disconnect, wifi_disconnect);
|
||||
|
||||
int wifi_status(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "ap_status\r\n");
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi status failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi status failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_status, wifi_status);
|
||||
|
||||
int wifi_version(int argc, char **argv)
|
||||
{
|
||||
struct usbh_cdc_acm *cdc_acm_class = usbh_find_class_instance("/dev/ttyACM0");
|
||||
uint32_t len;
|
||||
int ret;
|
||||
|
||||
if (cdc_acm_class == NULL) {
|
||||
printf("cdc acm class not found\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = snprintf((char *)cdc_buffer, sizeof(cdc_buffer), "sys_version\r\n");
|
||||
ret = usbh_cdc_acm_bulk_out_transfer(cdc_acm_class, cdc_buffer, len, 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi status failed1, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = usbh_cdc_acm_bulk_in_transfer(cdc_acm_class, cdc_buffer, sizeof(cdc_buffer), 3000);
|
||||
if (ret < 0) {
|
||||
printf("wifi status failed2, ret:%d\r\n", ret);
|
||||
return -1;
|
||||
}
|
||||
cdc_buffer[ret] = '\0';
|
||||
printf("%s\r\n", cdc_buffer);
|
||||
return 0;
|
||||
}
|
||||
CSH_CMD_EXPORT(wifi_version, wifi_version);
|
||||
Reference in New Issue
Block a user