farmbot v6.4.1 Farmbot.Firmware.Handler behaviour View Source
Any module that implements this behaviour should be a GenStage.
The implementng stage should communicate with the various Farmbot
hardware such as motors and encoders. The Farmbot.Firmware module
will subscribe_to: the implementing handler. Events should be
Gcodes as parsed by Farmbot.Firmware.Gcode.Parser.
Link to this section Summary
Callbacks
Calibrate an axis
Lock the firmware
Unlock the firmware
Find home on an axis
Home an axis
Home every axis
Move to a position
Read all params
Read a paramater
Read a pin
Request firmware version
Set a pin mode (input/output)
Set angle on a servo pin
Start a firmware handler
Update a paramater
Write a pin
Manually set an axis’s current position to zero
Link to this section Types
Pid of a firmware implementation.
Pin
Mode of a pin.
Speed of a command.
Link to this section Callbacks
calibrate(handler(), axis()) :: fw_ret_val()
Calibrate an axis.
Lock the firmware.
emergency_unlock(handler()) :: fw_ret_val()
Unlock the firmware.
find_home(handler(), axis()) :: fw_ret_val()
Find home on an axis.
Home an axis.
Home every axis.
Move to a position.
read_all_params(handler()) :: fw_ret_val()
Read all params
read_param(handler(), fw_param()) :: fw_ret_val()
Read a paramater.
read_pin(handler(), pin(), pin_mode()) :: fw_ret_val()
Read a pin.
request_software_version(handler()) :: fw_ret_val()
Request firmware version.
set_pin_mode(handler(), pin(), :input | :input_pullup | :output) :: fw_ret_val()
Set a pin mode (input/output)
set_servo_angle(handler(), pin(), number()) :: fw_ret_val()
Set angle on a servo pin.
Start a firmware handler.
update_param(handler(), fw_param(), number()) :: fw_ret_val()
Update a paramater.
write_pin(handler(), pin(), pin_mode(), number()) :: fw_ret_val()
Write a pin.
Manually set an axis’s current position to zero.