Code: Select all
static void ICACHE_FLASH_ATTR ota_finished_callback(void *arg)
{
struct upgrade_server_info *update = arg;
if (update->upgrade_flag == true)
{
os_printf("[OTA]success; rebooting!\n");
system_upgrade_reboot();
}
else
{
os_printf("[OTA]failed!\n");
}
os_free(update->pespconn);
os_free(update->url);
os_free(update);
}
static void ICACHE_FLASH_ATTR handleUpgrade(uint8_t serverVersion, ip_addr_t * server_ip, uint16_t port, const char *path)
{
const char* file;
uint8_t userBin = system_upgrade_userbin_check();
switch (userBin)
{
case UPGRADE_FW_BIN1: file = "user2.bin"; break;
case UPGRADE_FW_BIN2: file = "user1.bin"; break;
default:
os_printf("[OTA]Invalid userbin number!\n");
return;
}
uint16_t version=1;
if (serverVersion <= version)
{
os_printf("[OTA]No update. Server version:%d, local version %d\n", serverVersion, version);
return;
}
os_printf("[OTA]Upgrade available version: %d\n", serverVersion);
struct upgrade_server_info* update = (struct upgrade_server_info *)os_zalloc(sizeof(struct upgrade_server_info));
update->pespconn = (struct espconn *)os_zalloc(sizeof(struct espconn));
os_memcpy(update->ip, server_ip, 4);
update->port = port;
os_printf("[OTA]Server "IPSTR":%d. Path: %s%s\n", IP2STR(update->ip), update->port, path, file);
update->check_cb = ota_finished_callback;
update->check_times = 10000;
update->url = (uint8 *)os_zalloc(512);
os_sprintf((char*)update->url,"GET %s%s HTTP/1.1\r\n""Host: "IPSTR":%d\r\n""Connection: close\r\n""\r\n", path, file, IP2STR(update->ip), update->port);
if (system_upgrade_start(update) == false)
{
os_printf("[OTA]Could not start upgrade\n");
os_free(update->pespconn);
os_free(update->url);
os_free(update);
}
else
{
os_printf("[OTA]Upgrading...\n");
}
}
ip_addr_t test_ip;
IP4_ADDR(&test_ip, 255,255,255,255);
handleUpgrade(2, &test_ip, 80, "/");
connected with YourSSID, channel 1
dhcp client start...
ip:192.168.1.155,mask:255.255.255.0,gw:192.168.1.1
[network_check_ip]
Current Details
Time: 13487456
Free Heap: 47416
Station MAC Address a0-20-a6-04-07-08
AP MAC Address a2-20-a6-04-07-08
Connect status - 5
IP Address: 192.168.1.155
Netmask : 255.255.255.0
Gateway : 192.168.1.1
Calling myConnectToStronestWifiCallback callback
[StationCallBackTimeInit]
[OTA]Upgrade available version: 2
[OTA]Server 184.168.156.1:80. Path: /user2.bin
system_upgrade_start
upgrade_connect 46712
[OTA]Upgrading...
upgrade_connect_cb
pusrdata = HTTP/1.1 200 OK
Date: Tue, 26 Jun 2018 02:03:16 GMT
Server: Apache
Last-Modified: Mon, 29 Jul 2013 16:45:15 GMT
Accept-Ranges: bytes
Content-Length: 76
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
sumlength = 76
sec_block 1
.erase sector=257 ok
ALL=1 sectors erase ok!
upgrade_get_sum_disconcb 46208
upgrade_connect_cb
sumlength = 76
upgrade file download start.
error bin file
upgrade_check
[OTA]failed!
pm open,type:0 0