viam.components.button
Submodules
Classes
| Button represents a device that can be pushed. | 
Package Contents
- class viam.components.button.Button(name: str, *, logger: logging.Logger | None = None)[source]
- Bases: - viam.components.component_base.ComponentBase- Button represents a device that can be pushed. - This acts as an abstract base class for any drivers representing specific button implementations. This cannot be used on its own. If the - __init__()function is overridden, it must call the- super().__init__()function.- from viam.components.button import Button - For more information, see Button component <https://docs.viam.com/dev/reference/apis/components/button/> _. - API: Final
- The API of the Resource 
 - abstract push(*, extra: Mapping[str, Any] | None = None, timeout: float | None = None, **kwargs) → None[source]
- Async:
 - Push the button. - my_button = Button.from_robot(robot=machine, name="my_button") # Push the button await my_button.push() - For more information, see Button component <https://docs.viam.com/dev/reference/apis/components/button/> _. 
 - classmethod from_robot(robot: viam.robot.client.RobotClient, name: str) → typing_extensions.Self
- Get the component named - namefrom 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 do_command(command: Mapping[str, ValueTypes], *, timeout: float | None = None, **kwargs) → Mapping[str, ValueTypes]
- Async:
 - Send/Receive arbitrary commands to the Resource - command = {"cmd": "test", "data1": 500} result = await component.do_command(command) - 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: Dict[str, Any] | None = None, timeout: float | None = None) → Sequence[viam.proto.common.Geometry]
- Get all geometries associated with the component, in their current configuration, in the frame of the component. - geometries = await component.get_geometries() if geometries: # Get the center of the first geometry print(f"Pose of the first geometry's centerpoint: {geometries[0].center}") - 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 - # Can be used with any resource, using an arm as an example my_arm_name = Arm.get_resource_name("my_arm") - Parameters:
- name (str) – The name of the Resource 
- Returns:
- The ResourceName of this Resource 
- Return type:
 
 - get_operation(kwargs: Mapping[str, Any]) → viam.operations.Operation
- Get the - Operationassociated with the currently running function.- When writing custom resources, you should get the - Operationby calling this function and check to see if it’s cancelled. If the- Operationis 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 return errors when future non-Close methods are called. - await component.close()