blob: 9f2104b3054f02da4cb02ffaeb86ae65de91c90c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/*
* FirmwareUpdater.cpp
*
* Created on: 21 May 2016
* Author: David
*/
#include "FirmwareUpdater.h"
#include "RepRapFirmware.h"
#ifdef DUET_WIFI
#include "WifiFirmwareUploader.h"
#endif
namespace FirmwareUpdater
{
const unsigned int WifiFirmwareModule = 1;
const unsigned int WifiFilesModule = 2;
const unsigned int WifiExternalFirmwareModule = 3;
// Check that the prerequisites are satisfied.
// Return true if yes, else print a message and return false.
bool CheckFirmwareUpdatePrerequisites(uint8_t moduleMap)
{
#ifdef DUET_WIFI
if ((moduleMap & (1 << WifiExternalFirmwareModule)) != 0 && (moduleMap & ((1 << WifiFirmwareModule) | (1 << WifiFilesModule))) != 0)
{
reprap.GetPlatform()->Message(GENERIC_MESSAGE, "Invalid combination of firmware update modules\n");
return false;
}
if ((moduleMap & (1 << WifiFirmwareModule)) != 0 && !reprap.GetPlatform()->GetMassStorage()->FileExists(SYS_DIR, WIFI_FIRMWARE_FILE))
{
reprap.GetPlatform()->MessageF(GENERIC_MESSAGE, "File %s not found\n", WIFI_FIRMWARE_FILE);
return false;
}
if ((moduleMap & (1 << WifiFilesModule)) != 0 && !reprap.GetPlatform()->GetMassStorage()->FileExists(SYS_DIR, WIFI_WEB_FILE))
{
reprap.GetPlatform()->MessageF(GENERIC_MESSAGE, "File %s not found\n", WIFI_WEB_FILE);
return false;
}
#endif
return true;
}
bool IsReady()
{
#ifdef DUET_WIFI
return reprap.GetNetwork()->GetWifiUploader()->IsReady();
#endif
#ifdef DUET_ETHERNET
return true;
#endif
}
void UpdateModule(unsigned int module)
{
#ifdef DUET_WIFI
switch(module)
{
case WifiExternalFirmwareModule:
Network::ResetWiFiForExternalUpload();
break;
case WifiFirmwareModule:
reprap.GetNetwork()->GetWifiUploader()->SendUpdateFile(WIFI_FIRMWARE_FILE, SYS_DIR, WifiFirmwareUploader::FirmwareAddress);
break;
case WifiFilesModule:
reprap.GetNetwork()->GetWifiUploader()->SendUpdateFile(WIFI_WEB_FILE, SYS_DIR, WifiFirmwareUploader::WebFilesAddress);
break;
}
#endif
}
}
// End
|