Skip to content

Commit 9985f0d

Browse files
committed
Update xdrv_10_scripter.ino
1 parent 2a00781 commit 9985f0d

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino

+17-3
Original file line numberDiff line numberDiff line change
@@ -6095,8 +6095,15 @@ int32_t I2SPlayFile(const char *path, uint32_t decoder_type);
60956095
if (!strncmp_XP(lp, XPSTR("s2t("), 4)) {
60966096
lp = GetNumericArgument(lp + 4, OPER_EQU, &fvar, 0);
60976097
char str[SCRIPT_MAX_SBSIZE];
6098-
uint32_t secs = (uint32_t)fvar + (uint32_t)glob_script_mem.epoch_offset;
6099-
s2tstamp(str, SCRIPT_MAX_SBSIZE, secs, 0);
6098+
while (*lp == ' ') lp++;
6099+
if (*lp == 'i') {
6100+
uint32_t secs = *(uint32_t*)&fvar;
6101+
s2tstamp(str, SCRIPT_MAX_SBSIZE, secs, 0);
6102+
lp++;
6103+
} else {
6104+
uint32_t secs = (uint32_t)fvar + (uint32_t)glob_script_mem.epoch_offset;
6105+
s2tstamp(str, SCRIPT_MAX_SBSIZE, secs, 0);
6106+
}
61006107
if (sp) strlcpy(sp, str, glob_script_mem.max_ssize);
61016108
len = 0;
61026109
goto strexit;
@@ -6267,7 +6274,14 @@ void tmod_directModeOutput(uint32_t pin);
62676274
if (!strncmp_XP(lp, XPSTR("tsn("), 4)) {
62686275
char str[SCRIPT_MAX_SBSIZE];
62696276
lp = GetStringArgument(lp + 4, OPER_EQU, str, 0);
6270-
fvar = tstamp2l(str) - (uint32_t)glob_script_mem.epoch_offset;
6277+
while (*lp == ' ') lp++;
6278+
if (*lp == 'i') {
6279+
lp++;
6280+
uint32_t result = tstamp2l(str);
6281+
fvar = *(float*)&result;
6282+
} else {
6283+
fvar = tstamp2l(str) - (uint32_t)glob_script_mem.epoch_offset;
6284+
}
62716285
goto nfuncexit;
62726286
}
62736287
#endif

0 commit comments

Comments
 (0)