This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
component:modem:zh [2023/12/27 03:08] hfsr [组件:调制解调器] |
component:modem:zh [2024/02/13 03:45] hfsr [组件:调制解调器] |
||
---|---|---|---|
Line 1: | Line 1: | ||
组件:调制解调器 | 组件:调制解调器 | ||
================ | ================ | ||
- | 此组件由[[item:network_card:zh|网卡]]提供。无线网卡的特性与普通网卡基本相同,但是当设定了信号强度时还能将信息以无线“数据包”的形式发送出去。在组网时需要用到网卡的地址,地址可通过`component.modem.address`获取。 | + | 此组件由[[item:network_card:zh|网卡]]提供。无线网卡的特性与普通网卡基本相同,但是当设定了信号强度时还能将报文以无线“数据包”的形式发送出去。在组网时需要用到网卡的地址,地址可通过`component.modem.address`获取。 |
组件名:`modem`。 | 组件名:`modem`。 | ||
Line 8: | Line 8: | ||
- `isWireless(): boolean` | - `isWireless(): boolean` | ||
- | 返回此调制解调器是否可用于发送无线信息。 | + | 返回此调制解调器是否可用于发送无线报文。 |
\\ | \\ | ||
- `maxPacketSize(): number` | - `maxPacketSize(): number` | ||
- | 返回通过网卡传输信息时的最大数据包大小,默认为8192。你可以在OC模组的配置文件中修改此数值。 | + | 返回通过网卡传输报文时的最大数据包大小,默认为8192。你可以在OC模组的配置文件中修改此数值。 |
- | 信息中的每个值都会使信息开头添加2字节。(就算只有一个值也会添加) | + | 报文中的每个值都会使其开头增加2字节。(就算只有一个值也会添加) |
数字型变量占用8字节,true/false/nil占用4字节,字符串所占字节数与字符串本身的字节数相等,空字符串按照1字节计算。 | 数字型变量占用8字节,true/false/nil占用4字节,字符串所占字节数与字符串本身的字节数相等,空字符串按照1字节计算。 | ||
样例: | 样例: | ||
Line 19: | Line 19: | ||
\\ | \\ | ||
- `isOpen(port: number): boolean` | - `isOpen(port: number): boolean` | ||
- | 返回指定“端口”是否处于侦听状态。信息只有在传输到开放的端口时才会触发信号。 | + | 返回指定“端口”是否处于侦听状态。报文只有在传输到开放的端口时才会触发信号。 |
\\ | \\ | ||
- `open(port: number): boolean` | - `open(port: number): boolean` | ||
Line 28: | Line 28: | ||
\\ | \\ | ||
- `send(address: string, port: number[, ...]): boolean` | - `send(address: string, port: number[, ...]): boolean` | ||
- | 向指定地址发送一条网络信息。若信息发送成功返回 `true` ,但**不意味着**信息已被接收,只意味着已被发送。我们不提供端口嗅探功能。 | + | 向指定地址发送一条网络报文。若报文发送成功返回 `true` ,但**不意味着**报文已被接收,只意味着已被发送。我们不提供端口嗅探功能。 |
传递给此函数的所有额外参数都将被作为数据传输。这些参数必须是基本类型:支持`nil`、布尔型、数字型以及字符串型,而不支持表和函数。参阅[[api:serialization:zh|serialization(序列化) API]]以获取将表序列化的方法。 | 传递给此函数的所有额外参数都将被作为数据传输。这些参数必须是基本类型:支持`nil`、布尔型、数字型以及字符串型,而不支持表和函数。参阅[[api:serialization:zh|serialization(序列化) API]]以获取将表序列化的方法。 | ||
额外参数的数量有上限,默认限制为8。此限制可以在OC模组的配置文件中修改,但是**不推荐**这样做。将限制调高可能会使性能较弱的电脑不可避免地经常崩溃,而将限制调低可能会使某些协议无法工作。 | 额外参数的数量有上限,默认限制为8。此限制可以在OC模组的配置文件中修改,但是**不推荐**这样做。将限制调高可能会使性能较弱的电脑不可避免地经常崩溃,而将限制调低可能会使某些协议无法工作。 | ||
\\ | \\ | ||
- `broadcast(port: number, ...): boolean` | - `broadcast(port: number, ...): boolean` | ||
- | 发送一条广播信息。此信息会被发送给所有可到达的网卡。若信息被成功发送则返回 `true`。请注意广播信息**不会**传递给发送这条信息的调制解调器自身。 | + | 发送一条广播报文。此报文会被发送给所有可到达的网卡。若报文被成功发送则返回 `true`。请注意广播报文**不会**传递给发送这条报文的调制解调器自身。 |
所有额外参数都将作为数据一并发送,参见`send`。 | 所有额外参数都将作为数据一并发送,参见`send`。 | ||
\\ | \\ | ||
- `getStrength(): number` | - `getStrength(): number` | ||
- | 获取当前发送信息时使用的信号强度。 | + | 获取当前发送报文时使用的信号强度。 |
**仅限无线网卡。** | **仅限无线网卡。** | ||
\\ | \\ | ||
- `setStrength(value: number): number` | - `setStrength(value: number): number` | ||
- | 设置信号强度。若此值被设定为大于0,则发送信息时会同时生成一条无线信息。若调用此函数时设定的强度超出调制解调器的最大信号强度,则会将其信号强度设定为允许的最大值。信号强度越高,发送信息时所需的能量就越多。 | + | 设置信号强度。若此值被设定为大于0,则发送报文时会同时生成一条无线报文。若调用此函数时设定的强度超出调制解调器的最大信号强度,则会将其信号强度设定为允许的最大值。信号强度越高,发送报文时所需的能量就越多。 |
**仅限无线网卡。** | **仅限无线网卡。** | ||
\\ | \\ | ||
- `getWakeMessage():string` | - `getWakeMessage():string` | ||
- | 获取当前设置的唤醒信息。当网卡的任意端口检测到了唤醒信息(某网络数据包第一个参数中的字符串),而电脑处于关闭状态,则电脑会启动。可用于机器人、普通电脑、服务器、无人机以及平板电脑。[[component:tunnel:zh|连接卡]]也提供了相同的功能。 | + | 获取当前设置的唤醒消息。当电脑处于关闭状态时,网卡的任意端口接收到了唤醒消息(某网络数据包第一个参数中的字符串),则电脑会启动。此功能可用于机器人、普通电脑、服务器、无人机以及平板电脑。[[component:tunnel:zh|连接卡]]也提供了相同的功能。 |
\\ | \\ | ||
- `setWakeMessage(message: string, [fuzzy: boolean]):string` | - `setWakeMessage(message: string, [fuzzy: boolean]):string` | ||
- | 将唤醒信息设定为给定的**字符串**。信息可以模糊匹配(由`fuzzy`参数决定,默认为`false`)。模糊匹配时会忽略网络数据包中的其他参数。 | + | 将唤醒消息设定为给定的**字符串**。消息可以模糊匹配(由`fuzzy`参数决定,默认为`false`)。模糊匹配时会忽略网络数据包中的其他参数。 |
- | 当收到来自其他网卡的信息时,此组件会产生名为`modem_message`的信号。 | + | 当收到来自其他网卡的报文时,此组件会产生名为`modem_message`的信号。 |
信号的签名为:`localAddress: string, remoteAddress: string, port: number, distance: number, ...`。 | 信号的签名为:`localAddress: string, remoteAddress: string, port: number, distance: number, ...`。 | ||
- | - `localAddress`为收到信息的调制解调器组件地址。 | + | - `localAddress`为收到报文的调制解调器组件地址。 |
- | - `remoteAddress`为发送信息的调制解调器地址。 | + | - `remoteAddress`为发送报文的调制解调器地址。 |
- | - `port`为信息被发送到的端口号。 | + | - `port`为报文被发送到的端口号。 |
- | - `distance`为到发送信息的网卡之间的距离。此值只对无线信息有意义。对于普通信息此值总为0。 | + | - `distance`为到发送报文的网卡之间的距离。此值只对无线报文有意义。对于普通报文此值总为0。 |
- | - 其他任何值均为发送者一并传输的数据(即`send`与`broadcast`函数中的`...`)。 | + | - 其他所有值均为发送者一并传输的数据(即`send`与`broadcast`函数中的`...`)。 |
使用例: | 使用例: |