linuxcnc-hal-sys 0.1.5

Generated, unsafe Rust bindings to the LinuxCNC HAL submodule
Documentation
# dot -Tpng homing.dot > homing.png
# dot -Txlib homing.dot

digraph finite_state_machine {

        node [shape = doublecircle]; IDLE FINISHED
        node [shape = circle];
        rankdir=LR;
        START -> IDLE [ label = "errors" ];
        START -> UNLOCK [ label = "unlock needed" ];
        START -> UNLOCK_WAIT [ label = "unlock not needed" ];
        UNLOCK -> UNLOCK_WAIT
        UNLOCK_WAIT -> SET_SWITCH_POSITION [ label = "searchvel 0 latchvel 0" ];
        UNLOCK_WAIT -> INDEX_ONLY_START [ label = "searchvel 0 latchvel !0 useindex" ];
        UNLOCK_WAIT -> INITIAL_SEARCH_START [ label = "searchvel !0 latchvel !0" ];
        INITIAL_BACKOFF_START -> INITIAL_BACKOFF_WAIT [ label = "delay times out" ];
        INITIAL_BACKOFF_WAIT -> INITIAL_SEARCH_START [ label = "!switch" ];
        INITIAL_SEARCH_START -> INITIAL_BACKOFF_START [ label = "switch" ];
        INITIAL_SEARCH_START -> INITIAL_SEARCH_WAIT [ label = "!switch" ];
        INITIAL_SEARCH_WAIT -> SET_COARSE_POSITION [ label = "switch" ];
        SET_COARSE_POSITION -> FINAL_BACKOFF_START [ label = "search/latch opposite" ];
        SET_COARSE_POSITION -> FALL_SEARCH_START [ label = "search/latch same sign" ];
        FINAL_BACKOFF_START -> FINAL_BACKOFF_WAIT [ label = "switch" ];
        FINAL_BACKOFF_WAIT -> RISE_SEARCH_START [ label = "!switch" ];
        RISE_SEARCH_START -> RISE_SEARCH_WAIT [ label = "!switch" ];
        RISE_SEARCH_WAIT -> INDEX_SEARCH_START [ label = "switch & index" ];
        RISE_SEARCH_WAIT -> SET_SWITCH_POSITION [ label = "switch & !index" ];
        FALL_SEARCH_START -> FALL_SEARCH_WAIT [ label = "switch" ];
        FALL_SEARCH_WAIT -> INDEX_SEARCH_START [ label = "!switch & index" ];
        FALL_SEARCH_WAIT -> SET_SWITCH_POSITION [ label = "!switch & !index" ];
        SET_SWITCH_POSITION -> FINAL_MOVE_START
        INDEX_ONLY_START -> INDEX_SEARCH_WAIT
        INDEX_SEARCH_START -> INDEX_SEARCH_WAIT
        INDEX_SEARCH_WAIT -> SET_INDEX_POSITION [ label = "index found" ];
        SET_INDEX_POSITION -> FINAL_MOVE_START
        FINAL_MOVE_START -> FINAL_MOVE_WAIT
        FINAL_MOVE_WAIT -> LOCK [ label = "in position" ];
        LOCK -> LOCK_WAIT
        LOCK_WAIT -> FINISHED

        FINISHED -> IDLE
        IDLE -> START 
}