viam.components.board
Submodules
Package Contents
Classes
Board represents a physical general purpose compute board that contains various |
- class viam.components.board.Board(name: str)[source]
Bases:
viam.components.component_base.ComponentBase
Board represents a physical general purpose compute board that contains various components such as analog readers, and digital interrupts.
This acts as an abstract base class for any drivers representing specific board implementations. This cannot be used on its own. If the
__init__()
function is overridden, it must call thesuper().__init__()
function.- class Attributes[source]
- remote: bool
Indicates whether this board is accessed over a remote connection, e.g. gRPC.
- class AnalogReader(name: str)[source]
Bases:
viam.components.component_base.ComponentBase
AnalogReader represents an analog pin reader that resides on a Board.
- abstract async read(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) int [source]
Read the current value.
- Returns:
The current value.
- Return type:
int
- classmethod from_robot(robot: viam.robot.client.RobotClient, name: str) typing_extensions.Self
Get the component named
name
from the provided robot.- Parameters:
robot (RobotClient) – The robot
name (str) – The name of the component
- Returns:
The component, if it exists on the robot
- Return type:
Self
- abstract async do_command(command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) Mapping[str, ValueTypes]
Send/Receive arbitrary commands to the Resource
- Parameters:
command (Mapping[str, ValueTypes]) – The command to execute
- Raises:
NotImplementedError – Raised if the Resource does not support arbitrary commands
- Returns:
Result of the executed command
- Return type:
Mapping[str, ValueTypes]
- async get_geometries(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None) List[viam.proto.common.Geometry]
Get all geometries associated with the Component, in their current configuration, in the frame of the Component.
- Returns:
The geometries associated with the Component.
- Return type:
List[Geometry]
- classmethod get_resource_name(name: str) viam.proto.common.ResourceName
Get the ResourceName for this Resource with the given name
- Parameters:
name (str) – The name of the Resource
- get_operation(kwargs: Mapping[str, Any]) viam.operations.Operation
Get the
Operation
associated with the currently running function.When writing custom resources, you should get the
Operation
by calling this function and check to see if it’s cancelled. If theOperation
is cancelled, then you can perform any necessary (terminating long running tasks, cleaning up connections, etc. ).- Parameters:
kwargs (Mapping[str, Any]) – The kwargs object containing the operation
- Returns:
The operation associated with this function
- Return type:
- async close()
Safely shut down the resource and prevent further use.
Close must be idempotent. Later configuration may allow a resource to be “open” again. If a resource does not want or need a close function, it is assumed that the resource does not need to retun errors when future non-Close methods are called.
- class DigitalInterrupt(name: str)[source]
Bases:
viam.components.component_base.ComponentBase
DigitalInterrupt represents a configured interrupt on the Board that when interrupted, calls the added callbacks. Post processors can be added to modify what Value it ultimately returns.
- abstract async value(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) int [source]
Get the current value of the interrupt, which is based on the type of interrupt.
- Returns:
The current value.
- Return type:
int
- abstract async tick(high: bool, nanos: int)[source]
This method is to be called either manually if the interrupt is a proxy to some real hardware interrupt or for tests.
- Parameters:
high (bool) – If the signal of the interrupt is high.
nanos (int) – Nanoseconds from an arbitrary point in time, but always increasing and always needs to be accurate. Using
time.time_ns()
would be acceptable.
- abstract async add_callback(queue: multiprocessing.Queue)[source]
Add a callback to be sent the low/high value on
tick()
.- Parameters:
queue (Queue) – The receiving queue.
- abstract async add_post_processor(processor: PostProcessor)[source]
Add a post processor that should be used to modify what is returned by
self.value()
- Parameters:
processor (PostProcessor) – The post processor to add.
- classmethod from_robot(robot: viam.robot.client.RobotClient, name: str) typing_extensions.Self
Get the component named
name
from the provided robot.- Parameters:
robot (RobotClient) – The robot
name (str) – The name of the component
- Returns:
The component, if it exists on the robot
- Return type:
Self
- abstract async do_command(command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) Mapping[str, ValueTypes]
Send/Receive arbitrary commands to the Resource
- Parameters:
command (Mapping[str, ValueTypes]) – The command to execute
- Raises:
NotImplementedError – Raised if the Resource does not support arbitrary commands
- Returns:
Result of the executed command
- Return type:
Mapping[str, ValueTypes]
- async get_geometries(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None) List[viam.proto.common.Geometry]
Get all geometries associated with the Component, in their current configuration, in the frame of the Component.
- Returns:
The geometries associated with the Component.
- Return type:
List[Geometry]
- classmethod get_resource_name(name: str) viam.proto.common.ResourceName
Get the ResourceName for this Resource with the given name
- Parameters:
name (str) – The name of the Resource
- get_operation(kwargs: Mapping[str, Any]) viam.operations.Operation
Get the
Operation
associated with the currently running function.When writing custom resources, you should get the
Operation
by calling this function and check to see if it’s cancelled. If theOperation
is cancelled, then you can perform any necessary (terminating long running tasks, cleaning up connections, etc. ).- Parameters:
kwargs (Mapping[str, Any]) – The kwargs object containing the operation
- Returns:
The operation associated with this function
- Return type:
- async close()
Safely shut down the resource and prevent further use.
Close must be idempotent. Later configuration may allow a resource to be “open” again. If a resource does not want or need a close function, it is assumed that the resource does not need to retun errors when future non-Close methods are called.
- class GPIOPin(name: str)[source]
Bases:
viam.components.component_base.ComponentBase
Abstract representation of an individual GPIO pin on a board
- abstract async set(high: bool, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs)[source]
Set the pin to either low or high.
- Parameters:
high (bool) – When true, sets the pin to high. When false, sets the pin to low.
- abstract async get(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) bool [source]
Get the high/low state of the pin.
- Returns:
Indicates if the state of the pin is high.
- Return type:
bool
- abstract async get_pwm(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) float [source]
Get the pin’s given duty cycle.
- Returns:
The duty cycle.
- Return type:
float
- abstract async set_pwm(duty_cycle: float, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs)[source]
Set the pin to the given
duty_cycle
.- Parameters:
duty_cycle (float) – The duty cycle.
- abstract async get_pwm_frequency(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) int [source]
Get the PWM frequency of the pin.
- Returns:
The PWM frequency.
- Return type:
int
- abstract async set_pwm_frequency(frequency: int, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs)[source]
Set the pin to the given PWM
frequency
(in Hz). Whenfrequency
is 0, it will use the board’s default PWM frequency.- Parameters:
frequency (int) – The frequency, in Hz.
- classmethod from_robot(robot: viam.robot.client.RobotClient, name: str) typing_extensions.Self
Get the component named
name
from the provided robot.- Parameters:
robot (RobotClient) – The robot
name (str) – The name of the component
- Returns:
The component, if it exists on the robot
- Return type:
Self
- abstract async do_command(command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) Mapping[str, ValueTypes]
Send/Receive arbitrary commands to the Resource
- Parameters:
command (Mapping[str, ValueTypes]) – The command to execute
- Raises:
NotImplementedError – Raised if the Resource does not support arbitrary commands
- Returns:
Result of the executed command
- Return type:
Mapping[str, ValueTypes]
- async get_geometries(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None) List[viam.proto.common.Geometry]
Get all geometries associated with the Component, in their current configuration, in the frame of the Component.
- Returns:
The geometries associated with the Component.
- Return type:
List[Geometry]
- classmethod get_resource_name(name: str) viam.proto.common.ResourceName
Get the ResourceName for this Resource with the given name
- Parameters:
name (str) – The name of the Resource
- get_operation(kwargs: Mapping[str, Any]) viam.operations.Operation
Get the
Operation
associated with the currently running function.When writing custom resources, you should get the
Operation
by calling this function and check to see if it’s cancelled. If theOperation
is cancelled, then you can perform any necessary (terminating long running tasks, cleaning up connections, etc. ).- Parameters:
kwargs (Mapping[str, Any]) – The kwargs object containing the operation
- Returns:
The operation associated with this function
- Return type:
- async close()
Safely shut down the resource and prevent further use.
Close must be idempotent. Later configuration may allow a resource to be “open” again. If a resource does not want or need a close function, it is assumed that the resource does not need to retun errors when future non-Close methods are called.
- SUBTYPE: Final
- abstract async analog_reader_by_name(name: str) AnalogReader [source]
Get an AnalogReader by
name
.- Parameters:
name (str) – Name of the analog reader to be retrieved.
- Returns:
The analog reader.
- Return type:
- abstract async digital_interrupt_by_name(name: str) DigitalInterrupt [source]
Get a DigitalInterrupt by
name
.- Parameters:
name (str) – Name of the digital interrupt.
- Returns:
the digital interrupt.
- Return type:
- abstract async gpio_pin_by_name(name: str) GPIOPin [source]
Get a GPIO Pin by
name
.- Parameters:
name (str) – Name of the GPIO pin.
- Returns:
the pin.
- Return type:
- abstract async analog_reader_names() List[str] [source]
Get the names of all known analog readers.
- Returns:
The names of the analog readers..
- Return type:
List[str]
- abstract async digital_interrupt_names() List[str] [source]
Get the names of all known digital interrupts.
- Returns:
The names of the digital interrupts.
- Return type:
List[str]
- abstract async status(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) viam.proto.common.BoardStatus [source]
Return the current status of the board.
- Returns:
the status.
- Return type:
- abstract async set_power_mode(mode: viam.proto.component.board.PowerMode.ValueType, duration: Optional[datetime.timedelta] = None, *, timeout: Optional[float] = None, **kwargs)[source]
Set the board to the indicated power mode.
- Parameters:
mode – the desired power mode
- abstract async write_analog(pin: str, value: int, *, timeout: Optional[float] = None, **kwargs)[source]
Write an analog value to a pin on the board.
- Parameters:
pin (str) – name of the pin.
value (int) – value to write.
- classmethod from_robot(robot: viam.robot.client.RobotClient, name: str) typing_extensions.Self
Get the component named
name
from the provided robot.- Parameters:
robot (RobotClient) – The robot
name (str) – The name of the component
- Returns:
The component, if it exists on the robot
- Return type:
Self
- abstract async do_command(command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) Mapping[str, ValueTypes]
Send/Receive arbitrary commands to the Resource
- Parameters:
command (Mapping[str, ValueTypes]) – The command to execute
- Raises:
NotImplementedError – Raised if the Resource does not support arbitrary commands
- Returns:
Result of the executed command
- Return type:
Mapping[str, ValueTypes]
- async get_geometries(*, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None) List[viam.proto.common.Geometry]
Get all geometries associated with the Component, in their current configuration, in the frame of the Component.
- Returns:
The geometries associated with the Component.
- Return type:
List[Geometry]
- classmethod get_resource_name(name: str) viam.proto.common.ResourceName
Get the ResourceName for this Resource with the given name
- Parameters:
name (str) – The name of the Resource
- get_operation(kwargs: Mapping[str, Any]) viam.operations.Operation
Get the
Operation
associated with the currently running function.When writing custom resources, you should get the
Operation
by calling this function and check to see if it’s cancelled. If theOperation
is cancelled, then you can perform any necessary (terminating long running tasks, cleaning up connections, etc. ).- Parameters:
kwargs (Mapping[str, Any]) – The kwargs object containing the operation
- Returns:
The operation associated with this function
- Return type:
- async close()
Safely shut down the resource and prevent further use.
Close must be idempotent. Later configuration may allow a resource to be “open” again. If a resource does not want or need a close function, it is assumed that the resource does not need to retun errors when future non-Close methods are called.