The Txtzyme plugin extends the available markup in federated wiki to include generalized instrument control of devices attached to wiki servers.
As is the convention for plugins, the markup uses upper-case words to have special meaning. Most of our words are about events. See Plugin Lifecycle
Some events are invoked automatically, typically by the clock, or other events present in the federated wiki client-side environment. This example is from the stimulus and acquisition in Txtzyme Oscilloscope.
This markup says to invoke PULSE then SAMPLE every second. The SECOND event comes from the browser's real-time clock.
This markup says how to PULSE and SAMPLE by specifying the single-character instructions to be executed by the AVR microcontroller.
To PLUSE select pin 4 of port d, output 1, wait 150 microseconds, output 0, then return the pin to high impedance input.
To SAMPLE repeat 50 times, sample ADC channel 11, print the result, wait 100 microseconds, then resume the loop.
We envision this work as representative of a new paradigm of open science and engineering. The approach has much to offer.
It offers intrinsic sharing of work in progress, especially methods, as captured in instrument specific markup.
It offers low-latency between the device, its control computer, and the client-side ad-hoc development environment.
It offers separation of concerns through multiple levels of simple, event-oriented, interpreters.
We've demonstrated these features in screencasts and conference videos. See New Works
We've applied to demonstrate our work at the 2014 O'Reilly open-source conference in Portland, Oregon. See OSCON H/W Demo