api.rig

class aind_bci_no_movement.rig.Axis(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

NONE = 0[source]
X = 1[source]
Y = 2[source]
Z = 3[source]
pydantic model aind_bci_no_movement.rig.BciNoMovementRig[source]

Bases: AindBehaviorRigModel

Fields:
Validators:
field harp_behavior: HarpBehavior [Required][source]

Harp behavior

field harp_clock_generator: HarpClockGenerator [Required][source]

Harp clock timestamp generator gen 3

field harp_load_cell: LoadCells [Required][source]

Harp load cells

field manipulator: ZaberManipulator [Required][source]

Zaber manipulator

field monitoring_camera_controller: CameraController[WebCamera] | None = None[source]

Optional camera controller for monitoring cameras.

field networking: Networking = Networking(zmq_publisher=ZmqConnection(connection_string='@tcp://localhost:5556', topic='bci-no-movement'), zmq_subscriber=ZmqConnection(connection_string='@tcp://localhost:5557', topic='bci-no-movement'))[source]
field operation: Operation = Operation(load_cell_index=0)[source]
field triggered_camera_controller: CameraController[SpinnakerCamera] [Required][source]

Required camera controller to triggered cameras.

field version: Literal['0.0.1'] = '0.0.1'[source]
Validated by:
  • coerce_version

pydantic model aind_bci_no_movement.rig.LoadCells[source]

Bases: HarpLoadCells

Fields:
field calibration: LoadCellsCalibration [Required][source]

Load cells calibration data.

pydantic model aind_bci_no_movement.rig.Networking[source]

Bases: BaseModel

Fields:
field zmq_publisher: ZmqConnection = ZmqConnection(connection_string='@tcp://localhost:5556', topic='bci-no-movement')[source]
field zmq_subscriber: ZmqConnection = ZmqConnection(connection_string='@tcp://localhost:5557', topic='bci-no-movement')[source]
pydantic model aind_bci_no_movement.rig.Operation[source]

Bases: BaseModel

Fields:
field load_cell_index: int = 0[source]

Index of the load cell channel to use.

Constraints:
  • ge = 0

  • le = 7

pydantic model aind_bci_no_movement.rig.ZaberAxis[source]

Bases: BaseModel

Fields:
field acceleration: float | None = None[source]

Acceleration of the manipulator (mm/s2).

Constraints:
  • ge = 0

field axis_index: int [Required][source]

Motor to send the instruction to.

Constraints:
  • ge = 0

field device_index: int [Required][source]

Device number.

Constraints:
  • ge = 0

field lower_limit: float | None = None[source]

Lower limit of the manipulator (mm).

field upper_limit: float | None = None[source]

Upper limit of the manipulator (mm).

field velocity: float | None = None[source]

Maximum speed of the manipulator (mm/s).

Constraints:
  • ge = 0

pydantic model aind_bci_no_movement.rig.ZaberGenericCommand[source]

Bases: BaseModel

Fields:
field axis: int | None = None[source]

Motor to send the instruction to.

Constraints:
  • ge = 0

field command: str [Required][source]

Command to send to the manipulator.

field device: int | None = None[source]

Device number.

Constraints:
  • ge = 0

pydantic model aind_bci_no_movement.rig.ZaberManipulator[source]

Bases: BaseModel

Fields:
field com_port: str [Required][source]

COM port of the manipulator.

field generic_commands: List[ZaberGenericCommand] = [][source]

List of generic commands to send to the manipulator.

field spout_axis: Axis = Axis.X[source]

Axis of the spout.

field x_axis: ZaberAxis [Required][source]

X-axis mapping.

field y_axis: ZaberAxis [Required][source]

Y-axis mapping.

field z_axis: ZaberAxis [Required][source]

Z-axis mapping.

pydantic model aind_bci_no_movement.rig.ZmqConnection[source]

Bases: BaseModel

Fields:
field connection_string: str = '@tcp://localhost:5556'[source]

Connection string.

field topic: str = ''[source]

Topic to subscribe to.