此组件由网卡提供。无线网卡的特性与普通网卡基本相同,但是当设定了信号强度时还能将信息以无线“数据包”的形式发送出去。在组网时需要用到网卡的地址,地址可通过component.modem.address
获取。
组件名:modem
。
回调函数:
isWireless(): boolean
maxPacketSize(): number
"foo"
是一个5字节长的数据包;开头添加2字节,内容有3字节长的字符串。"currentStatus",300
是一个25字节长的数据包;开头添加4字节,内容有13字节长的字符串和一个占8字节的数字。isOpen(port: number): boolean
open(port: number): boolean
true
,若已开启则返回false
。注: 最大端口号为65535close([port: number]): boolean
true
。send(address: string, port: number[, ...]): boolean
true
,但不意味着信息已被接收,只意味着已被发送。我们不提供端口嗅探功能。
传递给此函数的所有额外参数都将被作为数据传输。这些参数必须是基本类型:支持nil
、布尔型、数字型以及字符串型,而不支持表和函数。参阅serialization(串连) API以获取将表序列化的方法。
额外参数的数量有上限,默认限制为8。此限制可以在OC模组的配置文件中修改,但是不推荐这样做。将限制调高可能会使性能较弱的电脑不可避免地经常崩溃,而将限制调低可能会使某些协议无法工作。broadcast(port: number, ...): boolean
true
。请注意广播信息不会传递给发送这条信息的调制解调器自身。
所有额外参数都将作为数据一并发送,参见send
。getStrength(): number
setStrength(value: number): number
getWakeMessage():string
setWakeMessage(message: string, [fuzzy: boolean]):string
fuzzy
参数决定,默认为false
)。模糊匹配时会忽略网络数据包中的其他参数。
当收到来自其他网卡的信息时,此组件会产生名为modem_message
的信号。
信号的签名为:localAddress: string, remoteAddress: string, port: number, distance: number, ...
。
localAddress
为收到信息的调制解调器组件地址。remoteAddress
为发送信息的调制解调器地址。port
为信息被发送到的端口号。distance
为到发送信息的网卡之间的距离。此值只对无线信息有意义。对于普通信息此值总为0。send
与broadcast
函数中的...
)。使用例:
local component = require("component") local event = require("event") local m = component.modem --获取首选调制解调器组件 m.open(123) print(m.isOpen(123)) -- true --发送信息。 m.broadcast(123, "this is a test") --等待来自其他网卡的信息。 local _, _, from, port, _, message = event.pull("modem_message") print("Got a message from " .. from .. " on port " .. port .. ": " .. tostring(message))