http://http://diytec.web.fc2.com/mark2r2/
Dependencies: EthernetNetIf NTPClient_NetServices mbed ConfigFile
firmware_upgrade.c
- Committer:
- mark2r2
- Date:
- 2011-09-20
- Revision:
- 0:08a4d61cd84c
File content as of revision 0:08a4d61cd84c:
/**************************************** * Firmware Updater * *****************************************/ #include "mbed.h" #include "FirmwareUpdater.h" #include "TextLCD.h" extern TextLCD lcd; extern FirmwareUpdater *fwup; void check_newfirm() { int fwupret; string getname; lcd.cls(); getname = fwup->getName(); lcd.printf("Cheking update."); fwupret = fwup->exist(); lcd.cls();lcd.locate(0,0); switch (fwupret) { case 0: lcd.printf("Found new firmware.\nUpdateing."); int execret = fwup->execute(); lcd.cls();lcd.locate(0,0); switch (execret) { case 0: lcd.printf("Update succeed.\n"); lcd.printf("Resetting.\n"); wait(5); fwup->reset(); break; case -1: lcd.printf("Can't get %s.txt", getname.c_str()); break; case -2: lcd.printf("Can't get %s.bin", getname.c_str()); break; case -8: lcd.printf("Can't get %s.md5", getname.c_str()); break; case -3: lcd.printf("Can't read local/%s.txt", getname.c_str()); break; case -4: lcd.printf("Can't read new %s.txt", getname.c_str()); break; case -5: lcd.printf("local is new,server is old", getname.c_str()); break; case -9: lcd.printf("Can't read new %s.md5", getname.c_str()); break; case -10: lcd.printf("Can't read new %s.bin", getname.c_str()); break; case -11: lcd.printf("MD5 checksum error", getname.c_str()); break; } break; case -1: lcd.printf("%s%s error.\n", getname.c_str(),".txt"); break; case -2: lcd.printf("F/W server error.\n"); break; case 1: lcd.printf("no update found.\n"); break; } wait(2); }