Difference between revisions of "Redstone (API)"

From ComputerCraft Wiki
Jump to: navigation, search
(Adding a note about usage in data exchange)
(Data exchange)
Line 53: Line 53:
  
 
== Data exchange ==
 
== Data exchange ==
The redstone API can be used to exchange data between adjacent [[computer]]s and [[turtle]]s. Four bits of data can be transmitted and received with each use of analog input and output. One redstone signal can be sent at each tick [http://minecraft.gamepedia.com/Tick tick], and there are 20 ticks per second in minecraft. This limits data transmission over redstone to a maximum of 80 bits per second (bps).
+
The redstone API can be used to exchange data between adjacent [[computer]]s and [[turtle]]s. Four bits of data can be transmitted and received with each use of redstone signals to send analog output and receive the input. One redstone signal can be sent at each tick [http://minecraft.gamepedia.com/Tick tick], and there are 20 ticks per second in minecraft. This limits data transmission over redstone to a maximum of 80 bits per second (bps).
  
 
This makes large-scale data transmission over the redstone API exceedingly slow. For example, using the redstone API, transmitting a colored bitmap image for a maximum [[resolution]] computercraft monitor cluster (162x80 pixels) would require 10 minutes and 48 seconds (this would be a 6.48 kB image). For reference, there are 16 colors available for monitors and terminals in computercraft, so a single color for a pixel can be represented in a 4-bit signal.
 
This makes large-scale data transmission over the redstone API exceedingly slow. For example, using the redstone API, transmitting a colored bitmap image for a maximum [[resolution]] computercraft monitor cluster (162x80 pixels) would require 10 minutes and 48 seconds (this would be a 6.48 kB image). For reference, there are 16 colors available for monitors and terminals in computercraft, so a single color for a pixel can be represented in a 4-bit signal.
  
Nonetheless, the redstone API can be useful when other options are not available. For example, it can be used to allow [[turtle]]s to communicate with each other and coordinate their work even if they do not have [[Wireless Modem]]s.
+
Despite the slowness, the redstone API can be useful when other options are not available. For example, it can be used to allow [[turtle]]s to communicate with each other and coordinate their work even if they do not have [[Wireless Modem]]s. Exchanging instructions can be done with much less total data than exchanges of image files and the like.
 
[[Category:APIs]]
 
[[Category:APIs]]

Revision as of 18:37, 22 November 2014

The Redstone API contains methods to control attached redstone. All methods from the redstone API can also be called using "rs", which points to the same library. For example, instead of redstone.getSides(), rs.getSides() can be used.

In addition to regular redstone / RedPower cables for regular signals, RedPower bundled (for MineCraft 1.4.x) or Minefactory Reloaded RedNet cables (for MineCraft 1.5.x up) may be used to send "bundled" signals out the one face. Refer to the Colors API for more information on interacting with these.

As of ComputerCraft 1.6, the previous support for bundled cables has been replaced with an API allowing other mod developers to provide the support themselves. At this time, bundled cables cannot be used with this build - please update this page if and when any mods add compatibility!

Grid disk.png   Redstone (API)

Method NameDescription
redstone.getSides() Returns a table of possible sides.
redstone.getInput(string side) Returns the current redstone input signal state on side.
redstone.setOutput(string side, boolean value) Sets or resets a redstone signal on side.
redstone.getOutput(string side) Returns the current redstone output signal on side.
redstone.getAnalogInput(string side) (Requires CC1.51 and above) Returns the current redstone input signal strength on side. If no input is present, returns 0. If a redstone source (such as a redstone torch or block) is directly adjacent to the computer, returns 15.
redstone.setAnalogOutput(string side, number strength) (Requires CC1.51 and above) Sets or resets a redstone signal on side to strength (where strength is a positive integer).
redstone.getAnalogOutput(string side) (Requires CC1.51 and above) Returns the current redstone output signal strength on side.
redstone.getBundledInput(string side) Returns the state (as a number) of a RedPower bundled / Minefactory Reloaded RedNet cable connected to side.
redstone.getBundledOutput(string side) Returns the set of RedPower wires in the RedPower bundled / Minefactory Reloaded RedNet cable which are being activated by the terminal on side.
redstone.setBundledOutput(string side, number colors) Sets one or multiple colored signals in a RedPower bundled / Minefactory Reloaded RedNet cable attached to side. colors will determine which signals are activated. In order to set multiple signals, add the color values of the colors you want to activate. To turn off all of the colors, use 0.
redstone.testBundledInput(string side, number color) Returns true if color is active in a RedPower bundled / Minefactory Reloaded RedNet cable attached to side. Else, returns false.
Bundled cable code snippet. (You might want to take a look at this if you are doing bundledcable related things.)

Data exchange

The redstone API can be used to exchange data between adjacent computers and turtles. Four bits of data can be transmitted and received with each use of redstone signals to send analog output and receive the input. One redstone signal can be sent at each tick tick, and there are 20 ticks per second in minecraft. This limits data transmission over redstone to a maximum of 80 bits per second (bps).

This makes large-scale data transmission over the redstone API exceedingly slow. For example, using the redstone API, transmitting a colored bitmap image for a maximum resolution computercraft monitor cluster (162x80 pixels) would require 10 minutes and 48 seconds (this would be a 6.48 kB image). For reference, there are 16 colors available for monitors and terminals in computercraft, so a single color for a pixel can be represented in a 4-bit signal.

Despite the slowness, the redstone API can be useful when other options are not available. For example, it can be used to allow turtles to communicate with each other and coordinate their work even if they do not have Wireless Modems. Exchanging instructions can be done with much less total data than exchanges of image files and the like.