From ead77e536c19a49dddf72c8929c8de25e647c7b0 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 16 Feb 2021 16:21:46 +0100 Subject: [PATCH] Refactor command file --- tasmota/support_command.ino | 4 ++++ tasmota/support_tasmota.ino | 2 +- tasmota/tasmota.ino | 3 --- tasmota/xdrv_40_telegram.ino | 4 ++-- tasmota/xdrv_50_filesystem.ino | 17 ++++++++++------- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/tasmota/support_command.ino b/tasmota/support_command.ino index 065fabbcc..f75a5cd89 100644 --- a/tasmota/support_command.ino +++ b/tasmota/support_command.ino @@ -108,6 +108,10 @@ void ResponseCmndError(void) { ResponseCmndChar_P(PSTR(D_JSON_ERROR)); } +void ResponseCmndFailed(void) { + ResponseCmndChar_P(PSTR(D_JSON_FAILED)); +} + void ResponseCmndIdxChar(const char* value) { Response_P(S_JSON_COMMAND_INDEX_SVALUE, XdrvMailbox.command, XdrvMailbox.index, EscapeJSONString(value).c_str()); } diff --git a/tasmota/support_tasmota.ino b/tasmota/support_tasmota.ino index 1d6cab43b..af9aca1e2 100644 --- a/tasmota/support_tasmota.ino +++ b/tasmota/support_tasmota.ino @@ -964,7 +964,7 @@ void Every100mSeconds(void) bool CommandsReady(void) { bool ready = BACKLOG_EMPTY ; #ifdef USE_UFILESYS - ready |= FileRunReady(); + ready |= UfsExecuteCommandFileReady(); #endif // USE_UFILESYS return ready; } diff --git a/tasmota/tasmota.ino b/tasmota/tasmota.ino index 4ebe0b647..c0b7b4669 100644 --- a/tasmota/tasmota.ino +++ b/tasmota/tasmota.ino @@ -426,9 +426,6 @@ void Scheduler(void) { DeviceGroupsLoop(); #endif // USE_DEVICE_GROUPS BacklogLoop(); -#ifdef USE_UFILESYS - FileRunLoop(); -#endif // USE_UFILESYS static uint32_t state_50msecond = 0; // State 50msecond timer if (TimeReached(state_50msecond)) { diff --git a/tasmota/xdrv_40_telegram.ino b/tasmota/xdrv_40_telegram.ino index 3e4cc6f0a..d73f39341 100644 --- a/tasmota/xdrv_40_telegram.ino +++ b/tasmota/xdrv_40_telegram.ino @@ -434,14 +434,14 @@ void CmndTmChatId(void) { void CmndTmSend(void) { if (!Telegram.send_enable || !strlen(SettingsText(SET_TELEGRAM_CHATID))) { - ResponseCmndChar(PSTR(D_JSON_FAILED)); + ResponseCmndFailed(); return; } if (XdrvMailbox.data_len > 0) { String message = XdrvMailbox.data; String chat_id = SettingsText(SET_TELEGRAM_CHATID); if (!TelegramSendMessage(chat_id.toInt(), message)) { - ResponseCmndChar(PSTR(D_JSON_FAILED)); + ResponseCmndFailed(); return; } } diff --git a/tasmota/xdrv_50_filesystem.ino b/tasmota/xdrv_50_filesystem.ino index 3651291ac..c735fc2cf 100644 --- a/tasmota/xdrv_50_filesystem.ino +++ b/tasmota/xdrv_50_filesystem.ino @@ -353,12 +353,12 @@ bool TfsRenameFile(const char *fname1, const char *fname2) { * File command execute support \*********************************************************************************************/ -bool FileRunReady(void) { +bool UfsExecuteCommandFileReady(void) { return (UfsData.run_file_pos < 0); // Check file ready to disable concurrency } -void FileRunLoop(void) { - if (FileRunReady() || !ffs_type) { return; } +void UfsExecuteCommandFileLoop(void) { + if (UfsExecuteCommandFileReady() || !ffs_type) { return; } if (strlen(UfsData.run_file) && !UfsData.run_file_mutex) { File file = ffsp->open(UfsData.run_file, "r"); @@ -410,7 +410,7 @@ void FileRunLoop(void) { bool UfsExecuteCommandFile(const char *fname) { // Check for non-concurrency and file existance - if (FileRunReady() && TfsFileExists(fname)) { + if (UfsExecuteCommandFileReady() && TfsFileExists(fname)) { snprintf(UfsData.run_file, sizeof(UfsData.run_file), fname); UfsData.run_file_pos = 0; // Signal start of file return true; @@ -471,7 +471,7 @@ void UFSDelete(void) { result = (ufs_type && ufsp->remove(XdrvMailbox.data)); } if (!result) { - ResponseCmndChar(PSTR(D_JSON_FAILED)); + ResponseCmndFailed(); } else { ResponseCmndDone(); } @@ -493,7 +493,7 @@ void UFSRename(void) { } } if (!result) { - ResponseCmndChar(PSTR(D_JSON_FAILED)); + ResponseCmndFailed(); } else { ResponseCmndDone(); } @@ -505,7 +505,7 @@ void UFSRun(void) { if (UfsExecuteCommandFile(XdrvMailbox.data)) { ResponseClear(); } else { - ResponseCmndChar(PSTR(D_JSON_FAILED)); + ResponseCmndFailed(); } } } @@ -864,6 +864,9 @@ bool Xdrv50(uint8_t function) { bool result = false; switch (function) { + case FUNC_LOOP: + UfsExecuteCommandFileLoop(); + break; #ifdef USE_SDCARD case FUNC_PRE_INIT: UfsCheckSDCardInit();