Merge pull request #2170 from scottrbailey/error-12-fix
Fix error 12 issues
This commit is contained in:
commit
8d4636bbab
@ -215,6 +215,7 @@
|
|||||||
#define ERR_FS_BEGIN 10 // Could not init filesystem (no partition?)
|
#define ERR_FS_BEGIN 10 // Could not init filesystem (no partition?)
|
||||||
#define ERR_FS_QUOTA 11 // The FS is full or the maximum file size is reached
|
#define ERR_FS_QUOTA 11 // The FS is full or the maximum file size is reached
|
||||||
#define ERR_FS_PLOAD 12 // It was attempted to load a preset that does not exist
|
#define ERR_FS_PLOAD 12 // It was attempted to load a preset that does not exist
|
||||||
|
#define ERR_FS_IRLOAD 13 // It was attempted to load an IR JSON cmd, but the "ir.json" file does not exist
|
||||||
#define ERR_FS_GENERAL 19 // A general unspecified filesystem error occured
|
#define ERR_FS_GENERAL 19 // A general unspecified filesystem error occured
|
||||||
#define ERR_OVERTEMP 30 // An attached temperature sensor has measured above threshold temperature (not implemented)
|
#define ERR_OVERTEMP 30 // An attached temperature sensor has measured above threshold temperature (not implemented)
|
||||||
#define ERR_OVERCURRENT 31 // An attached current sensor has measured a current above the threshold (not implemented)
|
#define ERR_OVERCURRENT 31 // An attached current sensor has measured a current above the threshold (not implemented)
|
||||||
|
@ -71,9 +71,11 @@ void decBrightness()
|
|||||||
// apply preset or fallback to a effect and palette if it doesn't exist
|
// apply preset or fallback to a effect and palette if it doesn't exist
|
||||||
void presetFallback(uint8_t presetID, uint8_t effectID, uint8_t paletteID)
|
void presetFallback(uint8_t presetID, uint8_t effectID, uint8_t paletteID)
|
||||||
{
|
{
|
||||||
|
byte prevError = errorFlag;
|
||||||
if (!applyPreset(presetID, CALL_MODE_BUTTON)) {
|
if (!applyPreset(presetID, CALL_MODE_BUTTON)) {
|
||||||
effectCurrent = effectID;
|
effectCurrent = effectID;
|
||||||
effectPalette = paletteID;
|
effectPalette = paletteID;
|
||||||
|
errorFlag = prevError; //clear error 12 from non-existent preset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,53 +574,56 @@ void decodeIRJson(uint32_t code)
|
|||||||
|
|
||||||
sprintf(objKey, "\"0x%X\":", code);
|
sprintf(objKey, "\"0x%X\":", code);
|
||||||
|
|
||||||
errorFlag = readObjectFromFile("/ir.json", objKey, &irDoc) ? ERR_NONE : ERR_FS_PLOAD;
|
readObjectFromFile("/ir.json", objKey, &irDoc);
|
||||||
fdo = irDoc.as<JsonObject>();
|
fdo = irDoc.as<JsonObject>();
|
||||||
lastValidCode = 0;
|
lastValidCode = 0;
|
||||||
if (!errorFlag)
|
if (fdo.isNull()) {
|
||||||
|
//the received code does not exist
|
||||||
|
if (!WLED_FS.exists("/ir.json")) errorFlag = ERR_FS_IRLOAD; //warn if IR file itself doesn't exist
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonCmdObj = fdo["cmd"];
|
||||||
|
cmdStr = String(jsonCmdObj);
|
||||||
|
|
||||||
|
if (!cmdStr.isEmpty())
|
||||||
{
|
{
|
||||||
cmd = fdo["cmd"];
|
if (cmdStr.startsWith("!")) {
|
||||||
cmdStr = String(cmd);
|
// call limited set of C functions
|
||||||
jsonCmdObj = fdo["cmd"];
|
if (cmdStr.startsWith(F("!incBri"))) {
|
||||||
if (!cmdStr.isEmpty())
|
lastValidCode = code;
|
||||||
{
|
incBrightness();
|
||||||
if (cmdStr.startsWith("!")) {
|
} else if (cmdStr.startsWith(F("!decBri"))) {
|
||||||
// call limited set of C functions
|
lastValidCode = code;
|
||||||
if (cmdStr.startsWith(F("!incBri"))) {
|
decBrightness();
|
||||||
lastValidCode = code;
|
} else if (cmdStr.startsWith(F("!presetF"))) { //!presetFallback
|
||||||
incBrightness();
|
uint8_t p1 = fdo["PL"] ? fdo["PL"] : 1;
|
||||||
} else if (cmdStr.startsWith(F("!decBri"))) {
|
uint8_t p2 = fdo["FX"] ? fdo["FX"] : random8(MODE_COUNT);
|
||||||
lastValidCode = code;
|
uint8_t p3 = fdo["FP"] ? fdo["FP"] : 0;
|
||||||
decBrightness();
|
presetFallback(p1, p2, p3);
|
||||||
} else if (cmdStr.startsWith(F("!presetF"))) { //!presetFallback
|
|
||||||
uint8_t p1 = fdo["PL"] ? fdo["PL"] : 1;
|
|
||||||
uint8_t p2 = fdo["FX"] ? fdo["FX"] : random8(100);
|
|
||||||
uint8_t p3 = fdo["FP"] ? fdo["FP"] : 0;
|
|
||||||
presetFallback(p1, p2, p3);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// HTTP API command
|
|
||||||
if (cmdStr.indexOf("~") || fdo["rpt"])
|
|
||||||
{
|
|
||||||
// repeatable action
|
|
||||||
lastValidCode = code;
|
|
||||||
}
|
|
||||||
if (effectCurrent == 0 && cmdStr.indexOf("FP=") > -1) {
|
|
||||||
// setting palette but it wont show because effect is solid
|
|
||||||
effectCurrent = FX_MODE_GRADIENT;
|
|
||||||
}
|
|
||||||
if (!cmdStr.startsWith("win&")) {
|
|
||||||
cmdStr = "win&" + cmdStr;
|
|
||||||
}
|
|
||||||
handleSet(nullptr, cmdStr, false);
|
|
||||||
}
|
}
|
||||||
} else if (!jsonCmdObj.isNull()) {
|
} else {
|
||||||
// command is JSON object
|
// HTTP API command
|
||||||
//allow applyPreset() to reuse JSON buffer, or it would alloc. a second buffer and run out of mem.
|
if (cmdStr.indexOf("~") || fdo["rpt"])
|
||||||
fileDoc = &irDoc;
|
{
|
||||||
deserializeState(jsonCmdObj, CALL_MODE_BUTTON);
|
// repeatable action
|
||||||
fileDoc = nullptr;
|
lastValidCode = code;
|
||||||
|
}
|
||||||
|
if (effectCurrent == 0 && cmdStr.indexOf("FP=") > -1) {
|
||||||
|
// setting palette but it wont show because effect is solid
|
||||||
|
effectCurrent = FX_MODE_GRADIENT;
|
||||||
|
}
|
||||||
|
if (!cmdStr.startsWith("win&")) {
|
||||||
|
cmdStr = "win&" + cmdStr;
|
||||||
|
}
|
||||||
|
handleSet(nullptr, cmdStr, false);
|
||||||
}
|
}
|
||||||
|
} else if (!jsonCmdObj.isNull()) {
|
||||||
|
// command is JSON object
|
||||||
|
//allow applyPreset() to reuse JSON buffer, or it would alloc. a second buffer and run out of mem.
|
||||||
|
fileDoc = &irDoc;
|
||||||
|
deserializeState(jsonCmdObj, CALL_MODE_BUTTON);
|
||||||
|
fileDoc = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user