Lift Controller =============== This is a port of Martin Schoeberl's Lift Controller [1] to C. The orignal version is an embedded Java program that controls a lift in a factory in Turkey. Benedikt Huber has ported the controller to C and Lucid [3]. It has been used in various research projects, including T-CREST[3] and the F-Shell test generator [4]. Overview -------- The sensors of the system consist of several buttons, a load sensor (to detect if the lift is positioned at the load), sensors to detect bottom and top position, and an index sensor for the motor. The motor is controlled using two digital outputs, one for its direction and one to turn it off or on. The controller itself consists of an initialization routine ctrl_init(), the controller step ctrl_loop(), which should be invoked every 10ms. Outside a test environment, ctrl_get_vals() should be called to read sensors before the controller runs, and ctrl_set_vals() should be called to set actuators after the controller ran. The digital IO interface (9 digital inputs, 2 digital outputs and 14 LEDs are used) is realized as global volatile variables (simio_in, simio_out, simio_led), that can be modified and read by test drivers or by the runtime environment. [1] http://www.jopdesign.com/doc/jembench.pdf [2] https://github.com/visq/99lifts [3] http://www.t-crest.org [4] http://forsyte.at/software/fshell/