A great deal of documentation for @StateMachineAssembler remains to be done! For now, the easiest way to start using it is to go to the pages that explain the Real-Time Linux State Machine and look at the example code embedded there.
If you are writing a protocol using Dispatcher, you should always initialize your @StateMachineAssembler object using the folling command
sma = StateMachineAssembler('full_trial_structure');
Suppose you've written a protocol that runs under Dispatcher and you are now trying to debug it. You can do ground state-by-state debugging by having Dispatcher invoke the disassembler for you. For example,
>> dispatcher('disassemble', [1 4:10]);
will print out disassembler information for trials 1 and 4 through 10. Load your data into a protocol, choose which trials you want to dissassemble, and go.
This is a list and documentation for all of the methods in the @StateMachineAssembler object class.