Maskbits#
All statuses in jaeger are expressed as classes that subclass from enum.IntFlag
. This allows them to behave as a series of values that can be combined with bitwise operations while also containing a representation of the name associated with a bit. IntFlag
objects are ultimately just integers and can be used as such
>>> dat_init = PositionerStatusV4_1.DATUM_INITIALIZED
>>> dat_init
<PositionerStatusV4_1.DATUM_INITIALIZED: 536870912>
>>> dat_init.name
'DATUM_INITIALIZED'
>>> int(dat_init)
536870912
>>> isinstance(dat_init, int)
True
To create a new enumeration from an integer
>>> PositionerStatusV4_1(117440512)
<PositionerStatusV4_1.BETA_DISPLACEMENT_COMPLETED|ALPHA_DISPLACEMENT_COMPLETED|DISPLACEMENT_COMPLETED: 117440512>
Enumerations can be combined using bitwise operations
>>> status = PositionerStatusV4_1.DATUM_INITIALIZED | PositionerStatusV4_1.SYSTEM_INITIALIZED
<PositionerStatusV4_1.DATUM_INITIALIZED|SYSTEM_INITIALIZED: 536870913>
>>> status.active_bits
[<PositionerStatusV4_1.SYSTEM_INITIALIZED: 1>,
<PositionerStatusV4_1.DATUM_INITIALIZED: 536870912>]
>>> status & PositionerStatusV4_1.ALPHA_DISPLACEMENT_COMPLETED
<PositionerStatusV4_1.0: 0>
Maskbits API#
- class jaeger.maskbits.Maskbit(value)[source]#
Bases:
IntFlag
A maskbit enumeration. Intended for subclassing.
- property version#
The version of the flags.
- property active_bits#
Returns a list of flags that match the value.
- jaeger.maskbits.PositionerStatus#
Alias to the default positioner status flags.
- class jaeger.maskbits.CommandStatus(value)[source]#
Bases:
Maskbit
Maskbits for command status.
- DONE = 1#
- CANCELLED = 2#
- FAILED = 4#
- READY = 8#
- RUNNING = 16#
- TIMEDOUT = 32#
- property is_done#
Returns True if the command is done (completed or failed).
- property is_running#
Returns True if the command is running.
- property failed#
Returns True if the command failed (or got cancelled).
- property timed_out#
Returns True if the command timed out.
- class jaeger.maskbits.ResponseCode(value)[source]#
Bases:
IntFlag
Maskbit for the status of the bootloader.
0: All OK
1: Received parameter is out of range
2: Trajectory not accepted
3: Already in motion, cannot accept command
4: Datum not initialized
5: Incorrect amount of data in packet
6: One of the calibration modes is active:
MOTOR_CALIBRATION
,COGGING_CALIBRATION
,DATUM_CALIBRATION
,DATUM _INITIALIZATION
7: The motors are not calibrated and therefore the hall sensors can’t be used
8: A collision is detected, the flag has to be first cleared with stop trajectory
9: Hall sensors are disabled and can therefore not be used
10: Broadcast command not valid
11: Command not supported by bootloader
12: Invalid command
13: Unknown command
14: Datum not calibrated
15: Halls sensors have been disabled
- COMMAND_ACCEPTED = 0#
- VALUE_OUT_OF_RANGE = 1#
- INVALID_TRAJECTORY = 2#
- ALREADY_IN_MOTION = 3#
- DATUM_NOT_INITIALIZED = 4#
- INCORRECT_AMOUNT_OF_DATA = 5#
- CALIBRATION_MODE_ACTIVE = 6#
- MOTOR_NOT_CALIBRATED = 7#
- COLLISION_DETECTED = 8#
- HALL_SENSOR_DISABLED = 9#
- INVALID_BROADCAST_COMMAND = 10#
- INVALID_BOOTLOADER_COMMAND = 11#
- INVALID_COMMAND = 12#
- UNKNOWN_COMMAND = 13#
- DATUM_NOT_CALIBRATED = 14#
- HALL_SENSORS_DISABLED = 15#
- class jaeger.maskbits.BootloaderStatus(value)[source]#
Bases:
Maskbit
Maskbits for positioner status when in bootloader mode.
- BOOTLOADER_INIT = 1#
- BOOTLOADER_TIMEOUT = 2#
- BSETTINGS_CHANGED = 512#
- RECEIVING_NEW_FIRMWARE = 65536#
- NEW_FIRMWARE_RECEIVED = 16777216#
- NEW_FIRMWARE_CHECK_OK = 33554432#
- NEW_FIRMWARE_CHECK_BAD = 67108864#
- UNKNOWN = 1073741824#