forked from xuos/xiuos
1、repair the uart irq problem;2、add wifi esp07s test cmd and repair the socket connect problem
This commit is contained in:
parent
31c536ef88
commit
85ff8877d4
|
@ -522,7 +522,7 @@ static int ATAgentInit(ATAgentType agent)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
pthread_attr_t attr;
|
pthread_attr_t attr;
|
||||||
attr.schedparam.sched_priority = 18;
|
attr.schedparam.sched_priority = 25;
|
||||||
attr.stacksize = 4096;
|
attr.stacksize = 4096;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <adapter.h>
|
#include <adapter.h>
|
||||||
|
#include "adapter_wifi.h"
|
||||||
#include <bus_pin.h>
|
#include <bus_pin.h>
|
||||||
|
|
||||||
#ifdef ADAPTER_HFA21_WIFI
|
#ifdef ADAPTER_HFA21_WIFI
|
||||||
|
@ -99,7 +100,7 @@ int AdapterWifiInit(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************wifi TEST*********************/
|
/******************wifi TEST*********************/
|
||||||
int AdapterWifiTest(void)
|
int AdapterwifiTest(void)
|
||||||
{
|
{
|
||||||
char cmd[64];
|
char cmd[64];
|
||||||
int baud_rate = BAUD_RATE_57600;
|
int baud_rate = BAUD_RATE_57600;
|
||||||
|
@ -182,4 +183,97 @@ int AdapterWifiTest(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterWifiTest, AdapterWifiTest, show adapter wifi information);
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterwifiTest, AdapterwifiTest, show adapter wifi information);
|
||||||
|
|
||||||
|
int wifiopen(void)
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
|
||||||
|
AdapterDeviceOpen(adapter);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, wifiopen, wifiopen, open adapter wifi );
|
||||||
|
int wificlose(void)
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
|
||||||
|
AdapterDeviceClose(adapter);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, wificlose, wificlose, close adapter wifi );
|
||||||
|
|
||||||
|
int wifisetup(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
struct WifiParam param;
|
||||||
|
memset(¶m,0,sizeof(struct WifiParam));
|
||||||
|
strncpy(param.wifi_ssid, argv[1], strlen(argv[1]));
|
||||||
|
strncpy(param.wifi_pwd, argv[2], strlen(argv[2]));
|
||||||
|
|
||||||
|
adapter->adapter_param = ¶m;
|
||||||
|
|
||||||
|
AdapterDeviceSetUp(adapter);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(3)|SHELL_CMD_DISABLE_RETURN, wifisetup, wifisetup, setup adapter wifi );
|
||||||
|
int wifiaddrset(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
char *ip = argv[1];
|
||||||
|
char *gateway = argv[2];
|
||||||
|
char *netmask = argv[3];
|
||||||
|
|
||||||
|
AdapterDeviceSetAddr(adapter, ip, gateway, netmask);
|
||||||
|
AdapterDevicePing(adapter, "36.152.44.95");///< ping www.baidu.com
|
||||||
|
AdapterDeviceNetstat(adapter);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(4)|SHELL_CMD_DISABLE_RETURN, wifiaddrset, wifiaddrset, addrset adapter wifi);
|
||||||
|
|
||||||
|
int wifiping(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
printf("ping %s\n",argv[1]);
|
||||||
|
AdapterDevicePing(adapter, argv[1]);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(3), wifiping, wifiping, wifiping adapter );
|
||||||
|
|
||||||
|
int wificonnect(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
char *ip = argv[1];
|
||||||
|
char *port = argv[2];
|
||||||
|
enum NetRoleType net_role = CLIENT;
|
||||||
|
enum IpType ip_type = IPV4;
|
||||||
|
|
||||||
|
if(0 == strncmp("tcp",argv[3],strlen("tcp"))) {
|
||||||
|
adapter->socket.protocal = SOCKET_PROTOCOL_TCP;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(0 == strncmp("udp",argv[3],strlen("udp"))) {
|
||||||
|
adapter->socket.protocal = SOCKET_PROTOCOL_UDP;
|
||||||
|
}
|
||||||
|
|
||||||
|
AdapterDeviceConnect(adapter, net_role, ip, port, ip_type);
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(4)|SHELL_CMD_DISABLE_RETURN, wificonnect, wificonnect, wificonnect adapter);
|
||||||
|
int wifisend(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
|
||||||
|
const char *wifi_msg = argv[1];
|
||||||
|
int len = strlen(wifi_msg);
|
||||||
|
for(int i = 0;i < 10; ++i) {
|
||||||
|
AdapterDeviceSend(adapter, wifi_msg, len);
|
||||||
|
PrivTaskDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(3)|SHELL_CMD_DISABLE_RETURN, wifisend, wifisend, wifisend adapter wifi information);
|
||||||
|
int wifirecv(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct Adapter* adapter = AdapterDeviceFindByName(ADAPTER_WIFI_NAME);
|
||||||
|
|
||||||
|
char wifi_recv_msg[128];
|
||||||
|
while (1) {
|
||||||
|
AdapterDeviceRecv(adapter, wifi_recv_msg, 128);
|
||||||
|
PrivTaskDelay(1000);
|
||||||
|
printf("wifi recv [%s]\n",wifi_recv_msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(3)|SHELL_CMD_DISABLE_RETURN, wifirecv, wifirecv, wifirecv adapter wifi information);
|
||||||
|
|
|
@ -6,5 +6,14 @@
|
||||||
#define CONFIG_WIFI_BAUDRATE (2)
|
#define CONFIG_WIFI_BAUDRATE (2)
|
||||||
|
|
||||||
|
|
||||||
|
#define SOCKET_PROTOCOL_TCP (6)
|
||||||
|
#define SOCKET_PROTOCOL_UDP (17)
|
||||||
|
|
||||||
|
struct WifiParam
|
||||||
|
{
|
||||||
|
uint8_t wifi_ssid[128];
|
||||||
|
uint8_t wifi_pwd[128];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -24,8 +24,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#define LEN_PARA_BUF 128
|
#define LEN_PARA_BUF 128
|
||||||
#define SOCKET_PROTOCOL_TCP (6)
|
|
||||||
#define SOCKET_PROTOCOL_UDP (17)
|
|
||||||
|
|
||||||
static int Esp07sWifiSetDown(struct Adapter *adapter_at);
|
static int Esp07sWifiSetDown(struct Adapter *adapter_at);
|
||||||
|
|
||||||
|
@ -38,12 +36,18 @@ static int Esp07sWifiTestAtCmd(ATAgentType at_agent)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(at_agent, "AT", "OK");
|
ret = AtCmdConfigAndCheck(at_agent, "ATE0\r\n", "OK"); ///< close echo function
|
||||||
|
if(ret < 0) {
|
||||||
|
printf("%s %d cmd[ATE0] config failed!\n",__func__,__LINE__);
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrivTaskDelay(2000);
|
||||||
|
ret = AtCmdConfigAndCheck(at_agent, "AT\r\n", "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd[AT] config failed!\n",__func__,__LINE__);
|
printf("%s %d cmd[AT] config failed!\n",__func__,__LINE__);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +114,9 @@ static int Esp07sWifiOpen(struct Adapter *adapter)
|
||||||
adapter->agent = at_agent;
|
adapter->agent = at_agent;
|
||||||
}
|
}
|
||||||
|
|
||||||
ADAPTER_DEBUG("Esp07sWifi open done\n");
|
AtSetReplyEndChar(adapter->agent,'O','K');
|
||||||
|
|
||||||
|
ADAPTER_DEBUG("Esp07sWifi open done\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -174,15 +180,13 @@ static int Esp07sWifiReceive(struct Adapter *adapter, void *rev_buffer, size_t b
|
||||||
*/
|
*/
|
||||||
static int Esp07sWifiSetUp(struct Adapter *adapter)
|
static int Esp07sWifiSetUp(struct Adapter *adapter)
|
||||||
{
|
{
|
||||||
uint8 wifi_ssid[LEN_PARA_BUF] = "AIIT-Guest";
|
|
||||||
uint8 wifi_pwd[LEN_PARA_BUF] = "";
|
|
||||||
char cmd[LEN_PARA_BUF];
|
char cmd[LEN_PARA_BUF];
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
|
|
||||||
|
struct WifiParam *param = (struct WifiParam *)adapter->adapter_param;
|
||||||
struct ATAgent *agent = adapter->agent;
|
struct ATAgent *agent = adapter->agent;
|
||||||
|
|
||||||
/* wait esp07s device startup finish */
|
|
||||||
PrivTaskDelay(2000);
|
PrivTaskDelay(2000);
|
||||||
|
|
||||||
if(Esp07sWifiTestAtCmd(agent) < 0)
|
if(Esp07sWifiTestAtCmd(agent) < 0)
|
||||||
|
@ -190,28 +194,31 @@ static int Esp07sWifiSetUp(struct Adapter *adapter)
|
||||||
printf("wifi at cmd startup failed.\n");
|
printf("wifi at cmd startup failed.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
PrivTaskDelay(2000);
|
||||||
/* config as softAP+station mode */
|
/* config as softAP+station mode */
|
||||||
ret = AtCmdConfigAndCheck(agent, "AT+CWMODE=3", "OK");
|
ret = AtCmdConfigAndCheck(agent, "AT+CWMODE=3\r\n", "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd[AT+CWMODE=3] config failed!\n",__func__,__LINE__);
|
printf("%s %d cmd[AT+CWMODE=3] config failed!\n",__func__,__LINE__);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
PrivTaskDelay(2000);
|
||||||
/* connect the router */
|
/* connect the router */
|
||||||
memset(cmd,0,sizeof(cmd));
|
memset(cmd,0,sizeof(cmd));
|
||||||
strncpy(cmd,"AT+CWJAP=",strlen("AT+CWJAP="));
|
strncpy(cmd,"AT+CWJAP=",strlen("AT+CWJAP="));
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncat(cmd,wifi_ssid,strlen(wifi_ssid));
|
strncat(cmd,param->wifi_ssid,strlen(param->wifi_ssid));
|
||||||
|
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncat(cmd,",",1);
|
strncat(cmd,",",1);
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncat(cmd,wifi_pwd,strlen(wifi_pwd));
|
strncat(cmd,param->wifi_pwd,strlen(param->wifi_pwd));
|
||||||
|
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
// strcat(cmd,"\r\n");
|
strcat(cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd[%s] connect[%s] failed!\n",__func__,__LINE__,cmd,wifi_ssid);
|
printf("%s %d cmd[%s] connect[%s] failed!\n",__func__,__LINE__,cmd,param->wifi_ssid);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,7 +228,7 @@ static int Esp07sWifiSetUp(struct Adapter *adapter)
|
||||||
printf("%s %d at_create_resp failed!\n",__func__,__LINE__);
|
printf("%s %d at_create_resp failed!\n",__func__,__LINE__);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ret = ATOrderSend(agent, REPLY_TIME_OUT, reply, "AT+CIFSR");
|
ret = ATOrderSend(agent, REPLY_TIME_OUT, reply, "AT+CIFSR\r\n");
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
printf("%s %d ATOrderSend AT+CIFSR failed.\n",__func__,__LINE__);
|
printf("%s %d ATOrderSend AT+CIFSR failed.\n",__func__,__LINE__);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
@ -249,7 +256,7 @@ __exit:
|
||||||
*/
|
*/
|
||||||
static int Esp07sWifiSetDown(struct Adapter *adapter)
|
static int Esp07sWifiSetDown(struct Adapter *adapter)
|
||||||
{
|
{
|
||||||
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RESTORE");
|
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RESTORE\r\n");
|
||||||
PrivTaskDelay(2000);
|
PrivTaskDelay(2000);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -282,6 +289,7 @@ static int Esp07sWifiSetAddr(struct Adapter *adapter, const char *ip, const char
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncat(cmd,netmask,strlen(netmask));
|
strncat(cmd,netmask,strlen(netmask));
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
|
strcat(cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(adapter->agent, cmd, "OK");
|
ret = AtCmdConfigAndCheck(adapter->agent, cmd, "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
|
@ -308,6 +316,7 @@ static int Esp07sWifiPing(struct Adapter *adapter, const char *destination)
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncat(cmd,destination,strlen(destination));
|
strncat(cmd,destination,strlen(destination));
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
|
strcat(cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(adapter->agent, cmd, "OK"); ///< config as softAP+station mode
|
ret = AtCmdConfigAndCheck(adapter->agent, cmd, "OK"); ///< config as softAP+station mode
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
|
@ -327,7 +336,34 @@ static int Esp07sWifiPing(struct Adapter *adapter, const char *destination)
|
||||||
*/
|
*/
|
||||||
static int Esp07sWifiNetstat(struct Adapter *adapter)
|
static int Esp07sWifiNetstat(struct Adapter *adapter)
|
||||||
{
|
{
|
||||||
return 0;
|
int ret = 0;
|
||||||
|
char *result = NULL;
|
||||||
|
|
||||||
|
/* check the wifi ip address */
|
||||||
|
ATReplyType reply = CreateATReply(256);
|
||||||
|
if (NULL == reply) {
|
||||||
|
printf("%s %d at_create_resp failed!\n",__func__,__LINE__);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
ret = ATOrderSend(adapter->agent, REPLY_TIME_OUT, reply, "AT+CIFSR\r\n");
|
||||||
|
if(ret < 0){
|
||||||
|
printf("%s %d ATOrderSend AT+CIFSR failed.\n",__func__,__LINE__);
|
||||||
|
ret = -1;
|
||||||
|
goto __exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = GetReplyText(reply);
|
||||||
|
if (!result) {
|
||||||
|
printf("%s %n get reply failed.\n",__func__,__LINE__);
|
||||||
|
ret = -1;
|
||||||
|
goto __exit;
|
||||||
|
}
|
||||||
|
printf("[%s]\n", result);
|
||||||
|
|
||||||
|
__exit:
|
||||||
|
DeleteATReply(reply);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -349,12 +385,18 @@ static int Esp07sWifiConnect(struct Adapter *adapter, enum NetRoleType net_role,
|
||||||
if(adapter->socket.protocal == SOCKET_PROTOCOL_TCP && net_role == CLIENT) //esp07s as tcp client to connect server
|
if(adapter->socket.protocal == SOCKET_PROTOCOL_TCP && net_role == CLIENT) //esp07s as tcp client to connect server
|
||||||
{
|
{
|
||||||
//e.g. AT+CIPSTART="TCP","192.168.3.116",8080 protocol, server IP and port
|
//e.g. AT+CIPSTART="TCP","192.168.3.116",8080 protocol, server IP and port
|
||||||
strncpy(cmd,"AT+CIPSTART=\"TCP\",",strlen("AT+CIPSTART=\"TCP\","));
|
strncpy(cmd,"AT+CIPSTART=",strlen("AT+CIPSTART="));
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncpy(cmd, ip, strlen(ip));
|
strncat(cmd,"TCP",strlen("TCP"));
|
||||||
|
strncat(cmd,"\"",1);
|
||||||
|
strncat(cmd, ",", 1);
|
||||||
|
strncat(cmd,"\"",1);
|
||||||
|
strncat(cmd, ip, strlen(ip));
|
||||||
strncat(cmd, "\"", 1);
|
strncat(cmd, "\"", 1);
|
||||||
strncat(cmd, ",", 1);
|
strncat(cmd, ",", 1);
|
||||||
strncat(cmd, port, strlen(port));
|
strncat(cmd, port, strlen(port));
|
||||||
|
strcat(cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d tcp connect [%s] failed!\n",__func__,__LINE__,ip);
|
printf("%s %d tcp connect [%s] failed!\n",__func__,__LINE__,ip);
|
||||||
|
@ -364,9 +406,13 @@ static int Esp07sWifiConnect(struct Adapter *adapter, enum NetRoleType net_role,
|
||||||
else if(adapter->socket.protocal == SOCKET_PROTOCOL_UDP)
|
else if(adapter->socket.protocal == SOCKET_PROTOCOL_UDP)
|
||||||
{
|
{
|
||||||
//e.g. AT+CIPSTART="UDP","192.168.3.116",8080,2233,0 UDP protocol, server IP, port,local port,udp mode
|
//e.g. AT+CIPSTART="UDP","192.168.3.116",8080,2233,0 UDP protocol, server IP, port,local port,udp mode
|
||||||
strncpy(cmd,"AT+CIPSTART=\"UDP\",",strlen("AT+CIPSTART=\"UDP\","));
|
strncpy(cmd,"AT+CIPSTART=",strlen("AT+CIPSTART="));
|
||||||
strncat(cmd,"\"",1);
|
strncat(cmd,"\"",1);
|
||||||
strncpy(cmd, ip, strlen(ip));
|
strncat(cmd,"UDP",strlen("UDP"));
|
||||||
|
strncat(cmd,"\"",1);
|
||||||
|
strncat(cmd, ",", 1);
|
||||||
|
strncat(cmd,"\"",1);
|
||||||
|
strncat(cmd, ip, strlen(ip));
|
||||||
strncat(cmd, "\"", 1);
|
strncat(cmd, "\"", 1);
|
||||||
strncat(cmd, ",", 1);
|
strncat(cmd, ",", 1);
|
||||||
strncat(cmd, port, strlen(port));
|
strncat(cmd, port, strlen(port));
|
||||||
|
@ -374,6 +420,7 @@ static int Esp07sWifiConnect(struct Adapter *adapter, enum NetRoleType net_role,
|
||||||
strncat(cmd, "2233", strlen("2233")); ///< local port
|
strncat(cmd, "2233", strlen("2233")); ///< local port
|
||||||
strncat(cmd, ",", 1);
|
strncat(cmd, ",", 1);
|
||||||
strncat(cmd, "0", 1); ///< udp transparent transmission mode must be 0
|
strncat(cmd, "0", 1); ///< udp transparent transmission mode must be 0
|
||||||
|
strcat(cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
ret = AtCmdConfigAndCheck(agent, cmd, "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
|
@ -382,12 +429,12 @@ static int Esp07sWifiConnect(struct Adapter *adapter, enum NetRoleType net_role,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(agent, "AT+CIPMODE=1", "OK"); ///< config as transparent transmission
|
ret = AtCmdConfigAndCheck(agent, "AT+CIPMODE=1\r\n", "OK"); ///< config as transparent transmission
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd[%s] config as transparent transmission failed!\n",__func__,__LINE__,cmd);
|
printf("%s %d cmd[%s] config as transparent transmission failed!\n",__func__,__LINE__,cmd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ATOrderSend(agent, REPLY_TIME_OUT, NULL, "AT+CIPSEND");
|
ATOrderSend(agent, REPLY_TIME_OUT, NULL, "AT+CIPSEND\r\n");
|
||||||
|
|
||||||
printf("[%s] connection config as transparent transmission\n",adapter->socket.protocal == SOCKET_PROTOCOL_UDP ? "udp" : "tcp");
|
printf("[%s] connection config as transparent transmission\n",adapter->socket.protocal == SOCKET_PROTOCOL_UDP ? "udp" : "tcp");
|
||||||
adapter->net_role = net_role;
|
adapter->net_role = net_role;
|
||||||
|
@ -408,17 +455,17 @@ static int Esp07sWifiDisconnect(struct Adapter *adapter)
|
||||||
memset(cmd,0,sizeof(cmd));
|
memset(cmd,0,sizeof(cmd));
|
||||||
|
|
||||||
/* step1: stop transparent transmission mode */
|
/* step1: stop transparent transmission mode */
|
||||||
ATOrderSend(agent, REPLY_TIME_OUT, NULL, "+++");
|
ATOrderSend(agent, REPLY_TIME_OUT, NULL, "+++\r\n");
|
||||||
|
|
||||||
/* step2: exit transparent transmission mode */
|
/* step2: exit transparent transmission mode */
|
||||||
ret = AtCmdConfigAndCheck(agent, "AT+CIPMODE=0", "OK");
|
ret = AtCmdConfigAndCheck(agent, "AT+CIPMODE=0\r\n", "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd[AT+CIPMODE=0] exit failed!\n",__func__,__LINE__);
|
printf("%s %d cmd[AT+CIPMODE=0] exit failed!\n",__func__,__LINE__);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* step3: disconnect */
|
/* step3: disconnect */
|
||||||
ret = AtCmdConfigAndCheck(agent, "AT+CIPCLOSE", "OK");
|
ret = AtCmdConfigAndCheck(agent, "AT+CIPCLOSE\r\n", "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd [AT+CIPCLOSE] disconnect failed!\n",__func__,__LINE__);
|
printf("%s %d cmd [AT+CIPCLOSE] disconnect failed!\n",__func__,__LINE__);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -438,10 +485,10 @@ static int Esp07sWifiIoctl(struct Adapter *adapter, int cmd, void *args)
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case CONFIG_WIFI_RESET: /* reset wifi */
|
case CONFIG_WIFI_RESET: /* reset wifi */
|
||||||
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RST");
|
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RST\r\n");
|
||||||
break;
|
break;
|
||||||
case CONFIG_WIFI_RESTORE: /* resore wifi */
|
case CONFIG_WIFI_RESTORE: /* resore wifi */
|
||||||
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RESTORE");
|
ATOrderSend(adapter->agent, REPLY_TIME_OUT, NULL, "AT+RESTORE\r\n");
|
||||||
break;
|
break;
|
||||||
case CONFIG_WIFI_BAUDRATE:
|
case CONFIG_WIFI_BAUDRATE:
|
||||||
/* step1: config mcu uart*/
|
/* step1: config mcu uart*/
|
||||||
|
@ -483,6 +530,8 @@ static int Esp07sWifiIoctl(struct Adapter *adapter, int cmd, void *args)
|
||||||
strncat(at_cmd, "0", 1);
|
strncat(at_cmd, "0", 1);
|
||||||
strncat(at_cmd, ",", 1);
|
strncat(at_cmd, ",", 1);
|
||||||
strncat(at_cmd, "3", 1);
|
strncat(at_cmd, "3", 1);
|
||||||
|
strcat(at_cmd,"\r\n");
|
||||||
|
|
||||||
ret = AtCmdConfigAndCheck(adapter->agent, at_cmd, "OK");
|
ret = AtCmdConfigAndCheck(adapter->agent, at_cmd, "OK");
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
printf("%s %d cmd [%s] config uart failed!\n",__func__,__LINE__,at_cmd);
|
printf("%s %d cmd [%s] config uart failed!\n",__func__,__LINE__,at_cmd);
|
||||||
|
|
|
@ -186,6 +186,13 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf
|
||||||
|
|
||||||
LPUART_Init(uart_base, &config, GetUartSrcFreq());
|
LPUART_Init(uart_base, &config, GetUartSrcFreq());
|
||||||
|
|
||||||
|
if (configure_info->private_data) {
|
||||||
|
DisableIRQ(serial_cfg->hw_cfg.serial_irq_interrupt);
|
||||||
|
LPUART_EnableInterrupts(uart_base, kLPUART_RxDataRegFullInterruptEnable);
|
||||||
|
NVIC_SetPriority(serial_cfg->hw_cfg.serial_irq_interrupt, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 4, 0));
|
||||||
|
EnableIRQ(serial_cfg->hw_cfg.serial_irq_interrupt);
|
||||||
|
}
|
||||||
|
|
||||||
return EOK;
|
return EOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,6 +202,10 @@ static uint32 SerialConfigure(struct SerialDriver *serial_drv, int serial_operat
|
||||||
|
|
||||||
struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data;
|
struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data;
|
||||||
LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data;
|
LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data;
|
||||||
|
struct BusConfigureInfo configure_info;
|
||||||
|
configure_info.private_data = NONE;
|
||||||
|
|
||||||
|
SerialInit(serial_drv, &configure_info);
|
||||||
|
|
||||||
switch (serial_operation_cmd)
|
switch (serial_operation_cmd)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue