<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 非常好的源碼,沒有看懂,請教大神

    作者:niwusong | 更新時間:2017-05-19 | 瀏覽量:1478

    -----------------------------------------------------------------------------
    -- Openwrt與貝殼物聯平臺通訊示例
    -- http://www.eqytg.org/help/5.html
    -- Author: 貝殼物聯
    -- Time: 2016/1/10
    -----------------------------------------------------------------------------
    local socket = require("socket")--引入Luasocket
    
    local json = require("json")--引入Json4lua
    local util = require "luci.util"--引入luci,調用cup負載
    ------------此處需修改-------------
    DEVICEID = "2" --設備ID
    APIKEY = "2353d24ce" --設備APIKEY
    INPUTID = "2" --數據接口ID
    -----------------------------------
    host = host or "www.eqytg.org"
    port = port or 8181
    lastTime = 0
    lastUpdateTime = 0
    if arg then
        host = arg[1] or host
        port = arg[2] or port
    end
    print("Attempting connection to host '" ..host.. "' and port " ..port.. "...")
    c = assert(socket.connect(host, port))
    c:settimeout(0)
    print("Connected! Please type stuff (empty line to stop):")
    while true do
        if ((os.time() - lastTime) > 40) then
            --print( os.time() )
            s = json.encode({M='checkin',ID=DEVICEID,K=APIKEY})
            assert(c:send( s.."\n" ))
            lastTime=os.time()
        end
        if ((os.time() - lastUpdateTime) > 10) then
            local sysinfo = luci.util.ubus("system", "info") or { }
            local load = sysinfo.load or { 0, 0, 0 } --獲取Openwrt系統負載
            local v = {[INPUTID]=load[1]} --多個接口數據可用v = {[INPUTID1]=load[1],[INPUTID2]=load[2]}
            local update = json.encode({['M']='update', ['ID']=DEVICEID, ['V']=v})
            assert(c:send( update.."\n" ))
            lastUpdateTime = os.time()
        end
        recvt, sendt, status = socket.select({c}, nil, 1)
        --#獲取table長度,即元素數
        while #recvt > 0 do
            local response, receive_status = c:receive()
            if receive_status ~= "closed" then
                if response then
                    print(response)
                    r = json.decode(response)
                    --table.foreach(r, print)
                    if r.C then
                        if r.M == "say" then
                            if r.C == "name"
                            then
                                s = json.encode({M='say',ID=r.ID,C='My name is Xiaobei!'})
                                assert(c:send( s.."\n" ))
                            else if r.C == "age"
                            then
                                s = json.encode({M='say',ID=r.ID,C='I was born in Jan 1, 2016!'})
                                assert(c:send( s.."\n" ))
                            else if r.C == "play"
                            then
                                s = json.encode({M='say',ID=r.ID,C='沒什么好玩的-_-!....'})
                                assert(c:send( s.."\n" ))
                            else if r.C == "help"
                            then
                                s = json.encode({M='say',ID=r.ID,C='我叫小貝,我是貝殼物聯的第一個Openwrt示例,你可以嘗試輸入name、age或help,也可以查看實時數據,我隨時報告我的負荷情況。'})
                                assert(c:send( s.."\n" ))
                            else
                                s = json.encode({M='say',ID=r.ID,C='未知命令,你可以嘗試輸入name、age、play或help'})
                                assert(c:send( s.."\n" ))
                            end
                            end
                            end
                            end
                        end
                    end
                    recvt, sendt, status = socket.select({c}, nil, 1)
                end
            else
                break
            end
        end
    end

    評論:共2條

    huangyueer 評論于:2018-10-20 17:07:41
    這是什么的源碼?
    緣分天空 評論于:2020-03-10 00:16:05
    學習學習!
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看