Program to update the D7A modem's firmware.
Dependencies: modem_ref_helper DebouncedInterrupt
Diff: cup.cpp
- Revision:
- 33:9cd782e2b423
- Parent:
- 32:e3ee65b5b835
--- a/cup.cpp Tue Aug 20 13:51:30 2019 +0000 +++ b/cup.cpp Wed Oct 23 14:44:56 2019 +0000 @@ -87,11 +87,16 @@ Timer tim; int32_t rem; float now = 0; - float before = 0; + + float speed_before = 0; float speed = 0; int speed_data = 0; + + float time_before = 0; float time_left = 0; + float print_before = 0; + uint8_t id = modem_get_id(my_cup_callback); if (bootloader) @@ -124,19 +129,31 @@ rem -= chunk; fof += chunk; - percent = (100*fof)/cup->data_size; now = tim.read(); speed_data += chunk; - if (now - before > 1.0 || before == 0) + // Update speed + if (now - speed_before > 1.0 || speed_before == 0) { - speed = (speed_data/(now - before))/1024.0; - before = now; + speed = (speed_data/(now - speed_before))/1024.0; + speed_before = now; speed_data = 0; + } + + // Update time left + if (now - time_before > 0.2 || time_before == 0 || rem == 0) + { + time_before = now; time_left = (rem / speed) / 1024.0; } - PRINT("\rUPLOADING CUP FILE %d/%d (%3d%%) %.2f kB/s %.0fs ", fof, cup->data_size, percent, speed, time_left); + // Print + if (now - print_before > 0.1 || print_before == 0 || rem == 0) + { + percent = (100*fof)/cup->data_size; + print_before = now; + PRINT("\rUPLOADING CUP FILE %d/%d (%3d%%) %.2f kB/s %.0fs ", fof, cup->data_size, percent, speed, time_left); + } } PRINT("\n");