Signals broadcast information in a channel (being an abstract communication medium that could be imagined as sound, smell, vision or anything else). There are no sender-receiver associations, although the receiving party can filter out signals (two standard filtering methods are: physical neighborhood and one-dimensional attribute called flavor). Signals attached to neurons and creatures (created in Creature.signals and Neuro.signals) automatically follow the owner's location. Environmental signals (in World.signals) are stationary.
Receiving:
There are 2 kinds of data you can receive:
1. aggregating functions (receive and receiveFilter) calculate the overall power of the received signal (based on the distance and the source power).
2.receiveSet and receiveSingle fetch the individual Signal object(s) so it is possible to transmit something else than just a single number (by using Signal.value) and do more sophisticated processing.
Creating: Use "add" in Creature.signals, Neuro.signals, or World.signals.
channel
string |
Channel name
Channel name, readonly.
|
flavor
float |
Flavor
Signal flavor is can be used to differentiate between signals in a single channel.
|
pos
|
Position
Signal position, readonly.
|
power
float |
Power
Signal power affects the aggregated signal value returned from receive() and receiveFilter().
|
value
untyped |
Value
Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating function receive() and receiveFilter() ignore this attribute.
|
remove
|
Remove
function remove()
Deletes the signal
|