合宙Air724UG LuatOS-Air script lib API--socketCh395

这篇具有很好参考价值的文章主要介绍了合宙Air724UG LuatOS-Air script lib API--socketCh395。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

socketCh395
Table of Contents
socketCh395
socketCh395.open(para)
socketCh395.tcp(ssl, cert, tCoreExtPara)
socketCh395.udp(localPort)
mt:connect(address, port, timeout)
mt:serverSelect(keepAlive, pingreq)
mt:asyncSelect(keepAlive, pingreq)
mt:serverSend(data, timeout)
mt:serverRecv()
mt:asyncSend(data, timeout)
mt:asyncRecv()
mt:send(data, timeout)
mt:recv(timeout, msg, msgNoResume)
mt:close()
socketCh395.printStatus()
socketCh395
模块功能:数据链路激活、socketCh395管理(创建、连接、数据收发、状态维护)

socketCh395.open(para)
初始化CG395模块

参数
名称 传入值类型 释义
para table 取值如下:
para为table类型,表示以太网的配置参数,参数结构如下:
{
mode = 1, --1表示客户端;2表示服务器;默认为1
intPin = pio.P0_22, --以太网芯片中断通知引脚
rstPin = pio.P0_23, --复位以太网芯片引脚
clientNum = 6, – server可连路数
spiCs = pio.P0_23, --SPI片选
CH395MAC = “84C2E4A82950”, --MAC地址
localAddr = “192.168.1.112”, --本机的地址
localPort = 1888, --server本机的端口
spiCs=pio.P0_7, --spi片选
localGateway = “192.168.1.1”, --本机的网关地址
func=function(id, msg, dat)end, --中断处理函数,处理server中断事件
powerFunc=function(state) end --控制以太网模块的供电开关函数,ret为true开启供电,false关闭供电
spi = {spi.SPI_1,0,0,8,800000}, --SPI通道参数,id,cpha,cpol,dataBits,clock,默认spi.SPI_1,0,0,8,800000
}
返回值
result 数据接收结果
true表示成功
false表示失败

例子
socketCh395.open(para)
详细指南和示例参考:指南 示例

socketCh395.tcp(ssl, cert, tCoreExtPara)
创建基于TCP的socket对象

参数
名称 传入值类型 释义
ssl bool 可选参数,默认为nil 是否为ssl连接,true表示是,其余表示否
cert table 可选参数,默认为nil 保留参数,ssl功能还未实现。
tCoreExtPara table 可选参数,默认为nil 建立链接扩展参数
{
id =0, --server socket索引ID
ip =“192.168.1.1”, --server socket client ip
port =“8000”, --server socket client port
type =“TCPSERVER”, --server socket type
localport =“8000”, – socket client port
}
返回值
client,创建成功返回socket客户端对象;创建失败返回nil

例子

详细指南和示例参考:指南 示例

socketCh395.udp(localPort)
创建基于UDP的socket对象

参数

返回值
client,创建成功返回socket客户端对象;创建失败返回nil

例子
c = socketCh395.udp()
详细指南和示例参考:指南 示例

mt:connect(address, port, timeout)
连接服务器

参数
名称 传入值类型 释义
address string 服务器地址,支持ip和域名
port param string或者number类型,服务器端口
timeout number 可选参数,默认为120 可选参数,连接超时时间,单位秒
返回值
bool result true - 成功,false - 失败
string ,id ‘0’ – ‘8’ ,返回通道ID编号

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
详细指南和示例参考:指南 示例

mt:serverSelect(keepAlive, pingreq)
server发送数据

参数
名称 传入值类型 释义
keepAlive number 可选参数,默认为nil 服务器和客户端最大通信间隔时间,也叫心跳包最大时间,单位秒
pingreq string 可选参数,默认为nil 心跳包的字符串
返回值
boole,false 失败,true 表示成功

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
while socketClient:serverSelect() do end
详细指南和示例参考:指南 示例

mt:asyncSelect(keepAlive, pingreq)
异步发送数据

参数
名称 传入值类型 释义
keepAlive number 可选参数,默认为nil 服务器和客户端最大通信间隔时间,也叫心跳包最大时间,单位秒
pingreq string 可选参数,默认为nil 心跳包的字符串
返回值
boole,false 失败,true 表示成功

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
while socketClient:asyncSelect() do end
详细指南和示例参考:指南 示例

mt:serverSend(data, timeout)
server缓存待发送的数据

参数
名称 传入值类型 释义
data string 数据
timeout number 可选参数,默认为nil 可选参数,发送超时时间,单位秒;为nil时表示不支持timeout
返回值
result true - 成功,false - 失败

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
socketClient:serverSend(“12345678”)
详细指南和示例参考:指南 示例

mt:serverRecv()
server接收数据

参数

返回值
data 表示接收到的数据(如果是UDP,返回最新的一包数据;如果是TCP,返回所有收到的数据)
""表示未收到数据

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
data = socketClient:serverRecv()
详细指南和示例参考:指南 示例

mt:asyncSend(data, timeout)
异步缓存待发送的数据

参数
名称 传入值类型 释义
data string 数据
timeout number 可选参数,默认为nil 可选参数,发送超时时间,单位秒;为nil时表示不支持timeout
返回值
result true - 成功,false - 失败

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
socketClient:asyncSend(“12345678”)
详细指南和示例参考:指南 示例

mt:asyncRecv()
异步接收数据

参数

返回值
data 表示接收到的数据(如果是UDP,返回最新的一包数据;如果是TCP,返回所有收到的数据)
""表示未收到数据

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
data = socketClient:asyncRecv()
详细指南和示例参考:指南 示例

mt:send(data, timeout)
同步发送数据

参数
名称 传入值类型 释义
data string 数据
此处传入的数据长度和剩余可用内存有关,只要内存够用,可以随便传入数据
虽然说此处的数据长度没有特别限制,但是调用core中的socket发送接口时,每次最多发送11200字节的数据
例如此处传入的data长度是112000字节,则在这个send接口中,会循环10次,每次发送11200字节的数据
timeout number 可选参数,默认为120 可选参数,发送超时时间,单位秒
返回值
result true - 成功,false - 失败

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
socketClient:send(“12345678”)
详细指南和示例参考:指南 示例

mt:recv(timeout, msg, msgNoResume)
同步接收数据

参数
名称 传入值类型 释义
timeout number 可选参数,默认为0 可选参数,接收超时时间,单位毫秒
msg string 可选参数,默认为nil 可选参数,控制socket所在的线程退出recv阻塞状态
msgNoResume bool 可选参数,默认为nil 可选参数,控制socket所在的线程退出recv阻塞状态
false或者nil表示“在recv阻塞状态,收到msg消息,可以退出阻塞状态”,true表示不退出
此参数仅lib内部使用,应用脚本不要使用此参数
返回值
result 数据接收结果
true表示成功(接收到了数据)
false表示失败(没有接收到数据)
data
如果result为true,data表示接收到的数据(如果是UDP,返回最新的一包数据;如果是TCP,返回所有收到的数据)
如果result为false,超时失败,data为"timeout"
如果result为false,msg控制退出,data为msg的字符串
如果result为false,socket连接被动断开控制退出,data为"CLOSED"
如果result为false,PDP断开连接控制退出,data为"IP_ERROR_IND"
param 如果是msg控制退出,param的值是msg的参数

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
result,data = socketClient:recv(60000,“APP_SOCKET_SEND_DATA”)
详细指南和示例参考:指南 示例

mt:close()
主动关闭并且销毁一个socket

参数

返回值
nil

例子
socketClient = socketCh395.tcp()
socketClient:connect(“www.baidu.com”,“80”)
socketClient:close()
详细指南和示例参考:指南 示例

socketCh395.printStatus()
打印所有socket的状态

参数

返回值

例子
socketCh395.printStatus()文章来源地址https://www.toymoban.com/news/detail-653223.html

到了这里,关于合宙Air724UG LuatOS-Air script lib API--socketCh395的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合宙Air724UG LuatOS-Air script lib API--nvm

    nvm Table of Contents nvm nvm.init(defaultCfgFile, burnSave) nvm.set(k, v, r, s) nvm.sett(k, kk, v, r, s) nvm.flush() nvm.get(k) nvm.gett(k, kk) nvm.restore() nvm.remove() nvm 模块功能:参数管理 nvm.init(defaultCfgFile, burnSave) 初始化参数存储管理模块 参数 名称 传入值类型 释义 defaultCfgFile string 默认参数文件名 burnSa

    2024年02月14日
    浏览(43)
  • 合宙Air724UG LuatOS-Air script lib API--utils

    utils Table of Contents utils string.toHex(str, separator) string.fromHex(hex) string.utf8Len(str) string.utf8ToTable(str) string.rawurlEncode(str) string.urlEncode(str) table.gsort(t, f) table.rconcat(l) string.formatNumberThousands(num) string.split(str, delimiter) io.exists(path) io.readFile(path) io.writeFile(path, content, mode) io.pathInfo(path) io.fil

    2024年02月12日
    浏览(37)
  • 合宙Air724UG LuatOS-Air script lib API--patch

    patch Table of Contents patch patch.safeJsonDecode(s) (local函数 无法被外部调用) patch 模块功能:Lua补丁 patch.safeJsonDecode(s) (local函数 无法被外部调用) 封装自定义的json.decode接口 参数 名称 传入值类型 释义 s string json格式的字符串 返回值 table,第一个返回值为解析json字符串后的table boole,第

    2024年02月14日
    浏览(46)
  • 合宙Air724UG LuatOS-Air script lib API--http

    Table of Contents http http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) http 模块功能:HTTP客户端 http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) 发送HTTP请求 参数 名称 传入值类型 释义 method string HTTP请求方法 支持\\\"GET\\\",“HEAD”,“POST”,“O

    2024年02月15日
    浏览(80)
  • 合宙Air724UG LuatOS-Air LVGL API--简介

    为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动画、抗锯齿、不透明、平滑滚动、混合模式等 支持

    2024年02月12日
    浏览(33)
  • 合宙Air724UG LuatOS-Air LVGL API-概念

    概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设置或

    2024年02月11日
    浏览(32)
  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设

    2024年02月12日
    浏览(48)
  • 合宙Air724UG LuatOS-Air core API--qrencode

    qrencode Table of Contents qrencode qrencode.encode(data [,version,level]) qrencode 二维码生成 qrencode.encode(data [,version,level]) 二维码编码 参数 参数 类型 释义 取值 data string 需要编码的数据 string类型 version number 二维码版本 可选参数0-40 level number 二维码纠错等级 0-3 返回值 返回值 类型 释义 取值

    2024年02月12日
    浏览(46)
  • 合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)

    日历 (Calendar) LVGL 提供了一个用来选择和显示当前日期的日历控件。 示例代码 – 高亮显示的日期 highlightDate = lvgl.calendar_date_t() – 日历点击的回调函数 – 将点击日期设置高亮 function event_handler(obj, event) if event == lvgl.EVENT_VALUE_CHANGED then date = lvgl.calendar_get_pressed_date(obj) if date

    2024年02月10日
    浏览(45)
  • 合宙Air724UG LuatOS-Air LVGL API控件-图片 (Image)

    图片 (Image) 图片 IMG 是用于显示图像的基本对象类型,图像来源可以是文件,或者定义的符号。 使用  lvgl.img_create  可以创建图像对象。 图片控件显示的内容有两个来源,一个是来源文件的图片,还是有一个就是 符号文字。符号文字是一段特殊的字符串,LVGL内部会将这串特

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包