This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
component:modem [2015/01/14 23:40] 127.0.0.1 external edit |
component:modem [2015/05/03 09:22] sulljason |
||
---|---|---|---|
Line 1: | Line 1: | ||
Component: Modem | Component: Modem | ||
================ | ================ | ||
- | This component is provided by [[item:network_card|network cards]]. Wireless network cards behave much like normal network cards, but additionally send the message as a wireless "packet" when a strength is set. | + | This component is provided by [[item:network_card|network cards]]. Wireless network cards behave much like normal network cards, but additionally send the message as a wireless "packet" when a strength is set. The modem's address must be used for networking. It can be found through component.modem.address. |
Component name: `modem`. | Component name: `modem`. | ||
Line 8: | Line 8: | ||
- `isWireless(): boolean` | - `isWireless(): boolean` | ||
Returns whether this modem is capable of sending wireless messages. | Returns whether this modem is capable of sending wireless messages. | ||
- | - `maxPacketSize(): number` | + | - `maxPacketSize(): number` |
- | Returns the maximum packet size for sending messages via network cards. Defaults to 8192. You can change this in the OpenComputers configuration file. | + | Returns the maximum packet size for sending messages via network cards. Defaults to 8192. You can change this in the OpenComputers configuration file. |
+ | Every value in a message adds two bytes of overhead. (Even if there's only one value.) | ||
+ | Numbers add another 8 bytes, true/false/nil another 4 bytes, and strings exactly as many bytes as the string contains---though empty strings still count as one byte. | ||
+ | Examples: | ||
+ | * `"foo"` is a 5-byte packet; two bytes of overhead and a three byte string. | ||
+ | * `"currentStatus",300` is a 25-byte packet; four bytes overhead, a 13-byte string, and 8 bytes for a number. | ||
- `isOpen(port: number): boolean` | - `isOpen(port: number): boolean` | ||
Returns whether the specified "port" is currently being listened on. Messages only trigger signals when they arrive on a port that is open. | Returns whether the specified "port" is currently being listened on. Messages only trigger signals when they arrive on a port that is open. | ||
Line 18: | Line 24: | ||
- `send(address: string, port: number[, ...]): boolean` | - `send(address: string, port: number[, ...]): boolean` | ||
Sends a network message to the specified address. Returns `true` if the message was sent. This does *not* mean the message was received, only that it was sent. No port-sniffing for you. | Sends a network message to the specified address. Returns `true` if the message was sent. This does *not* mean the message was received, only that it was sent. No port-sniffing for you. | ||
- | Any additional arguments are passed along as data. These arguments must be basic types: nil, boolean, number and string values are supported, tables and functions are not. See [[api:serialization|the serialization API]] for serialization of tables. | + | Any additional arguments are passed along as data. These arguments must be basic types: nil, boolean, number and string values are supported, tables and functions are not. See [[api:serialization|the serialization API]] for serialization of tables. |
+ | The number of additional arguments is limited. The default limit is 8. It can be changed in the OpenComputers configuration file, but this is //not// recommended; higher limits can allow relatively weak computers to break relatively strong ones with no defense possible, while lower limits will prevent some protocols from working. | ||
- `broadcast(port: number, ...): boolean` | - `broadcast(port: number, ...): boolean` | ||
Sends a broadcast message. This message is delivered to all reachable network cards. Returns `true` if the message was sent. Note that broadcast messages are *not* delivered to the modem that sent the message. | Sends a broadcast message. This message is delivered to all reachable network cards. Returns `true` if the message was sent. Note that broadcast messages are *not* delivered to the modem that sent the message. | ||
All additional arguments are passed along as data. See `send`. | All additional arguments are passed along as data. See `send`. | ||
- `getStrength(): number` | - `getStrength(): number` | ||
- | The current signal strength to apply when sending messages. | + | The current signal strength to apply when sending messages. |
//Wireless network cards only.// | //Wireless network cards only.// | ||
- `setStrength(value: number): number` | - `setStrength(value: number): number` | ||
- | Sets the signal strength. If this is set to a value larger than zero, sending a message will also generate a wireless message. The higher the signal strength the more energy is required to send messages, though. | + | Sets the signal strength. If this is set to a value larger than zero, sending a message will also generate a wireless message. The higher the signal strength the more energy is required to send messages, though. |
//Wireless network cards only.// | //Wireless network cards only.// | ||
+ | - `getWakeMessage():string` | ||
+ | Gets the current wake-up message. | ||
+ | - `setWakeMessage(message: string):string` | ||
+ | Sets the wake-up message to the specified **string**. | ||