Used with eeprom_flash to write network configuration to STM32F103 flash

Dependents:   F103-Web-Server

Fork of my_eeprom_funcs by Chau Vo

Revision:
2:57d40eaa1b1b
Parent:
1:6bdc99dd8e0a
Child:
3:69e1c4ed69e1
--- a/my_eeprom_funcs.cpp	Sun Sep 28 17:35:07 2014 +0000
+++ b/my_eeprom_funcs.cpp	Tue Sep 30 21:17:32 2014 +0000
@@ -86,9 +86,9 @@
         EE_ReadVariable(VirtAddVarTab[IP_GATEWAY_POS+3], &u16ip_gateway[3]);
         
         //// TCP server port
-        //EE_ReadVariable(VirtAddVarTab[TCP_SERVER_LOCAL_PORT_POS], &tcp_server_port);
+        //EE_ReadVariable(VirtAddVarTab[TCP_SERVER_LOCAL_PORT_POS], &tcp_server_local_port);
         //// UDP server port
-        //EE_ReadVariable(VirtAddVarTab[UDP_SERVER_LOCAL_PORT_POS], &udp_server_port);
+        //EE_ReadVariable(VirtAddVarTab[UDP_SERVER_LOCAL_PORT_POS], &udp_server_local_port);
         
         // First run flag, already read above
 
@@ -120,8 +120,8 @@
     printf("IP: %s\r\n", str_ip_addr);
     printf("MASK: %s\r\n", str_ip_subnet);
     printf("GW: %s\r\n", str_ip_gateway);
-    printf("TCP server: %d\r\n", tcp_server_local_port);
-    printf("UDP server: %d\r\n", udp_server_local_port);
+    printf("TCP server local port: %d\r\n", tcp_server_local_port);
+    printf("UDP server local port: %d\r\n", udp_server_local_port);
 }
 
 
@@ -131,7 +131,7 @@
 */
 void write_eeprom_tcpserver(char* buf) {
     // Write network configuration
-    // 4-byte IP address + 4-byte subnet + 4-byte gateway + 3-byte MAC
+    // 1-byte Auto transmit flag + 1-byte Auto transmit period + 4-byte TCP server IP address + 2-byte TCP server port (LSB msb)
     
     printf("Saving TCP server info\r\n");
     
@@ -149,7 +149,9 @@
     EE_WriteVariable(VirtAddVarTab[TCP_SERVER_IP_ADDR_POS+2], *buf++);
     EE_WriteVariable(VirtAddVarTab[TCP_SERVER_IP_ADDR_POS+3], *buf++);
     // TCP server port
-    EE_WriteVariable(VirtAddVarTab[TCP_SERVER_PORT_POS], *buf);
+    uint16_t port;
+    memcpy(&port, buf, 2);
+    EE_WriteVariable(VirtAddVarTab[TCP_SERVER_PORT_POS], port);
     
     FLASH_Lock();
     
@@ -164,7 +166,7 @@
     // check if 1st run
     EE_ReadVariable(VirtAddVarTab[AUTO_TRANSMIT_FLAG_POS], &auto_transmit_flag);
     // if not auto transmit, exit
-    if (auto_transmit_flag == 0xA5A5) {
+    if (auto_transmit_flag == 0xA5) {
         // Time period for transmitting to server
         EE_ReadVariable(VirtAddVarTab[AUTO_TRANSMIT_TIME_PERIOD_POS], &transmit_time_period);
         // IP address
@@ -184,8 +186,8 @@
     }
     // if 1st run, use default addresses
     else {
-        printf("No tcp server requirement\r\n");
+        printf("No tcp server required\r\n");
     }
     
-    printf("Done checking tcp server info.\r\n");
+    printf("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