Firmware remote update
Dependencies: EthernetNetIf FirmwareUpdater HTTPClient mbed
main.cpp@0:a3eb8d59a819, 2014-11-13 (annotated)
- Committer:
- vinajarr
- Date:
- Thu Nov 13 07:22:23 2014 +0000
- Revision:
- 0:a3eb8d59a819
Firmware update remote
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vinajarr | 0:a3eb8d59a819 | 1 | #include "mbed.h" |
vinajarr | 0:a3eb8d59a819 | 2 | #include "FirmwareUpdater.h" |
vinajarr | 0:a3eb8d59a819 | 3 | #include "EthernetNetIf.h" |
vinajarr | 0:a3eb8d59a819 | 4 | |
vinajarr | 0:a3eb8d59a819 | 5 | EthernetNetIf eth; |
vinajarr | 0:a3eb8d59a819 | 6 | FirmwareUpdater fwup("http://mbed.org/media/uploads/vinajarr/", "firm2", true); |
vinajarr | 0:a3eb8d59a819 | 7 | |
vinajarr | 0:a3eb8d59a819 | 8 | DigitalOut myled(LED1); // LED Rojo PB22 |
vinajarr | 0:a3eb8d59a819 | 9 | |
vinajarr | 0:a3eb8d59a819 | 10 | |
vinajarr | 0:a3eb8d59a819 | 11 | // There are 2 files for the firmware. |
vinajarr | 0:a3eb8d59a819 | 12 | // 1. firm.txt : firmware version file. |
vinajarr | 0:a3eb8d59a819 | 13 | // 2. firm.bin : firmware binary file. |
vinajarr | 0:a3eb8d59a819 | 14 | |
vinajarr | 0:a3eb8d59a819 | 15 | void check_newfirm() { |
vinajarr | 0:a3eb8d59a819 | 16 | if (fwup.exist() == 0) { |
vinajarr | 0:a3eb8d59a819 | 17 | printf("Found a new firmware.\n"); |
vinajarr | 0:a3eb8d59a819 | 18 | if (fwup.execute() == 0) { |
vinajarr | 0:a3eb8d59a819 | 19 | printf("Update succeed.\n"); |
vinajarr | 0:a3eb8d59a819 | 20 | printf("Resetting this system...\n\n\n\n\n"); |
vinajarr | 0:a3eb8d59a819 | 21 | fwup.reset(); |
vinajarr | 0:a3eb8d59a819 | 22 | } else { |
vinajarr | 0:a3eb8d59a819 | 23 | printf("Update failed!\n"); |
vinajarr | 0:a3eb8d59a819 | 24 | } |
vinajarr | 0:a3eb8d59a819 | 25 | } |
vinajarr | 0:a3eb8d59a819 | 26 | else{ |
vinajarr | 0:a3eb8d59a819 | 27 | printf("Not found a new firmware.\n"); |
vinajarr | 0:a3eb8d59a819 | 28 | printf("actual version: %d \n",fwup.get_); |
vinajarr | 0:a3eb8d59a819 | 29 | } |
vinajarr | 0:a3eb8d59a819 | 30 | } |
vinajarr | 0:a3eb8d59a819 | 31 | |
vinajarr | 0:a3eb8d59a819 | 32 | int main(void) { |
vinajarr | 0:a3eb8d59a819 | 33 | |
vinajarr | 0:a3eb8d59a819 | 34 | eth.setup(); |
vinajarr | 0:a3eb8d59a819 | 35 | |
vinajarr | 0:a3eb8d59a819 | 36 | while(1){ |
vinajarr | 0:a3eb8d59a819 | 37 | |
vinajarr | 0:a3eb8d59a819 | 38 | check_newfirm(); |
vinajarr | 0:a3eb8d59a819 | 39 | |
vinajarr | 0:a3eb8d59a819 | 40 | // Your application is here. |
vinajarr | 0:a3eb8d59a819 | 41 | |
vinajarr | 0:a3eb8d59a819 | 42 | myled = 1; |
vinajarr | 0:a3eb8d59a819 | 43 | wait(0.1); |
vinajarr | 0:a3eb8d59a819 | 44 | myled = 0; |
vinajarr | 0:a3eb8d59a819 | 45 | wait(0.2); |
vinajarr | 0:a3eb8d59a819 | 46 | |
vinajarr | 0:a3eb8d59a819 | 47 | } |
vinajarr | 0:a3eb8d59a819 | 48 | |
vinajarr | 0:a3eb8d59a819 | 49 | |
vinajarr | 0:a3eb8d59a819 | 50 | |
vinajarr | 0:a3eb8d59a819 | 51 | } |