Максимальное целочисленное значение NodeMCU Lua - 2 ^ 31
Lua 5.1.4 в SDK 3.0.1-dev (fce080e) Пытается использовать node.dsleepMax (), и он возвращает действительно меньшее число (147324921). Затем я попытался вручную установить время сна в node.dsleep на 32-битное максимальное значение (4294967295), и он оставался спящим только около 30 минут или около того.
Пробовал следующее:
sleeptime = 4294967295
>
=print(sleeptime)
2147483647
что составляет 2 ^ 31-1.
Также был добавлен цикл к переменной, и он становится отрицательным, когда достигает 2 ^ 31.
Вопросов:
- Почему переменная оборачивается на 2 ^ 31?
- Разве node.dsleep не должен принимать 64-битное значение с SDK 2.1 и выше?
С Уважением,
Цезарь
Ответы
У вас уже есть отзывы о int и float. Что касается dsleep
документации , явно не указано, что она принимает 64-битные значения, но это действительно то, что происходит в соответствии сhttps://github.com/nodemcu/nodemcu-firmware/pull/2358 (с апреля 2018 г.).