Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of NNN40_CLI by
Diff: CLI_Source/wifi_cli.cpp
- Revision:
- 10:5f1fa331d07c
- Parent:
- 9:ff3ccba5dc16
- Child:
- 12:a91455702763
diff -r ff3ccba5dc16 -r 5f1fa331d07c CLI_Source/wifi_cli.cpp
--- a/CLI_Source/wifi_cli.cpp Mon Jan 25 11:19:12 2016 +0000
+++ b/CLI_Source/wifi_cli.cpp Tue Jan 26 09:31:06 2016 +0000
@@ -38,12 +38,14 @@
static unsigned char *newSSID;
static scanApInfo saveAP[WIFI_MAX_AP_NUMBER];
static bool wifiIniState = false;
+static bool wifiDataInt = false; // wifi receive callback flag
typedef struct deviceNetwork_s {
char ap_ssid[AP_SSID_MAX_LEN+1];
char ap_pw[AP_PW_MAX_LEN+1];
} deviceNetwork_t;
deviceNetwork_t devNetwork[4]; // 0-2 for setNetwork, 3 for set_ap
+DigitalOut wifiWriteInt(p30);
static uint8_t cyntecIsValidIP(uint8_t *startIdx, uint8_t totalLen)
{
@@ -445,8 +447,8 @@
int timeout_ms = 35000;
uint8_t *argTimeout;
EthernetInterface ethInterface;
- if (cyntecGetCommandTokenCnt() != 2 & cyntecGetCommandTokenCnt() != 3)
- cyntecPrintError(CYNTEC_CMD_ERR_WRONG_NUMBER_OF_ARGUMENTS);
+ if (cyntecGetCommandTokenCnt() != 2 & cyntecGetCommandTokenCnt() != 3)
+ cyntecPrintError(CYNTEC_CMD_ERR_WRONG_NUMBER_OF_ARGUMENTS);
if (cyntecGetCommandTokenCnt() == 2) {
#ifdef DELTA_WIFI_DEBUG
console.printf("\r\n");
@@ -750,7 +752,7 @@
if (cyntecGetCommandTokenCnt() == 3) {
/* handle Message arg */
argLen = atoi((const char *)cyntecGetCommandArgument(0, NULL));
-
+ //console.printf("argLen:%d\r\n",argLen);
if (argLen > TCP_SEND_MAX_LEN || argLen < 0) {
cyntecPrintError(CYNTEC_CMD_ERR_ARGUMENT_OUT_OF_RANGE);
return;
@@ -1086,23 +1088,46 @@
console.printf("\r\nOK;%d\r\n\r\n",cliEndpoint.get_port());
}
+static void cyn_wifi_enint()
+{
+ wifiDataInt = true;
+ cyntecPrintOk();
+}
+
+static void cyn_wifi_disint()
+{
+ wifiDataInt = false;
+ cyntecPrintOk();
+}
+
+
int wifi_receive_UDP_callback(uint8_t *data, int size, char* ipaddr, int port)
{
+ // Do nothing until flag on
+ if(wifiDataInt) {
+ wifiWriteInt = !wifiWriteInt;
+ wifiWriteInt = !wifiWriteInt;
#ifdef DELTA_WIFI_DEBUG
- console.printf("wifi_receive_UDP_callback:");
+ console.printf("wifi_receive_UDP_callback:");
#endif
- console.printf("rTCP;%s,%i,%s,%d;\r\n",data, size, ipaddr, port);
- // Gill note: port number may different from original
+ console.printf("rUDP;%s,%i,%s,%d;\r\n",data, size, ipaddr, port);
+ }
}
+// Gill note: port number may different from original
int wifi_receive_TCP_callback(uint8_t *data, int size, char* ipaddr, int port)
{
+ // Do nothing until flag on
+ if(wifiDataInt) {
+ wifiWriteInt = !wifiWriteInt;
+ wifiWriteInt = !wifiWriteInt;
#ifdef DELTA_WIFI_DEBUG
- console.printf("wifi_receive_TCP_callback\r\n");
+ console.printf("wifi_receive_TCP_callback\r\n");
#endif
- console.printf("rUDP;%s,%i,%s,%d\r\n",data, size, ipaddr, port);
- // Gill note: port number may different from original
+ console.printf("rTCP;%s,%i,%s,%d;\r\n",data, size, ipaddr, port);
+ }
}
+// Gill note: port number may different from original
CyntecCommandEntry wifiCommandSets[] = {
#if SIMPLE_CMD_NAME
@@ -1117,7 +1142,9 @@
{"DME4",cyn_wifi_mem_erase4k, NULL, " <MEMADDR> Erase a 4KB sector of embedded flash"},
{"DMRD",cyn_wifi_mem_read, NULL, " <MEMADDR> <LEN> Read data from embeeded flash"},
{"DMWT",cyn_wifi_mem_write, NULL, " <MEMADDR> <DATA> Write data into embeeded flash"},
-
+ {"DEDI",cyn_wifi_enint, NULL, " Enable Wifi data interrupt, print data whenever received."},
+ {"DDDI",cyn_wifi_disint, NULL, " Disable Wifi interrupt."},
+
/////////**** WIFI Ethernet ****//////////
{"EINT", cyn_wifi_ethernet_init, NULL, " <STATIC IP> Initialize the interface to use DHCP"},
{"ECON", cyn_wifi_ethernet_connect, NULL, "<TIMEOUT MS> Bring up the WiFi connection"},
@@ -1155,6 +1182,7 @@
{"UERS", cyn_wifi_udp_endpoint_reset_address, NULL, "Reset the address of this endpoint"},
{"UEAD", cyn_wifi_udp_endpoint_address, NULL, " <IPADDR> <PORT> Set/Get the address of this endpoint"},
{"UEPT", cyn_wifi_udp_endpoint_port, NULL, "Get the port of this endpoint"},
+
{NULL, NULL, NULL, NULL},
#else
/////////**** WIFI Device ****//////////
@@ -1168,6 +1196,9 @@
{"device_mem_erase4k",cyn_wifi_mem_erase4k, NULL, " <MEMADDR> Erase a 4KB sector of embedded flash"},
{"device_mem_read",cyn_wifi_mem_read, NULL, " <MEMADDR> <LEN> Read data from embeeded flash"},
{"device_mem_write",cyn_wifi_mem_write, NULL, " <MEMADDR> <DATA> Write data into embeeded flash"},
+ {"device_enint",cyn_wifi_enint, NULL, " Enable Wifi data interrupt, print data whenever received."},
+ {"device_disint",cyn_wifi_disint, NULL, " Disable Wifi interrupt."},
+
/////////**** WIFI Ethernet ****//////////
{"ethernet_init", cyn_wifi_ethernet_init, NULL, " <STATIC IP> Initialize the interface to use DHCP"},
@@ -1194,7 +1225,7 @@
{"tcp_connection_send_all", cyn_wifi_tcp_connection_send_all, NULL, " <DATA> Send all the data to the remote host"},
{"tcp_connection_receive", cyn_wifi_tcp_connection_receive, NULL, " <DATALEN> Receive data from the remote host"},
{"tcp_connection_receive_all", cyn_wifi_tcp_connection_receive_all, NULL, "<DATALEN> Receive all the data from the remote host"},
- {"tcp_connection_blocking ", cyn_wifi_tcp_connection_blocking, NULL, "<SETTING> <TIMEOUT MS> Set blocking mode and timeout"},
+ {"tcp_connection_blocking", cyn_wifi_tcp_connection_blocking, NULL, "<SETTING> <TIMEOUT MS> Set blocking mode and timeout"},
{"tcp_connection_close", cyn_wifi_tcp_connection_close, NULL, "<SHUTDOWN> Close the connection"},
// {"tcp_connection_reset_address", cyn_wifi_tcp_connection_reset_address, NULL, "........."},
// {"tcp_connection_address", cyn_wifi_tcp_connection_address, NULL, "........."},
