Used with eeprom_flash to write network configuration to STM32F103 flash

Dependents:   F103-Web-Server

Fork of my_eeprom_funcs by Chau Vo

Revision:
5:eea03d0eb95a
Parent:
4:944a4646b825
Child:
6:241d1539914a
--- a/my_eeprom_funcs.cpp	Sat Oct 04 20:24:46 2014 +0000
+++ b/my_eeprom_funcs.cpp	Tue Oct 21 20:38:38 2014 +0000
@@ -26,7 +26,7 @@
     // Write network configuration
     // 4-byte IP address + 4-byte subnet + 4-byte gateway + 3-byte MAC
     
-    DBG("Saving network configuration for this device...\r\n");
+    DBG("Saving network configuration for this device...");
     
     // Unlock the Flash Program Erase controller */
     FLASH_Unlock();
@@ -64,13 +64,13 @@
     EE_WriteVariable(VirtAddVarTab[MAC_ADDRESS_POS+2], *buf++);
     FLASH_Lock();
     
-    DBG("Success\r\n");
+    DBG("Success");
 }
 
 void load_eeprom_network(void) {
     mbed_mac_address((char *)u8mac);
     
-    DBG("Loading network configuration...\r\n");
+    DBG("Loading network configuration...");
     
     EE_Init();
     
@@ -78,7 +78,7 @@
     EE_ReadVariable(VirtAddVarTab[FIRST_RUN_FLAG_POS], &first_run);
     // if not first run, load network config
     if (first_run == 0xA5A5) {
-        DBG("User settings\r\n");
+        DBG("User settings");
         
         // IP address
         EE_ReadVariable(VirtAddVarTab[IP_ADDRESS_POS+0], &u16ip_addr[0]);
@@ -125,7 +125,7 @@
     }
     // if 1st run, use default addresses
     else {
-        DBG("No user settings, load defaults\r\n");
+        DBG("No user settings, load defaults");
         u8mac[0] = DEFAULT_MAC0; u8mac[1] = DEFAULT_MAC1; u8mac[2] = DEFAULT_MAC2;
         u8mac[3] = DEFAULT_MAC3; u8mac[4] = DEFAULT_MAC4; u8mac[5] = DEFAULT_MAC5; 
         sprintf(str_ip_addr, DEFAULT_IP_ADDRESS);
@@ -133,12 +133,12 @@
         sprintf(str_ip_gateway, DEFAULT_IP_GATEWAY);
     }
     
-    DBG("Success\r\n");
-    DBG("IP: %s\r\n", str_ip_addr);
-    DBG("MASK: %s\r\n", str_ip_subnet);
-    DBG("GW: %s\r\n", str_ip_gateway);
-    DBG("TCP server local port: %d\r\n", tcp_server_local_port);
-    DBG("UDP server local port: %d\r\n", udp_server_local_port);
+    DBG("Success");
+    DBG("IP: %s", str_ip_addr);
+    DBG("MASK: %s", str_ip_subnet);
+    DBG("GW: %s", str_ip_gateway);
+    DBG("TCP server local port: %d", tcp_server_local_port);
+    DBG("UDP server local port: %d", udp_server_local_port);
 }
 
 
@@ -150,7 +150,7 @@
     // Write network configuration
     // 1-byte Auto transmit flag + 1-byte Auto transmit period + 4-byte TCP server IP address + 2-byte TCP server port (LSB msb)
     
-    DBG("Saving TCP server info\r\n");
+    DBG("Saving TCP server info");
     
     // Unlock the Flash Program Erase controller
     FLASH_Unlock();
@@ -158,10 +158,16 @@
     EE_Init();
     
     // Auto transmit
-    if (*buf == 'Y')
+    if (*buf == 'Y') {
         EE_WriteVariable(VirtAddVarTab[AUTO_TRANSMIT_FLAG_POS], 0xA5A5);
-    else
+        //EE_WriteVariable(VirtAddVarTab[ENABLE_TCP_CLIENT], 0xA5A5); // enable TCP client
+        //EE_WriteVariable(VirtAddVarTab[ENABLE_TCP_SERVER], 0xAAAA); // disable TCP server
+    }
+    else {
         EE_WriteVariable(VirtAddVarTab[AUTO_TRANSMIT_FLAG_POS], 0xAAAA);
+        //EE_WriteVariable(VirtAddVarTab[ENABLE_TCP_CLIENT], 0xAAAA); // disable TCP client
+        //EE_WriteVariable(VirtAddVarTab[ENABLE_TCP_SERVER], 0xA5A5); // enable TCP server
+    }
     buf++;
     EE_WriteVariable(VirtAddVarTab[AUTO_TRANSMIT_TIME_PERIOD_POS], *buf++);
     // IP address
@@ -176,11 +182,11 @@
     
     FLASH_Lock();
     
-    DBG("Success\r\n");
+    DBG("Success");
 }
 
 void load_eeprom_tcpserver(void) {
-    DBG("Loading tcp server info...\r\n");
+    DBG("Checking auto update mode...");
     
     EE_Init();
     
@@ -190,6 +196,8 @@
     if (auto_transmit_flag == 0xA5A5) {
         // Time period for transmitting to server
         EE_ReadVariable(VirtAddVarTab[AUTO_TRANSMIT_TIME_PERIOD_POS], &transmit_time_period);
+        EE_ReadVariable(VirtAddVarTab[ENABLE_TCP_CLIENT], &u16enable_tcp_client);
+        EE_ReadVariable(VirtAddVarTab[ENABLE_TCP_SERVER], &u16enable_tcp_server);
         // IP address
         EE_ReadVariable(VirtAddVarTab[TCP_SERVER_IP_ADDR_POS+0], &u16server_ip_addr[0]);
         EE_ReadVariable(VirtAddVarTab[TCP_SERVER_IP_ADDR_POS+1], &u16server_ip_addr[1]);
@@ -204,11 +212,15 @@
         EE_ReadVariable(VirtAddVarTab[TCP_SERVER_PORT_POS], &u16tcp_server_port);
         
         sprintf(str_server_ip_addr, "%d.%d.%d.%d", u8server_ip_addr[0], u8server_ip_addr[1], u8server_ip_addr[2], u8server_ip_addr[3]);
+        //DBG("Enabled auto update, module is a TCP client");
+        DBG("Enabled auto update");
+        DBG("Update every %ds to TCP server %s on port %d", transmit_time_period, str_server_ip_addr, u16tcp_server_port);
     }
     // if 1st run, use default addresses
     else {
-        DBG("No tcp server required\r\n");
+        DBG("No auto update");
+        //DBG("Module is a TCP server");
+        u16enable_tcp_client = 0xAAAA; // disable TCP client
+        u16enable_tcp_server = 0xA5A5; // enable TCP server
     }
-    
-    DBG("Update every %ds to TCP server %s on port %d\r\n", transmit_time_period, str_server_ip_addr, u16tcp_server_port);
 }
\ No newline at end of file