for EthernetInterface library compatibility.\\ ** Unoffical fix. may be a problem. **

Dependents:   SNIC-httpclient-example SNIC-ntpclient-example

Fork of SNICInterface by muRata

Files at this revision

API Documentation at this revision

Comitter:
kishino
Date:
Tue Mar 18 01:13:52 2014 +0000
Parent:
8:50d2509479cd
Child:
10:49ffd373066b
Commit message:
[Refactoring]Updated that function for get buffer from memorypool.

Changed in this revision

SNICwifi/SNICwifi.cpp Show annotated file Show diff for this revision Revisions of this file
SNICwifi/SNICwifi.h Show annotated file Show diff for this revision Revisions of this file
SNICwifiInterface.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/SNICwifi/SNICwifi.cpp	Mon Mar 17 11:40:56 2014 +0000
+++ b/SNICwifi/SNICwifi.cpp	Tue Mar 18 01:13:52 2014 +0000
@@ -64,6 +64,17 @@
     return ret;
 }
 
+tagMEMPOOL_BLOCK_T *C_SNICwifi::getAlocCmdBuf()
+{
+    // Get buffer from MemoryPool
+    return mMemPoolPayload.alloc();
+}
+
+void C_SNICwifi::freeCmdBuf( tagMEMPOOL_BLOCK_T *buf_p )
+{
+    mMemPoolPayload.free( buf_p );
+}
+
 void C_SNICwifi::uartRecvThread (void const *args_p) {
 
     C_SNICwifi *instance_p = C_SNICwifi::getInstance();
--- a/SNICwifi/SNICwifi.h	Mon Mar 17 11:40:56 2014 +0000
+++ b/SNICwifi/SNICwifi.h	Tue Mar 18 01:13:52 2014 +0000
@@ -11,6 +11,13 @@
 namespace murata_wifi
 {
 
+#define MEMPOOL_BLOCK_SIZE  2048
+#define MEMPOOL_PAYLOAD_NUM 1
+typedef struct
+{
+    unsigned char buf[MEMPOOL_BLOCK_SIZE];
+}tagMEMPOOL_BLOCK_T;
+
 /** C_SNICwifi class
  */
 class C_SNICwifi
@@ -56,6 +63,16 @@
         e_AP_STARTED
     }E_WIFI_STATUS;
 
+    /** Get buffer for command from memory pool.
+        @return Pointer of buffer
+     */
+    tagMEMPOOL_BLOCK_T *getAlocCmdBuf();
+    
+    /** Release buffer to memory pool.
+        @param buf_p Pointer of buffer
+     */
+    void freeCmdBuf( tagMEMPOOL_BLOCK_T *buf_p );
+
 protected:
     /** GEN_FW_VER_GET_REQ Command */
     typedef struct 
@@ -157,7 +174,11 @@
     /** Receiving thread of UART
     */
     static void uartRecvThread( void const *args_p );
-    
+  
+private:
+    /** MemoryPool for payload of UART response */
+    MemoryPool<tagMEMPOOL_BLOCK_T, MEMPOOL_PAYLOAD_NUM>     mMemPoolPayload;
+  
 };
 }
 
--- a/SNICwifiInterface.cpp	Mon Mar 17 11:40:56 2014 +0000
+++ b/SNICwifiInterface.cpp	Tue Mar 18 01:13:52 2014 +0000
@@ -5,15 +5,6 @@
 
 #define UART_REQUEST_PAYLOAD_MAX 256
 
-#define MEMPOOL_BLOCK_SIZE  2048
-typedef struct
-{
-    unsigned char buf[MEMPOOL_BLOCK_SIZE];
-}tagMEMPOOL_BLOCK_T;
-#define MEMPOOL_PAYLOAD_NUM 1
-/** MemoryPool for payload of UART response */
-MemoryPool<tagMEMPOOL_BLOCK_T, MEMPOOL_PAYLOAD_NUM>     gMEMPOOL_PAYLOAD;
-
 C_SNICwifiInterface::C_SNICwifiInterface( PinName tx, PinName rx, PinName cts, PinName rts, PinName reset, PinName alarm, int baud):
     C_SNICwifi(tx, rx, cts, rts, reset, alarm, baud)
 {
@@ -25,8 +16,8 @@
     initUart();
     
     /* Initialize SNIC API */
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("snic_init payload_buf NULL\r\n");
@@ -64,7 +55,7 @@
     if( ret != 0 )
     {
         printf( "snic_init failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -73,7 +64,7 @@
         printf("snic_init status:%02x\r\n", mUartCommand.getCommandStatus());
         ret = -1;
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
     
     return ret;
 }
@@ -81,7 +72,7 @@
 int C_SNICwifiInterface::getFWVersion( unsigned char *version_p )
 {
     // Get buffer for response payload from MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("getFWVersion payload_buf NULL\r\n");
@@ -117,7 +108,7 @@
     if( ret != 0 )
     {
         printf( "getFWversion failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -126,7 +117,7 @@
         unsigned char version_len = payload_buf->buf[3];
         memcpy( version_p, &payload_buf->buf[4], version_len );
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
     return 0;
 }
 
@@ -147,8 +138,8 @@
         return -1;
     }
     
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("connect payload_buf NULL\r\n");
@@ -206,7 +197,7 @@
     if( ret != 0 )
     {
         printf( "join failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -215,15 +206,15 @@
         printf("join status:%02x\r\n", mUartCommand.getCommandStatus());
         ret = -1;
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
 
     return ret;
 }
 
 int C_SNICwifiInterface::disconnect()
 {
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("disconnect payload_buf NULL\r\n");
@@ -259,7 +250,7 @@
     if( ret != 0 )
     {
         printf( "disconnect failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -268,15 +259,15 @@
         printf("disconnect status:%02x\r\n", mUartCommand.getCommandStatus());
         ret = -1;
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
     return ret;
 }
 
 int C_SNICwifiInterface::scan( const char *ssid_p, unsigned char *bssid_p
                         , void (*result_handler_p)(tagSCAN_RESULT_T *scan_result) )
 {
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("scan payload_buf NULL\r\n");
@@ -343,7 +334,7 @@
     if( ret != 0 )
     {
         printf( "scan failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -353,7 +344,7 @@
         ret = -1;
     }
 
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
 
     return ret;
 }
@@ -367,8 +358,8 @@
         return -1;
     }
     
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("wifi_on payload_buf NULL\r\n");
@@ -405,7 +396,7 @@
     if( ret != 0 )
     {
         printf( "wifi_on failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -414,15 +405,15 @@
         printf("wifi_on status:%02x\r\n", mUartCommand.getCommandStatus());
         ret = -1;
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
 
     return ret;
 }
 
 int C_SNICwifiInterface::wifi_off()
 {
-    // Get buffer for response payloadfrom MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    // Get buffer for response payload from MemoryPool
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("wifi_off payload_buf NULL\r\n");
@@ -458,7 +449,7 @@
     if( ret != 0 )
     {
         printf( "wifi_off failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -467,7 +458,7 @@
         printf("wifi_off status:%02x\r\n", mUartCommand.getCommandStatus());
         ret = -1;
     }
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
 
     return ret;
 }
@@ -481,7 +472,7 @@
     }
     
     // Get buffer for response payload from MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("getRssi payload_buf NULL\r\n");
@@ -517,13 +508,13 @@
     if( ret != 0 )
     {
         printf( "getRssi failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
     *rssi_p = (signed char)payload_buf->buf[2];
 
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
     return 0;
 }
 
@@ -536,7 +527,7 @@
     }
     
     // Get buffer for response payload from MemoryPool
-    tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc();
+    tagMEMPOOL_BLOCK_T *payload_buf = getAlocCmdBuf();
     if( payload_buf == NULL )
     {
         printf("getWifiStatus payload_buf NULL\r\n");
@@ -573,7 +564,7 @@
     if( ret != 0 )
     {
         printf( "getWifiStatus failed\r\n" );
-        gMEMPOOL_PAYLOAD.free( payload_buf );
+        freeCmdBuf( payload_buf );
         return -1;
     }
     
@@ -592,6 +583,6 @@
         memcpy( status_p->ssid, &payload_buf->buf[9], strlen( (char *)&payload_buf->buf[9]) );
     } 
 
-    gMEMPOOL_PAYLOAD.free( payload_buf );
+    freeCmdBuf( payload_buf );
     return 0;
 }