ME 305 Group 6 Documentation
Functions | Variables
taskUser_05.py File Reference

Manages the states for the User Interface task. More...

Functions

def taskUser_05.printLegend ()
 Prints the available user key commands to the console. More...
 
def taskUser_05.taskUserFcn (str task_name, int period, shares.Share roll_target_duty, shares.Share pitch_target_duty, shares.Share gFlag, shares.Share sFlag, shares.Share prop_gain, shares.Share deriv_gain, shares.Share cont_enable, shares.Share euler_angles, shares.Share angular_velocities, shares.Share roll_target_pos, shares.Share pitch_target_pos, PrintQueue print_queue)
 Main task function to control UI states. More...
 

Variables

 taskUser_05.S0_INIT = micropython.const(0)
 Maps state 0 to a more readable name.
 
 taskUser_05.S1_CMD = micropython.const(1)
 Maps state 1 to a more readable name.
 
 taskUser_05.S2_ZERO = micropython.const(2)
 Maps state 2 to a more readable name.
 
 taskUser_05.S3_PRINT = micropython.const(3)
 Maps state 3 to a more readable name.
 
 taskUser_05.S4_INPUT = micropython.const(4)
 Maps state 4 to a more readable name.
 
 taskUser_05.S5_TEST = micropython.const(5)
 Maps state 5 to a more readable name.
 
 taskUser_05.S6_SRESP = micropython.const(6)
 Maps state 6 to a more readable name.
 

Detailed Description

Manages the states for the User Interface task.

Manages the current state and executes state-related logic for all User Interface functionality. Cycles through states for processing input, zeroing encoder position, and printing output.

Author
Caleb Savard
Chris Linthacum
Date
February 2, 2022

Function Documentation

◆ printLegend()

def taskUser_05.printLegend ( )

Prints the available user key commands to the console.

Prints a table of available user input commands to the console to preview the available user key commands.

◆ taskUserFcn()

def taskUser_05.taskUserFcn ( str  task_name,
int  period,
shares.Share  roll_target_duty,
shares.Share  pitch_target_duty,
shares.Share  gFlag,
shares.Share  sFlag,
shares.Share  prop_gain,
shares.Share  deriv_gain,
shares.Share  cont_enable,
shares.Share  euler_angles,
shares.Share  angular_velocities,
shares.Share  roll_target_pos,
shares.Share  pitch_target_pos,
PrintQueue  print_queue 
)

Main task function to control UI states.

Manage different User Input states, including Init, Read_Cmd, Zero_Encoder, and Print_Data. On function run, executes the logic of the current state and if appropriate shifts state for next run of function.

Parameters
task_nameTask name for the function to help with debugging
periodPeriod to run execute function at. Period defines frequency that states are executed and refreshed.
zFlagShared data object to encapsulate the z key being pressed. Signals that encoder should be zeroed.
pFlagShared data object to encapsulate the p key being pressed. Signals to print the encoder position.
dFlagShared data object to encapsulate the d key being pressed. Signals to print the encoder delta.
vFlagShared data object to encapsulate the v key being pressed. Signals to print the encoder velocity.
roll_target_dutyShared data object to store the duty cycle for motor 1.
pitch_target_dutyShared data object to store the duty cycle for motor 2.
cFlagShared data object to encapsulate the c key being pressed. Signals to clear a motor fault.
gFlagShared data object to encapsulate the g key being pressed. Signals to begin data collection.
tFlagShared data object to encapsulate the t key being pressed. Starts the testing interface.
sFlagShared data object to encapsulate the s key being pressed. Signals to end data collection prematurely.
dataPrintShared data object to store the recorded encoder data. Stores both the position data and time values.
testDataShared data object to act as a flag to record avg velocity and to store the velocity data during testing.
target_valShared data object to hold the target velocity value
prop_gainShared data object to hold the proportional gain for the controllerTask
cont_enableShared data object to specificy whether closed-loop controller is enabled (True) or not
input_signalShared data object to store the encoder velocity @yield state If task ran, yields state the function is now in. If task did not evaluate, returns None.