Implemented saving of all beam trajetory data in alignments and focal points.
Added controller functions to set up GPIO port directions and GPIO port logic states.
Implemented shutter state switching method for controllers. ESP Controllers inititalized by default to output on GPIO port A and input on GPIO port B.
Redefined group creation command to accomodate kinematic limits of the constituent stages. Added default group ID since our controllers only support one working group.
Added Tracker class to represent a profiler on a 3D stage. Changed focal point class to return data as a dictionary.
Modified Beam class and its dependents to use tracker objects. Improved group creation routine.
Removed spurious print statements.
Changed LBP serial bit rate to 115200 baud.
Changed alignment to use new beam data. Removed height offset as it is obsolete with LBP vertical travel. Changed persistence to use gzipped files of serialized python data.
Simplified instance variables defining beams and their trajectories. Generalized search algorithm for beam to work scanning in both x directions and both z directions. Added flag to tracker to parity invert LBP x coordinate when LBP is facing in the positive z direction. Saving focus data as a named tuple. Changed focal point-based radius calculation to use new data format.
Fixed kwargs passing issue in tracker constructor.
Fixed z facing issue in tracker.
Fixed scope error on group creation when no kinematics check is performed before homing a new group.
Fixed semantics error in shutter switch command.
Improved beam finding algorithm by checking if beam is in vew before moving the stages. Also, the command to stop the stages is issued as soon as the beam is in view rather than waiting until the beam is out of view.
Specified encoding in source file.
Changed default focal point scan starting y value to speed up tests. This should be changed back when the code is complete.
Increased default acceleration values for the ILS stages to speed up the scan.
Implemented routine to quantify beam shape/distortion.
Added distortion instance variable to beam. Set distortions when beam trajectory is found.