Used with eeprom_flash to write network configuration to STM32F103 flash
Fork of my_eeprom_funcs by
Diff: my_eeprom_funcs.cpp
- 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