В целом, теперь можно выполнить программу максимум. Выглядеть будет
примерно следующим образом: timer = QTimer()
function request()
local bt = {0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39} -- Какой-то запрос, заполнить своими данными
seance:send(bt) -- Отправка данных
end
function start()
log:print("Seance started")
timer:setPreciseTimerType() -- Установка режима высокой точности таймера
timer:connect(request) -- Коннект сигнала (можно считать установкой колбэка)
timer:startInterval(100) -- Запуск таймера с указанным в [мс] интервалом
end
function stop()
timer:stop()
log:print("Seance stoped")
end
function afterReceive(msg)
-- Обработчик afterReceive служит для обработки принятых данных. Массивы в Lua начинаются с 1.
-- Собираем uint32_t из трех последовательных байт (LE), старший оставляем равным 0.
local bt = {msg[1], msg[2], msg[3], 0}
value_1 = utils:tableToWord(bt)
-- Собираем второе значение uint32_t из трех последовательных байт, старший оставляем равным 0.
bt = {msg[4], msg[5], msg[6], 0}
value_2 = utils:tableToWord(bt)
-- Формируем текстовый вывод. Символ новой строки '\n' работает
local str = "Value 1: "..value_1.."\n".."Value 2: " .. value_2
log:print(str)
-- Каждый вызов log:print() формирует новое событие в логе. Можно вызывать многократно
end