[Решено]Lua... туды его, в качель!

Тема в разделе "Флудилка", создана пользователем ИгорьК, 19 апр 2015.

  1. ИгорьК

    ИгорьК Гуру

    Коллеги! Помогайте. Итак, код (конечно вопрос по ESP8266):
    Код (Lua):
    function gotconnect()
        local get = ""
        ip = wifi.sta.getip()
        if ip == nil then
            get = "nowifi"
        else
            get = "noconnect"
            do
            conn=net.createConnection(net.TCP, 0)
            conn:on("connection",function(conn)
                conn:send("HEAD / HTTP/1.1\r\n\r\n")
                connection = conn
                get = "ok"
            end)
            conn:on("receive", function(conn, payload)
                get = "ok"
                conn:close()
                print(payload)
            end)
            conn:connect(80,'ya.ru')
            end
        end

        print(get)
        return get
    end
    a = gotconnect()
    print(a)
    Если выполнить весь код, то ответ от функции всегда (при наличии wifi соединения) будет "noconnect". Если отправить интерпретатору лишь кусок от local get = "" до print(get) - ответ "ок". Понимаю, что что-то в видимости переменных, но уже не знаю что делать.
     
  2. ИгорьК

    ИгорьК Гуру

    Решение, полученное методом инженерного тыка:
    Код (Lua):
    get = ""
    function gotconnect()
        ip = wifi.sta.getip()
        if ip == nil then
            get = "nowifi"
        else  
            do
            get = "noconnect"
            conn=net.createConnection(net.TCP, 0)
            conn:connect(80,'ya.ru')
            conn:on("connection",function(conn)
                conn:send("HEAD / HTTP/1.1\r\n\r\n")
                connection = conn
                get = "ok"
            end)
            conn:on("receive", function(conn, payload)
                get = "ok"
                conn:close()
                --print(payload)
            end)
           
            end
        end
        print(get)
        return
    end
    gotconnect()
    print(get)