合宙LuatOS AIR700 IPV6 TCP 客户端向NodeRed发送数据

13 篇文章 1 订阅
11 篇文章 0 订阅

为了验证 AIR700 IPV6 ,特别新建向NodeRed Tcp发送的工程。

Air700发送TCP数据源码如下:

--[[
IPv6客户端演示, 仅EC618系列支持, 例如Air780E/Air600E/Air780UG/Air700E
]]

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "IPV6_SendDate_Nodered_TCP"
VERSION = "1.0.0"

log.info("main", PROJECT, VERSION)

-- 一定要添加sys.lua !!!!
sys = require("sys")
libnet = require "libnet"
local netc


-- 演示task
sys.taskInit(function()
    -- 仅EC618系列支持, 例如Air780E/Air600E/Air780UG/Air700E
    if rtos.bsp() ~= "EC618" then
        while 1 do
            log.info("ipv6", "only Air780E/Air600E/Air780UG/Air700E supported")
            sys.wait(1000)
        end
    end

    -- 启用IPv6, 默认关闭状态,必须在驻网前开启
    -- 注意, 启用IPv6, 联网速度会慢2~3秒
    mobile.ipv6(true)

    log.info("ipv6", "等待联网")
    sys.waitUntil("IP_READY")
    log.info("ipv6", "联网完成")
    sys.wait(100)

    socket.setDNS(nil, 1, "119.29.29.29")
    socket.setDNS(nil, 2, "114.114.114.114")
end)


sys.taskInit(function()
    sys.waitUntil("IP_READY")
    local dName = "D2_TASK"
    netc = socket.create(nil, dName)
    local succ=socket.config(netc)
    log.info("socket.congfig",succ )
    
    local succ1, result = socket.connect(netc, "www.yourUrl.top",12300,true)
    log.info("socket.connect",succ1) 
    log.info("IPV6", "ip", socket.localIP())

    sys.wait(2000)

    local cnt=0
    local strCnt
    while true do
     cnt=cnt+1
     strCnt="From Air700 No."..cnt.." Messages."
     local succ1, full, result1 = socket.tx(netc, strCnt)
     -- local succ1, full, result1 = socket.tx(netc, strCnt, "www.yourUrl.top",       12300       )  
                                                             --TCP应用则忽略      --端口--TCP应用则忽略

     log.info("socket.SEND",strCnt) 
     sys.wait(6000)
    end
    
end)


-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

代码中注意点:

1       socket.connect(netc, "www.yourUrl.top",12300,true)

  socket.connect函数的need_ipv6_dns必须设置成true,以便开启IPV6.

2  socket.tx(netc, strCnt, "www.yourUrl.top",12300 )  函数中的域名和端口号可以忽略。
                                                         

3 行号52 sys.wait(2000)延时不能少,可保证NodeRed收到第一条数据

NodeRed代码

 

[
    {
        "id": "f6f2187d.f17ca8",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "4ba8347f531551e7",
        "type": "debug",
        "z": "f6f2187d.f17ca8",
        "name": "debug 2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 480,
        "y": 240,
        "wires": []
    },
    {
        "id": "5d8b8559cac5fb20",
        "type": "tcp in",
        "z": "f6f2187d.f17ca8",
        "name": "",
        "server": "server",
        "host": "",
        "port": "2300",
        "datamode": "stream",
        "datatype": "utf8",
        "newline": "",
        "topic": "",
        "trim": false,
        "base64": false,
        "tls": "",
        "x": 280,
        "y": 240,
        "wires": [
            [
                "4ba8347f531551e7"
            ]
        ]
    }
]

NodeRed接收数据

 Air700发送的数据

注意:NodeRed是基于Docker运行的

 外部TCP端口号是12300,Docker内部是2300

注意上述问题,即可验证AIR700是支持IPV6的。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值