Add M118 support

Add 4G capacity support
Fix empty string saving
This commit is contained in:
Luc 2019-06-23 21:30:21 +02:00
parent 6c877d34df
commit cc6e4ad3a4
4 changed files with 26 additions and 12 deletions

View File

@ -36,14 +36,21 @@ Commands::~Commands()
void Commands::process(uint8_t * sbuf, size_t len, ESP3DOutput * output, level_authenticate_type auth, ESP3DOutput * outputonly )
{
if(is_esp_command(sbuf,len)) {
size_t slen = len;
String tmpbuf = (const char*)sbuf;
if (tmpbuf.startsWith("echo: ")){
tmpbuf.replace("echo: ", "");
slen = tmpbuf.length();
}
uint8_t cmd[4];
cmd[0] = sbuf[4];
cmd[1] = sbuf[5];
cmd[2] = sbuf[6];
cmd[0] = tmpbuf[4];
cmd[1] = tmpbuf[5];
cmd[2] = tmpbuf[6];
cmd[3] = 0x0;
//log_esp3d("Authentication = %d client %d", auth, output->client());
execute_internal_command (String((const char *)cmd).toInt(), (len > 8)?(const char*)&sbuf[8]:"", auth, (outputonly == nullptr)?output:outputonly);
execute_internal_command (String((const char*)cmd).toInt(), (slen > 8)?(const char*)&tmpbuf[8]:"", auth, (outputonly == nullptr)?output:outputonly);
} else {
//Dispatch to all clients but current or to define output
if ((output->client() == ESP_HTTP_CLIENT) && (outputonly == nullptr)) {
@ -73,6 +80,13 @@ bool Commands::is_esp_command(uint8_t * sbuf, size_t len)
if ((char(sbuf[0]) == '[') && (char(sbuf[1]) == 'E') && (char(sbuf[2]) == 'S') && (char(sbuf[3]) == 'P') && (char(sbuf[7]) == ']')) {
return true;
}
if((char(sbuf[0]) == 'e') && (char(sbuf[1]) == 'c') && (char(sbuf[2]) == 'h') && (char(sbuf[3]) == 'o') && (char(sbuf[4]) == ':') && (char(sbuf[5]) == ' ') && (char(sbuf[6]) == '[') && (char(sbuf[7]) == 'E')) {
if (len >= 14){
if ((char(sbuf[8]) == 'S') && (char(sbuf[9]) == 'P') && (char(sbuf[13]) == ']')){
return true;
}
}
}
return false;
}

View File

@ -842,7 +842,7 @@ bool Settings_ESP3D::write_string (int pos, const char * byte_buffer)
String p = "P_" + String(pos);
uint8_t r = prefs.putString(p.c_str(), byte_buffer);
prefs.end();
if (r == 0) {
if (r != size_buffer) {
log_esp3d("Error commit %s", p.c_str());
return false;
}

View File

@ -54,17 +54,17 @@ ESP_FileSystem::~ESP_FileSystem()
}
//helper to format size to readable string
String & ESP_FileSystem::formatBytes (uint32_t bytes)
String & ESP_FileSystem::formatBytes (uint64_t bytes)
{
static String res;
if (bytes < 1024) {
res = String (bytes) + " B";
res = String ((uint16_t)bytes) + " B";
} else if (bytes < (1024 * 1024) ) {
res = String (bytes / 1024.0) + " KB";
res = String ((float)(bytes / 1024.0),2) + " KB";
} else if (bytes < (1024 * 1024 * 1024) ) {
res = String (bytes / 1024.0 / 1024.0) + " MB";
res = String ((float)(bytes / 1024.0 / 1024.0),2) + " MB";
} else {
res = String (bytes / 1024.0 / 1024.0 / 1024.0) + " GB";
res = String ((float)(bytes / 1024.0 / 1024.0 / 1024.0),2) + " GB";
}
return res;
}

View File

@ -69,7 +69,7 @@ private:
class ESP_FileSystem
{
public:
static String & formatBytes (uint32_t bytes);
static String & formatBytes (uint64_t bytes);
ESP_FileSystem();
~ESP_FileSystem();
static bool begin();