Source code for swc.aeon.schema.foraging

"""Classes for defining foraging rig configuration models."""

from enum import StrEnum

from pydantic import Field

from swc.aeon.schema.base import BaseSchema
from swc.aeon.schema.harp import HarpOutputExpander


[docs] class UndergroundFeeder(HarpOutputExpander): """Represents control and acquisition functionality for an underground feeder module.""" pellet_delivery_retry_count: int = Field( default=2, ge=0, description="The number of times to retry a failed pellet delivery.", ) pellet_delivery_timeout: float = Field( default=1, ge=0, description="The amount of time in seconds to wait for pellet detection " "before reporting a failure.", ) wheel_radius: float = Field(default=-4.0, description="The radius of the wheel, in centimeters.")
[docs] class FeederCommand(StrEnum): """Specifies the type of command to send to an underground feeder controller.""" DELIVER_PELLET = "DeliverPellet" RESET_FEEDER = "ResetFeeder"
[docs] class CreateFeederCommand(BaseSchema): """Creates a command to send to an underground feeder controller.""" command: FeederCommand = Field( default=FeederCommand.DELIVER_PELLET, description="The command to send to the feeder device." )