api.rig

class aind_behavior_dynamic_foraging.rig.AindDynamicForagingRig(*, aind_behavior_services_pkg_version: Annotated[Literal['0.13.5'], _PydanticGeneralMetadata(pattern='^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$')] = '0.13.5', version: Literal['0.0.2-rc24'] = '0.0.2-rc24', computer_name: str, rig_name: str, data_directory: Path, triggered_camera_controller: CameraController[SpinnakerCamera], monitoring_camera_controller: CameraController[WebCamera] | None = None, harp_behavior: HarpBehavior, harp_lickometer_left: HarpLicketySplit | None = None, harp_lickometer_right: HarpLicketySplit | None = None, harp_clock_generator: HarpWhiteRabbit, harp_sound_card: DynamicForagingSoundCard, harp_sniff_detector: HarpSniffDetector | None = None, harp_environment_sensor: HarpEnvironmentSensor | None = None, manipulator: AindManipulator, calibration: RigCalibration)[source]

Bases: Rig

calibration: RigCalibration[source]
harp_behavior: HarpBehavior[source]
harp_clock_generator: HarpWhiteRabbit[source]
harp_environment_sensor: HarpEnvironmentSensor | None[source]
harp_lickometer_left: HarpLicketySplit | None[source]
harp_lickometer_right: HarpLicketySplit | None[source]
harp_sniff_detector: HarpSniffDetector | None[source]
harp_sound_card: DynamicForagingSoundCard[source]
manipulator: AindManipulator[source]
model_config = {}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

monitoring_camera_controller: CameraController[WebCamera] | None[source]
triggered_camera_controller: CameraController[SpinnakerCamera][source]
version: Literal['0.0.2-rc24'][source]
class aind_behavior_dynamic_foraging.rig.DynamicForagingSoundCard(*, device_type: Literal['SoundCard'] = 'SoundCard', calibration: SoundCardCalibration = SoundCardCalibration(go_cue=Waveform(waveform_type='sine', index=3, duration=0.1, frequency=7500.0), cs_plus=Waveform(waveform_type='sine', index=4, duration=0.1, frequency=13000.0), cs_minus=Waveform(waveform_type='white_noise', index=5, duration=0.1, frequency=None)), who_am_i: Literal[1280] = 1280, serial_number: str | None = None, port_name: str)[source]

Bases: HarpSoundCard

A calibrated sound card for the dynamic foraging rig. This is a subclass of the HarpSoundCard that includes the sound card calibration.

calibration: SoundCardCalibration[source]
model_config = {}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class aind_behavior_dynamic_foraging.rig.RigCalibration(*, water_valve_left: WaterValveCalibration, water_valve_right: WaterValveCalibration)[source]

Bases: BaseModel

Container class for calibration models. In a future release these will be moved to the respective devices

model_config = {}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

water_valve_left: WaterValveCalibration[source]
water_valve_right: WaterValveCalibration[source]
class aind_behavior_dynamic_foraging.rig.SoundCardCalibration(*, go_cue: Waveform = Waveform(waveform_type='sine', index=3, duration=0.1, frequency=7500.0), cs_plus: Waveform = Waveform(waveform_type='sine', index=4, duration=0.1, frequency=13000.0), cs_minus: Waveform = Waveform(waveform_type='white_noise', index=5, duration=0.1, frequency=None))[source]

Bases: BaseModel

Calibration model for the sound card. Contains the waveforms to play for each cue.

cs_minus: Waveform[source]
cs_plus: Waveform[source]
go_cue: Waveform[source]
model_config = {}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class aind_behavior_dynamic_foraging.rig.Waveform(*, waveform_type: Literal['sine', 'white_noise'] = 'sine', index: Annotated[int, Ge(ge=3), Le(le=31)], duration: Annotated[float, Gt(gt=0)], frequency: float | None = None)[source]

Bases: BaseModel

Model for a waveform to be played on the sound card.

duration: float[source]
frequency: float | None[source]
index: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Index of the sound to play on the sound card', metadata=[Ge(ge=3), Le(le=31)])][source]
model_config = {}[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

validate_waveform()[source]
waveform_type: Literal['sine', 'white_noise'][source]