# Change XXYYZZ to the UID of your Silent Stepper Brick

setup:
	# Use position reached callback to program random movement
	subscribe to tinkerforge/callback/silent_stepper_brick/XXYYZZ/position_reached
	   if a message arives
            # message contains the current position as int
            generate random numbers r,
                    steps [1000;5000],
                    vel [200; 2000],
                    acc [100; 1000]
                and dec [100; 1000]
                
            if r is even
                # Driving forward        
            else
                # Driving backward
                set steps to -steps
            endif
            publish '{"acceleration": acc, "deceleration": dec}' to tinkerforge/request/silent_stepper_brick/XXYYZZ/set_speed_ramping
            publish '{"velocity": vel}' to tinkerforge/request/silent_stepper_brick/XXYYZZ/set_max_velocity
            publish '{"steps": steps}' to tinkerforge/request/silent_stepper_brick/XXYYZZ/set_steps
        endif
    endsubscribe
    
    publish '{"register": true}' to tinkerforge/register/silent_stepper_brick/XXYYZZ/position_reached # Register position_reached callback
	
	publish '{"step_resolution": "8", "interpolation": true}' to tinkerforge/request/silent_stepper_brick/XXYYZZ/set_step_configuration  # 1/8 steps (interpolated)
	publish '' to tinkerforge/request/silent_stepper_brick/XXYYZZ/enable  # Enable motor power
	publish '{"steps": 1}' to tinkerforge/request/silent_stepper_brick/XXYYZZ/set_steps  # Drive one step forward to get things going

cleanup:
    # If you are done, run this to clean up
    publish '' to tinkerforge/request/silent_stepper_brick/XXYYZZ/disable 
