eichi kowata / Mbed 2 deprecated geiger

Dependencies:   EthernetNetIf NTPClient_NetServices mbed ConfigFile

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers firmware_upgrade.c Source File

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 }