api.rig

pydantic model aind_physiology_fip.rig.AindPhysioFipRig[source]

Bases: AindBehaviorRigModel

Complete rig configuration model for AIND FIP photometry system.

Fields:
Validators:
field camera_green_iso: FipCamera [Required][source]

Camera for the green and iso channels

field camera_red: FipCamera [Required][source]

Red camera

field cuttlefish_fip: HarpCuttlefishfip [Required][source]

CuttlefishFip board for controlling the trigger of cameras and light-sources

field light_source_blue: LightSource [Required][source]

Blue (470nm) light source

field light_source_lime: LightSource [Required][source]

Lime (560nm) light source

field light_source_uv: LightSource [Required][source]

UV (415nm) light source

field networking: Networking = Networking(zmq_publisher=ZmqConnection(connection_string='@tcp://localhost:5556', topic='fip'), zmq_subscriber=ZmqConnection(connection_string='@tcp://localhost:5557', topic='fip'))[source]

Networking settings

field roi_settings: RoiSettings | None = None[source]

Region of interest settings. Leave empty to attempt to load from local file or manually define it in the program.

field version: Literal['0.1.2-rc5'] = '0.1.2-rc5'[source]
Validated by:
  • coerce_version

pydantic model aind_physiology_fip.rig.FipCamera[source]

Bases: Device

Camera device configuration for FIP photometry system.

Fields:
Validators:

field device_type: Literal['FipCamera'] = 'FipCamera'[source]
Validated by:
  • _set_name

field gain: float = 0[source]

Gain

Constraints:
  • ge = 0

Validated by:
  • _set_name

field offset: Point2f = Point2f(x=0.0, y=0.0)[source]

Offset (px)

Validated by:
  • _set_name

field serial_number: str [Required][source]

Camera serial number

Validated by:
  • _set_name

pydantic model aind_physiology_fip.rig.FipTask[source]

Bases: BaseModel

Task configuration for FIP timing and triggering parameters.

Fields:
field camera_port: Ports [Required][source]

Port that triggers the camera.

field delta_1: int = 15650[source]

Delta 1 (us)

Constraints:
  • ge = 0

field delta_2: int = 666[source]

Delta 2 (us)

Constraints:
  • ge = 0

field delta_3: int = 300[source]

Delta 3 (us)

Constraints:
  • ge = 0

field delta_4: int = 50[source]

Delta 4 (us)

Constraints:
  • ge = 0

field events_enabled: bool = True[source]

Whether to enable events for the task. If False, the task will not trigger any events.

field light_source_port: Ports [Required][source]

Port that triggers the light source.

field mute_output: bool = False[source]

Whether to mute the output of the task. If True, the task will not trigger any outputs but timing will be preserved.

field pwm_frequency: float = 10000[source]

PWM frequency (Hz) of the light source output.

Constraints:
  • ge = 10000

pydantic model aind_physiology_fip.rig.LightSource[source]

Bases: Device

Light source device configuration with power control and timing tasks.

Fields:
Validators:
  • _validate_power » all fields

field calibration: LightSourceCalibration | None = None[source]

Calibration for the LightSource. If left empty, ‘power’ will be used as duty-cycle (0-100).

Validated by:
  • _set_name

  • _validate_power

field device_type: Literal['LightSource'] = 'LightSource'[source]
Validated by:
  • _set_name

  • _validate_power

field power: float = 0[source]

Power (mW)

Constraints:
  • ge = 0

Validated by:
  • _set_name

  • _validate_power

field task: FipTask [Required][source]

Task for the light source

Validated by:
  • _set_name

  • _validate_power

pydantic model aind_physiology_fip.rig.LightSourceCalibration[source]

Bases: Calibration

Calibration model for converting light source duty cycle to power output.

Fields:
field output: LightSourceCalibrationOutput [Required][source]
pydantic model aind_physiology_fip.rig.LightSourceCalibrationOutput[source]

Bases: BaseModel

Output of the light source calibration process.

Fields:
field power_lut: Dict[Annotated[float, FieldInfo(annotation=NoneType, required=False, default=0, description='Duty cycle (0-100%)', metadata=[Ge(ge=0), Le(le=1)])], Annotated[float, FieldInfo(annotation=NoneType, required=False, default=0, description='Power (mW)', metadata=[Ge(ge=0)])]] [Required][source]

Look-up table for LightSource power vs. duty cycle

pydantic model aind_physiology_fip.rig.Networking[source]

Bases: BaseModel

Network configuration settings for ZeroMQ communication.

Fields:
field zmq_publisher: ZmqConnection = ZmqConnection(connection_string='@tcp://localhost:5556', topic='fip')[source]
field zmq_subscriber: ZmqConnection = ZmqConnection(connection_string='@tcp://localhost:5557', topic='fip')[source]
class aind_physiology_fip.rig.Ports(value)[source]

Bases: IntFlag

Available hardware ports in the FIP cuttlefish board.

IO0 = 1[source]
IO1 = 2[source]
IO2 = 4[source]
IO3 = 8[source]
IO4 = 16[source]
IO5 = 32[source]
IO6 = 64[source]
IO7 = 128[source]
NONE = 0[source]
pydantic model aind_physiology_fip.rig.RoiSettings[source]

Bases: BaseModel

Region of Interest (ROI) settings for camera channels in the FIP system.

Fields:
field camera_green_iso_background: Circle = Circle(center=Point2f(x=10.0, y=10.0), radius=10.0)[source]

ROI to compute the background for the green/iso camera channel

field camera_green_iso_roi: List[Circle] = [Circle(center=Point2f(x=50.0, y=50.0), radius=20.0), Circle(center=Point2f(x=50.0, y=150.0), radius=20.0), Circle(center=Point2f(x=150.0, y=50.0), radius=20.0), Circle(center=Point2f(x=150.0, y=150.0), radius=20.0)][source]

ROI for the green/iso camera channel

field camera_red_background: Circle = Circle(center=Point2f(x=10.0, y=10.0), radius=10.0)[source]

ROI to compute the background for the red camera channel

field camera_red_roi: List[Circle] = [Circle(center=Point2f(x=50.0, y=50.0), radius=20.0), Circle(center=Point2f(x=50.0, y=150.0), radius=20.0), Circle(center=Point2f(x=150.0, y=50.0), radius=20.0), Circle(center=Point2f(x=150.0, y=150.0), radius=20.0)][source]

ROI for the red camera channel