Отправить строковую переменную через TCP-соединение Lua

Я отправляю данные между двумя модулями ESP8266 через TCP-соединение каждые 10 секунд в Lua:

string="abc"
cl=net.createConnection(net.TCP, 0)
cl:connect(80,"192.168.4.1")
tmr.alarm(2, 10000, 1, function()
cl.send("The string variable is: "..string.."")end)

Однако, если я хочу отправить строковую переменную, как в приведенном выше коде, я продолжаю получать сообщение об ошибке:

PANIC: unprotected error in call to Lua API (init.lua:26: bad argument #1 to 'send' (net.socket expected, got string))
PANIC: unprotected error in call to Lua API (bad argument #1 (Server/Socket expected))

У меня работает только при отправке числовых переменных. Есть ли способ отправить строковую переменную?

Спасибо, Каки


person Kaki    schedule 10.06.2016    source источник


Ответы (1)


Сообщение об ошибке состоит в том, что первым аргументом вызова send должен быть сокет, а не строка.

Вы должны использовать cl:send("value") вместо cl.send("value"), так как первое на самом деле является короткой формой для cl.send(cl, "value").

person Paul Kulchenko    schedule 10.06.2016
comment
Большое спасибо за четкий ответ, он мне очень помог. Теперь это работает :) - person Kaki; 10.06.2016