oc-basecontrol ============== oc-basecontrol is an OpenComputers generic base control library. ## Documentation ## Load oc-basecontrol into your application: ```lua bc = require("bc"):init(, ) ``` where `` is a table containing all nouns (described later) and their initial value and `` is a table containing all verbs and their callbacks. The basic idea behind basecontrol is, that network nodes 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 computer 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("") -- Set a noun on the local machine bc:set_noun("", value) -- Call a verb on it's network node bc:call_verb("", param) ``` Additionally, there is ```lua id = bc:listen_noun("", event_type, event_arg, function callback) ``` which is used to register asynchroneous callbacks on (possibly remote) 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("", id) ``` ## Testing ## Testing is done using a "fake" backend and typing ```console $ ./lunit test_bc.lua ```