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