dev
Rahix 9 years ago
parent 26dc28c589
commit c4bd3dffef

@ -11,3 +11,44 @@ bc = require("bc"):init("<master-address>")
``` ```
where `<master-address>` is the address of you networks master. where `<master-address>` is the address of you networks master.
The master is only required to download the base structure file. The master is only required to download the base structure file.
The basic idea behind basecontrol is, that network node have a set of **nouns**,
which represent different values. A computer near a reactor for example could have
a noun called `power-output`. Network nodes also have **verbs**, actions that other
nodes can perform. The reactor comuputer could have a `shutdown` verb for example.
The `bc` object has the following methods to interface with verbs and nouns:
```lua
-- Retrieve a noun from it's network node
val = bc:get_noun("<noun>")
-- Set a noun on the local machine
bc:set_noun("<noun>", value)
-- Call a verb on it's network node
bc:call_verb("<verb>", param)
-- Register a handler for verbs on the current machine
bc:on_verb("<verb>", function handler)
```
Additionally, there is
```lua
id = bc:listen_noun("<noun>", event_type, event_arg, function callback)
```
which is used to register asynchroneous callbacks on noun changes.
`event_type` is one of
* onchange => whenever the value changes, `event_arg` is ignored
* onrising => whenever the value gets bigger, `event_arg` is ignored
* onfalling => whenever the value gets smaller, `event_arg` is ignored
* onvalue => whenever the value equals `event_arg`
* onabove => whenever the value is bigger than `event_arg`
* onbelow => whenever the value smaller than `event_arg`
A listener can be removed using
```lua
bc:listen_cancel("<noun>", id)
```

Loading…
Cancel
Save