Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf NTPClient_NetServices mbed ConfigFile
firmware_upgrade.c
00001 /**************************************** 00002 * Firmware Updater * 00003 00004 *****************************************/ 00005 00006 #include "mbed.h" 00007 #include "FirmwareUpdater.h" 00008 #include "TextLCD.h" 00009 00010 extern TextLCD lcd; 00011 extern FirmwareUpdater *fwup; 00012 00013 void check_newfirm() { 00014 int fwupret; 00015 string getname; 00016 00017 lcd.cls(); 00018 getname = fwup->getName(); 00019 lcd.printf("Cheking update."); 00020 fwupret = fwup->exist(); 00021 00022 lcd.cls();lcd.locate(0,0); 00023 switch (fwupret) { 00024 case 0: 00025 lcd.printf("Found new firmware.\nUpdateing."); 00026 int execret = fwup->execute(); 00027 00028 lcd.cls();lcd.locate(0,0); 00029 switch (execret) { 00030 case 0: 00031 lcd.printf("Update succeed.\n"); 00032 lcd.printf("Resetting.\n"); 00033 wait(5); 00034 fwup->reset(); 00035 break; 00036 case -1: 00037 lcd.printf("Can't get %s.txt", getname.c_str()); 00038 break; 00039 case -2: 00040 lcd.printf("Can't get %s.bin", getname.c_str()); 00041 break; 00042 case -8: 00043 lcd.printf("Can't get %s.md5", getname.c_str()); 00044 break; 00045 case -3: 00046 lcd.printf("Can't read local/%s.txt", getname.c_str()); 00047 break; 00048 case -4: 00049 lcd.printf("Can't read new %s.txt", getname.c_str()); 00050 break; 00051 case -5: 00052 lcd.printf("local is new,server is old", getname.c_str()); 00053 break; 00054 case -9: 00055 lcd.printf("Can't read new %s.md5", getname.c_str()); 00056 break; 00057 case -10: 00058 lcd.printf("Can't read new %s.bin", getname.c_str()); 00059 break; 00060 case -11: 00061 lcd.printf("MD5 checksum error", getname.c_str()); 00062 break; 00063 } 00064 break; 00065 case -1: 00066 lcd.printf("%s%s error.\n", getname.c_str(),".txt"); 00067 break; 00068 case -2: 00069 lcd.printf("F/W server error.\n"); 00070 break; 00071 case 1: 00072 lcd.printf("no update found.\n"); 00073 break; 00074 } 00075 wait(2); 00076 }
Generated on Tue Jul 12 2022 10:57:43 by
1.7.2