viam-sdk 0.3.0__py3-none-linux_armv6l.whl → 0.66.0__py3-none-linux_armv6l.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of viam-sdk might be problematic. Click here for more details.
- viam/__init__.py +29 -2
- viam/app/_logs.py +34 -0
- viam/app/app_client.py +2696 -0
- viam/app/billing_client.py +185 -0
- viam/app/data_client.py +2231 -0
- viam/app/ml_training_client.py +249 -0
- viam/app/provisioning_client.py +93 -0
- viam/app/viam_client.py +275 -0
- viam/components/arm/__init__.py +3 -26
- viam/components/arm/arm.py +123 -8
- viam/components/arm/client.py +37 -24
- viam/components/arm/service.py +35 -32
- viam/components/audio_in/__init__.py +24 -0
- viam/components/audio_in/audio_in.py +74 -0
- viam/components/audio_in/client.py +76 -0
- viam/components/audio_in/service.py +83 -0
- viam/components/audio_out/__init__.py +21 -0
- viam/components/audio_out/audio_out.py +72 -0
- viam/components/audio_out/client.py +67 -0
- viam/components/audio_out/service.py +63 -0
- viam/components/base/__init__.py +6 -11
- viam/components/base/base.py +134 -8
- viam/components/base/client.py +51 -23
- viam/components/base/service.py +33 -30
- viam/components/board/__init__.py +3 -12
- viam/components/board/board.py +247 -91
- viam/components/board/client.py +149 -83
- viam/components/board/service.py +63 -33
- viam/components/button/__init__.py +10 -0
- viam/components/button/button.py +41 -0
- viam/components/button/client.py +52 -0
- viam/components/button/service.py +46 -0
- viam/components/camera/__init__.py +3 -3
- viam/components/camera/camera.py +62 -27
- viam/components/camera/client.py +59 -27
- viam/components/camera/service.py +42 -65
- viam/components/component_base.py +28 -5
- viam/components/encoder/__init__.py +1 -1
- viam/components/encoder/client.py +25 -14
- viam/components/encoder/encoder.py +48 -10
- viam/components/encoder/service.py +14 -18
- viam/components/gantry/__init__.py +1 -13
- viam/components/gantry/client.py +80 -25
- viam/components/gantry/gantry.py +123 -9
- viam/components/gantry/service.py +51 -29
- viam/components/generic/__init__.py +1 -1
- viam/components/generic/client.py +21 -8
- viam/components/generic/generic.py +10 -2
- viam/components/generic/service.py +12 -7
- viam/components/gripper/__init__.py +3 -13
- viam/components/gripper/client.py +69 -21
- viam/components/gripper/gripper.py +123 -3
- viam/components/gripper/service.py +44 -22
- viam/components/input/__init__.py +1 -14
- viam/components/input/client.py +55 -23
- viam/components/input/input.py +106 -3
- viam/components/input/service.py +16 -21
- viam/components/motor/__init__.py +1 -21
- viam/components/motor/client.py +56 -33
- viam/components/motor/motor.py +127 -4
- viam/components/motor/service.py +33 -44
- viam/components/movement_sensor/__init__.py +1 -1
- viam/components/movement_sensor/client.py +102 -45
- viam/components/movement_sensor/movement_sensor.py +130 -61
- viam/components/movement_sensor/service.py +38 -41
- viam/components/pose_tracker/__init__.py +1 -1
- viam/components/pose_tracker/client.py +18 -7
- viam/components/pose_tracker/pose_tracker.py +4 -2
- viam/components/pose_tracker/service.py +12 -10
- viam/components/power_sensor/__init__.py +17 -0
- viam/components/power_sensor/client.py +86 -0
- viam/components/power_sensor/power_sensor.py +104 -0
- viam/components/power_sensor/service.py +72 -0
- viam/components/sensor/__init__.py +2 -1
- viam/components/sensor/client.py +26 -10
- viam/components/sensor/sensor.py +22 -4
- viam/components/sensor/service.py +20 -11
- viam/components/servo/__init__.py +1 -13
- viam/components/servo/client.py +47 -21
- viam/components/servo/service.py +15 -22
- viam/components/servo/servo.py +61 -2
- viam/components/switch/__init__.py +10 -0
- viam/components/switch/client.py +83 -0
- viam/components/switch/service.py +72 -0
- viam/components/switch/switch.py +98 -0
- viam/errors.py +10 -0
- viam/gen/app/agent/v1/agent_grpc.py +29 -0
- viam/gen/app/agent/v1/agent_pb2.py +47 -0
- viam/gen/app/agent/v1/agent_pb2.pyi +280 -0
- viam/gen/app/cloudslam/v1/__init__.py +0 -0
- viam/gen/app/cloudslam/v1/cloud_slam_grpc.py +70 -0
- viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +54 -0
- viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +384 -0
- viam/gen/app/data/v1/data_grpc.py +197 -8
- viam/gen/app/data/v1/data_pb2.py +238 -99
- viam/gen/app/data/v1/data_pb2.pyi +1222 -259
- viam/gen/app/datapipelines/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
- viam/gen/app/dataset/__init__.py +0 -0
- viam/gen/app/dataset/v1/__init__.py +0 -0
- viam/gen/app/dataset/v1/dataset_grpc.py +68 -0
- viam/gen/app/dataset/v1/dataset_pb2.py +44 -0
- viam/gen/app/dataset/v1/dataset_pb2.pyi +214 -0
- viam/gen/app/datasync/v1/data_sync_grpc.py +21 -4
- viam/gen/app/datasync/v1/data_sync_pb2.py +62 -128
- viam/gen/app/datasync/v1/data_sync_pb2.pyi +156 -199
- viam/gen/app/mlinference/__init__.py +0 -0
- viam/gen/app/mlinference/v1/__init__.py +0 -0
- viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
- viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
- viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
- viam/gen/app/mltraining/v1/ml_training_grpc.py +51 -3
- viam/gen/app/mltraining/v1/ml_training_pb2.py +135 -58
- viam/gen/app/mltraining/v1/ml_training_pb2.pyi +328 -39
- viam/gen/app/packages/v1/packages_grpc.py +15 -1
- viam/gen/app/packages/v1/packages_pb2.py +44 -64
- viam/gen/app/packages/v1/packages_pb2.pyi +75 -85
- viam/gen/app/v1/app_grpc.py +644 -3
- viam/gen/app/v1/app_pb2.py +695 -295
- viam/gen/app/v1/app_pb2.pyi +4488 -635
- viam/gen/app/v1/billing_grpc.py +53 -11
- viam/gen/app/v1/billing_pb2.py +94 -39
- viam/gen/app/v1/billing_pb2.pyi +391 -191
- viam/gen/app/v1/end_user_grpc.py +59 -0
- viam/gen/app/v1/end_user_pb2.py +55 -0
- viam/gen/app/v1/end_user_pb2.pyi +181 -0
- viam/gen/app/v1/robot_grpc.py +16 -1
- viam/gen/app/v1/robot_pb2.py +122 -94
- viam/gen/app/v1/robot_pb2.pyi +463 -123
- viam/gen/common/v1/common_pb2.py +87 -58
- viam/gen/common/v1/common_pb2.pyi +456 -149
- viam/gen/component/arm/v1/arm_grpc.py +58 -2
- viam/gen/component/arm/v1/arm_pb2.py +68 -51
- viam/gen/component/arm/v1/arm_pb2.pyi +108 -42
- viam/gen/component/audioin/__init__.py +0 -0
- viam/gen/component/audioin/v1/__init__.py +0 -0
- viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
- viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
- viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
- viam/gen/component/audioinput/v1/audioinput_grpc.py +25 -2
- viam/gen/component/audioinput/v1/audioinput_pb2.py +36 -31
- viam/gen/component/audioinput/v1/audioinput_pb2.pyi +22 -22
- viam/gen/component/audioout/__init__.py +0 -0
- viam/gen/component/audioout/v1/__init__.py +0 -0
- viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
- viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
- viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
- viam/gen/component/base/v1/base_grpc.py +42 -2
- viam/gen/component/base/v1/base_pb2.py +58 -47
- viam/gen/component/base/v1/base_pb2.pyi +65 -30
- viam/gen/component/board/v1/board_grpc.py +59 -7
- viam/gen/component/board/v1/board_pb2.py +94 -73
- viam/gen/component/board/v1/board_pb2.pyi +165 -68
- viam/gen/component/button/__init__.py +0 -0
- viam/gen/component/button/v1/__init__.py +0 -0
- viam/gen/component/button/v1/button_grpc.py +38 -0
- viam/gen/component/button/v1/button_pb2.py +28 -0
- viam/gen/component/button/v1/button_pb2.pyi +39 -0
- viam/gen/component/camera/v1/camera_grpc.py +38 -2
- viam/gen/component/camera/v1/camera_pb2.py +60 -43
- viam/gen/component/camera/v1/camera_pb2.pyi +191 -37
- viam/gen/component/encoder/v1/encoder_grpc.py +25 -2
- viam/gen/component/encoder/v1/encoder_pb2.py +36 -31
- viam/gen/component/encoder/v1/encoder_pb2.pyi +15 -15
- viam/gen/component/gantry/v1/gantry_grpc.py +47 -2
- viam/gen/component/gantry/v1/gantry_pb2.py +56 -43
- viam/gen/component/gantry/v1/gantry_pb2.pyi +67 -31
- viam/gen/component/generic/v1/generic_grpc.py +16 -2
- viam/gen/component/generic/v1/generic_pb2.py +16 -11
- viam/gen/component/gripper/v1/gripper_grpc.py +44 -2
- viam/gen/component/gripper/v1/gripper_pb2.py +48 -35
- viam/gen/component/gripper/v1/gripper_pb2.pyi +62 -24
- viam/gen/component/inputcontroller/v1/input_controller_grpc.py +28 -2
- viam/gen/component/inputcontroller/v1/input_controller_pb2.py +46 -41
- viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +32 -36
- viam/gen/component/motor/v1/motor_grpc.py +51 -2
- viam/gen/component/motor/v1/motor_pb2.py +78 -67
- viam/gen/component/motor/v1/motor_pb2.pyi +75 -46
- viam/gen/component/movementsensor/v1/movementsensor_grpc.py +48 -2
- viam/gen/component/movementsensor/v1/movementsensor_pb2.py +70 -63
- viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +84 -57
- viam/gen/component/posetracker/v1/pose_tracker_grpc.py +19 -2
- viam/gen/component/posetracker/v1/pose_tracker_pb2.py +26 -21
- viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +9 -13
- viam/gen/component/powersensor/__init__.py +0 -0
- viam/gen/component/powersensor/v1/__init__.py +0 -0
- viam/gen/component/powersensor/v1/powersensor_grpc.py +62 -0
- viam/gen/component/powersensor/v1/powersensor_pb2.py +42 -0
- viam/gen/component/powersensor/v1/powersensor_pb2.pyi +124 -0
- viam/gen/component/sensor/v1/sensor_grpc.py +21 -5
- viam/gen/component/sensor/v1/sensor_pb2.py +18 -22
- viam/gen/component/sensor/v1/sensor_pb2.pyi +1 -69
- viam/gen/component/servo/v1/servo_grpc.py +28 -2
- viam/gen/component/servo/v1/servo_pb2.py +42 -37
- viam/gen/component/servo/v1/servo_pb2.pyi +22 -26
- viam/gen/component/switch/__init__.py +0 -0
- viam/gen/component/switch/v1/__init__.py +0 -0
- viam/gen/component/switch/v1/switch_grpc.py +54 -0
- viam/gen/component/switch/v1/switch_pb2.py +40 -0
- viam/gen/component/switch/v1/switch_pb2.pyi +116 -0
- viam/gen/component/testecho/v1/testecho_grpc.py +15 -0
- viam/gen/component/testecho/v1/testecho_pb2.py +29 -26
- viam/gen/component/testecho/v1/testecho_pb2.pyi +16 -20
- viam/gen/module/v1/module_grpc.py +18 -0
- viam/gen/module/v1/module_pb2.py +36 -33
- viam/gen/module/v1/module_pb2.pyi +39 -34
- viam/gen/opentelemetry/__init__.py +0 -0
- viam/gen/opentelemetry/proto/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
- viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
- viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
- viam/gen/proto/rpc/examples/echo/v1/echo_grpc.py +12 -0
- viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +25 -22
- viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +13 -17
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_grpc.py +12 -0
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +23 -20
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +13 -17
- viam/gen/proto/rpc/v1/auth_grpc.py +11 -0
- viam/gen/proto/rpc/v1/auth_pb2.py +27 -24
- viam/gen/proto/rpc/v1/auth_pb2.pyi +12 -16
- viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +35 -32
- viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +37 -41
- viam/gen/proto/rpc/webrtc/v1/signaling_grpc.py +15 -0
- viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +62 -57
- viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +78 -69
- viam/gen/provisioning/__init__.py +0 -0
- viam/gen/provisioning/v1/__init__.py +0 -0
- viam/gen/provisioning/v1/provisioning_grpc.py +59 -0
- viam/gen/provisioning/v1/provisioning_pb2.py +45 -0
- viam/gen/provisioning/v1/provisioning_pb2.pyi +229 -0
- viam/gen/robot/v1/robot_grpc.py +144 -15
- viam/gen/robot/v1/robot_pb2.py +193 -119
- viam/gen/robot/v1/robot_pb2.pyi +565 -137
- viam/gen/service/datamanager/v1/data_manager_grpc.py +20 -2
- viam/gen/service/datamanager/v1/data_manager_pb2.py +27 -17
- viam/gen/service/datamanager/v1/data_manager_pb2.pyi +52 -10
- viam/gen/service/discovery/__init__.py +0 -0
- viam/gen/service/discovery/v1/__init__.py +0 -0
- viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
- viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
- viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
- viam/gen/service/generic/__init__.py +0 -0
- viam/gen/service/generic/v1/__init__.py +0 -0
- viam/gen/service/generic/v1/generic_grpc.py +29 -0
- viam/gen/service/generic/v1/generic_pb2.py +21 -0
- viam/gen/service/generic/v1/generic_pb2.pyi +6 -0
- viam/gen/service/mlmodel/v1/mlmodel_grpc.py +9 -0
- viam/gen/service/mlmodel/v1/mlmodel_pb2.py +76 -29
- viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +307 -28
- viam/gen/service/motion/v1/motion_grpc.py +42 -4
- viam/gen/service/motion/v1/motion_pb2.py +119 -51
- viam/gen/service/motion/v1/motion_pb2.pyi +595 -120
- viam/gen/service/navigation/v1/navigation_grpc.py +49 -1
- viam/gen/service/navigation/v1/navigation_pb2.py +76 -51
- viam/gen/service/navigation/v1/navigation_pb2.pyi +188 -33
- viam/gen/service/sensors/v1/sensors_grpc.py +12 -0
- viam/gen/service/sensors/v1/sensors_pb2.py +60 -29
- viam/gen/service/sensors/v1/sensors_pb2.pyi +18 -21
- viam/gen/service/shell/v1/shell_grpc.py +27 -1
- viam/gen/service/shell/v1/shell_pb2.py +37 -15
- viam/gen/service/shell/v1/shell_pb2.pyi +260 -7
- viam/gen/service/slam/v1/slam_grpc.py +24 -2
- viam/gen/service/slam/v1/slam_pb2.py +44 -30
- viam/gen/service/slam/v1/slam_pb2.pyi +128 -27
- viam/gen/service/video/__init__.py +0 -0
- viam/gen/service/video/v1/__init__.py +0 -0
- viam/gen/service/video/v1/video_grpc.py +39 -0
- viam/gen/service/video/v1/video_pb2.py +29 -0
- viam/gen/service/video/v1/video_pb2.pyi +72 -0
- viam/gen/service/vision/v1/vision_grpc.py +39 -1
- viam/gen/service/vision/v1/vision_pb2.py +61 -45
- viam/gen/service/vision/v1/vision_pb2.pyi +180 -41
- viam/gen/service/worldstatestore/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
- viam/gen/stream/__init__.py +0 -0
- viam/gen/stream/v1/__init__.py +0 -0
- viam/gen/stream/v1/stream_grpc.py +59 -0
- viam/gen/stream/v1/stream_pb2.py +39 -0
- viam/gen/stream/v1/stream_pb2.pyi +161 -0
- viam/gen/tagger/v1/tagger_pb2.py +9 -8
- viam/logging.py +160 -17
- viam/media/__init__.py +0 -9
- viam/media/audio.py +22 -10
- viam/media/utils/__init__.py +0 -0
- viam/media/utils/pil/__init__.py +55 -0
- viam/media/{viam_rgba_plugin.py → utils/pil/viam_rgba_plugin.py} +10 -16
- viam/media/viam_rgba.py +10 -0
- viam/media/video.py +197 -73
- viam/module/module.py +191 -44
- viam/module/resource_data_consumer.py +41 -0
- viam/module/service.py +9 -1
- viam/module/types.py +4 -5
- viam/operations.py +4 -3
- viam/proto/app/__init__.py +361 -5
- viam/proto/app/agent/__init__.py +28 -0
- viam/proto/app/billing.py +51 -27
- viam/proto/app/cloudslam/__init__.py +48 -0
- viam/proto/app/data/__init__.py +103 -17
- viam/proto/app/datapipelines/__init__.py +56 -0
- viam/proto/app/dataset/__init__.py +40 -0
- viam/proto/app/datasync/__init__.py +11 -5
- viam/proto/app/end_user.py +34 -0
- viam/proto/app/mlinference/__init__.py +15 -0
- viam/proto/app/mltraining/__init__.py +25 -1
- viam/proto/app/packages/__init__.py +3 -3
- viam/proto/app/robot.py +19 -1
- viam/proto/common/__init__.py +35 -8
- viam/proto/component/arm/__init__.py +9 -1
- viam/proto/component/audioin/__init__.py +16 -0
- viam/proto/component/audioinput/__init__.py +3 -1
- viam/proto/component/audioout/__init__.py +15 -0
- viam/proto/component/base/__init__.py +7 -1
- viam/proto/component/board/__init__.py +13 -5
- viam/proto/component/button/__init__.py +15 -0
- viam/proto/component/camera/__init__.py +9 -1
- viam/proto/component/encoder/__init__.py +3 -1
- viam/proto/component/gantry/__init__.py +7 -1
- viam/proto/component/generic/__init__.py +3 -1
- viam/proto/component/gripper/__init__.py +7 -1
- viam/proto/component/inputcontroller/__init__.py +7 -1
- viam/proto/component/motor/__init__.py +7 -1
- viam/proto/component/movementsensor/__init__.py +7 -1
- viam/proto/component/posetracker/__init__.py +7 -1
- viam/proto/component/powersensor/__init__.py +30 -0
- viam/proto/component/sensor/__init__.py +3 -4
- viam/proto/component/servo/__init__.py +3 -1
- viam/proto/component/switch/__init__.py +26 -0
- viam/proto/component/testecho/__init__.py +3 -1
- viam/proto/module/__init__.py +3 -1
- viam/proto/opentelemetry/__init__.py +0 -0
- viam/proto/opentelemetry/proto/__init__.py +0 -0
- viam/proto/opentelemetry/proto/common/__init__.py +15 -0
- viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
- viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
- viam/proto/provisioning/__init__.py +42 -0
- viam/proto/robot/__init__.py +57 -9
- viam/proto/rpc/auth.py +11 -1
- viam/proto/rpc/examples/echo/__init__.py +3 -1
- viam/proto/rpc/examples/echoresource/__init__.py +7 -1
- viam/proto/rpc/webrtc/grpc.py +3 -1
- viam/proto/rpc/webrtc/signaling.py +5 -1
- viam/proto/service/datamanager/__init__.py +15 -2
- viam/proto/service/discovery/__init__.py +15 -0
- viam/proto/service/generic/__init__.py +12 -0
- viam/proto/service/mlmodel/__init__.py +27 -1
- viam/proto/service/motion/__init__.py +35 -5
- viam/proto/service/navigation/__init__.py +19 -1
- viam/proto/service/sensors/__init__.py +3 -1
- viam/proto/service/shell/__init__.py +25 -2
- viam/proto/service/slam/__init__.py +13 -1
- viam/proto/service/video/__init__.py +15 -0
- viam/proto/service/vision/__init__.py +11 -1
- viam/proto/service/worldstatestore/__init__.py +32 -0
- viam/proto/stream/__init__.py +36 -0
- viam/py.typed +0 -0
- viam/resource/base.py +45 -8
- viam/resource/easy_resource.py +149 -0
- viam/resource/manager.py +35 -14
- viam/resource/registry.py +40 -52
- viam/resource/rpc_client_base.py +33 -1
- viam/resource/rpc_service_base.py +15 -8
- viam/resource/types.py +39 -26
- viam/robot/client.py +458 -91
- viam/robot/service.py +13 -107
- viam/rpc/dial.py +133 -15
- viam/rpc/libviam_rust_utils.so +0 -0
- viam/rpc/server.py +59 -15
- viam/rpc/types.py +2 -4
- viam/services/discovery/__init__.py +12 -0
- viam/services/discovery/client.py +55 -0
- viam/services/discovery/discovery.py +52 -0
- viam/services/discovery/service.py +43 -0
- viam/services/generic/__init__.py +18 -0
- viam/services/generic/client.py +58 -0
- viam/services/generic/generic.py +58 -0
- viam/services/generic/service.py +29 -0
- viam/services/mlmodel/__init__.py +15 -1
- viam/services/mlmodel/client.py +20 -15
- viam/services/mlmodel/mlmodel.py +44 -7
- viam/services/mlmodel/service.py +9 -13
- viam/services/mlmodel/utils.py +101 -0
- viam/services/motion/__init__.py +15 -3
- viam/services/motion/client.py +109 -150
- viam/services/motion/motion.py +380 -0
- viam/services/motion/service.py +132 -0
- viam/services/navigation/__init__.py +11 -0
- viam/services/navigation/client.py +99 -0
- viam/services/navigation/navigation.py +250 -0
- viam/services/navigation/service.py +137 -0
- viam/services/service_base.py +43 -4
- viam/services/service_client_base.py +4 -4
- viam/services/slam/__init__.py +4 -1
- viam/services/slam/client.py +21 -11
- viam/services/slam/service.py +16 -19
- viam/services/slam/slam.py +66 -5
- viam/services/vision/__init__.py +8 -0
- viam/services/vision/client.py +115 -111
- viam/services/vision/service.py +143 -0
- viam/services/vision/vision.py +317 -0
- viam/services/worldstatestore/__init__.py +18 -0
- viam/services/worldstatestore/client.py +94 -0
- viam/services/worldstatestore/service.py +55 -0
- viam/services/worldstatestore/worldstatestore.py +90 -0
- viam/sessions_client.py +254 -0
- viam/streams.py +44 -0
- viam/utils.py +143 -15
- viam/version_metadata.py +4 -0
- viam_sdk-0.66.0.dist-info/METADATA +157 -0
- viam_sdk-0.66.0.dist-info/RECORD +531 -0
- {viam_sdk-0.3.0.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
- viam/components/audio_input/__init__.py +0 -18
- viam/components/audio_input/audio_input.py +0 -79
- viam/components/audio_input/client.py +0 -60
- viam/components/audio_input/service.py +0 -118
- viam/components/types.py +0 -5
- viam/gen/app/model/v1/model_grpc.py +0 -39
- viam/gen/app/model/v1/model_pb2.py +0 -71
- viam/gen/app/model/v1/model_pb2.pyi +0 -285
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_grpc.py +0 -21
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.py +0 -18
- viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.pyi +0 -49
- viam/media/media.py +0 -53
- viam/proto/app/model/__init__.py +0 -40
- viam/proto/rpc/examples/fileupload/__init__.py +0 -13
- viam/services/sensors/__init__.py +0 -5
- viam/services/sensors/client.py +0 -63
- viam_sdk-0.3.0.dist-info/LICENSE +0 -202
- viam_sdk-0.3.0.dist-info/METADATA +0 -122
- viam_sdk-0.3.0.dist-info/RECORD +0 -372
- /viam/{gen/app/model → app}/__init__.py +0 -0
- /viam/gen/app/{model/v1 → agent}/__init__.py +0 -0
- /viam/gen/{proto/rpc/examples/fileupload → app/agent/v1}/__init__.py +0 -0
- /viam/gen/{proto/rpc/examples/fileupload/v1 → app/cloudslam}/__init__.py +0 -0
- /LICENSE → /viam_sdk-0.66.0.dist-info/licenses/LICENSE +0 -0
viam/components/board/board.py
CHANGED
|
@@ -1,117 +1,180 @@
|
|
|
1
1
|
import abc
|
|
2
|
-
|
|
2
|
+
import sys
|
|
3
3
|
from datetime import timedelta
|
|
4
|
-
from
|
|
5
|
-
from typing import Any, Callable, Dict, Final, List, Optional
|
|
4
|
+
from typing import Any, Dict, Final, List, Optional
|
|
6
5
|
|
|
7
|
-
from viam.proto.
|
|
8
|
-
from viam.
|
|
9
|
-
from viam.
|
|
6
|
+
from viam.proto.component.board import PowerMode, ReadAnalogReaderResponse, StreamTicksResponse
|
|
7
|
+
from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT
|
|
8
|
+
from viam.streams import Stream
|
|
10
9
|
|
|
11
10
|
from ..component_base import ComponentBase
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
if sys.version_info >= (3, 10):
|
|
13
|
+
from typing import TypeAlias
|
|
14
|
+
else:
|
|
15
|
+
from typing_extensions import TypeAlias
|
|
16
|
+
|
|
17
|
+
Tick = StreamTicksResponse
|
|
18
|
+
TickStream = Stream[Tick]
|
|
14
19
|
|
|
15
20
|
|
|
16
21
|
class Board(ComponentBase):
|
|
17
22
|
"""
|
|
18
23
|
Board represents a physical general purpose compute board that contains various
|
|
19
|
-
components such as analog readers, and digital interrupts.
|
|
24
|
+
components such as analog readers/writers, and digital interrupts.
|
|
20
25
|
|
|
21
26
|
This acts as an abstract base class for any drivers representing specific
|
|
22
27
|
board implementations. This cannot be used on its own. If the ``__init__()`` function is
|
|
23
28
|
overridden, it must call the ``super().__init__()`` function.
|
|
29
|
+
|
|
30
|
+
::
|
|
31
|
+
|
|
32
|
+
from viam.components.board import Board
|
|
33
|
+
|
|
34
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/>`_.
|
|
24
35
|
"""
|
|
25
36
|
|
|
26
|
-
|
|
37
|
+
API: Final = API( # pyright: ignore [reportIncompatibleVariableOverride]
|
|
38
|
+
RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT, "board"
|
|
39
|
+
)
|
|
27
40
|
|
|
28
|
-
|
|
29
|
-
class Attributes:
|
|
30
|
-
remote: bool
|
|
41
|
+
class Analog:
|
|
31
42
|
"""
|
|
32
|
-
|
|
43
|
+
Analog represents an analog pin reader or writer that resides on a Board.
|
|
33
44
|
"""
|
|
34
45
|
|
|
35
|
-
|
|
46
|
+
name: str
|
|
47
|
+
"""The name of the analog pin"""
|
|
48
|
+
|
|
49
|
+
Value: "TypeAlias" = ReadAnalogReaderResponse
|
|
36
50
|
"""
|
|
37
|
-
|
|
51
|
+
Value contains the result of reading an analog reader. It contains the raw data read,
|
|
52
|
+
the reader's minimum and maximum possible values, and its step size (the minimum possible
|
|
53
|
+
change between values it can read).
|
|
54
|
+
|
|
55
|
+
For more information, see `analogs <https://docs.viam.com/dev/reference/apis/components/board/#analogs>`_.
|
|
38
56
|
"""
|
|
39
57
|
|
|
58
|
+
def __init__(self, name: str):
|
|
59
|
+
self.name = name
|
|
60
|
+
|
|
40
61
|
@abc.abstractmethod
|
|
41
|
-
async def read(self, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) ->
|
|
62
|
+
async def read(self, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) -> Value:
|
|
42
63
|
"""
|
|
43
|
-
Read the current value.
|
|
64
|
+
Read the current value from the reader.
|
|
65
|
+
|
|
66
|
+
::
|
|
67
|
+
|
|
68
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
69
|
+
|
|
70
|
+
# Get the Analog "my_example_analog_reader".
|
|
71
|
+
reader = await my_board.analog_by_name(
|
|
72
|
+
name="my_example_analog_reader")
|
|
73
|
+
|
|
74
|
+
# Get the value of the digital signal "my_example_analog_reader" has most
|
|
75
|
+
# recently measured.
|
|
76
|
+
reading = await reader.read()
|
|
44
77
|
|
|
45
78
|
Returns:
|
|
46
|
-
|
|
79
|
+
Value: The current value, including the min, max, and step_size of the reader.
|
|
80
|
+
|
|
81
|
+
For more information, see `Board component Analog API <https://docs.viam.com/dev/reference/apis/components/board/#analog-api>`_.
|
|
47
82
|
"""
|
|
48
83
|
...
|
|
49
84
|
|
|
50
|
-
|
|
85
|
+
@abc.abstractmethod
|
|
86
|
+
async def write(self, value: int, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs):
|
|
87
|
+
"""
|
|
88
|
+
Write a value to the Analog writer.
|
|
89
|
+
|
|
90
|
+
::
|
|
91
|
+
|
|
92
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
93
|
+
|
|
94
|
+
# Get the Analog "my_example_analog_writer".
|
|
95
|
+
writer = await my_board.analog_by_name(
|
|
96
|
+
name="my_example_analog_writer")
|
|
97
|
+
|
|
98
|
+
await writer.write(42)
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
value (int): Value to write to the analog writer.
|
|
102
|
+
|
|
103
|
+
For more information, see `Board component Analog API <https://docs.viam.com/dev/reference/apis/components/board/#analog-api>`_.
|
|
104
|
+
"""
|
|
105
|
+
...
|
|
106
|
+
|
|
107
|
+
class DigitalInterrupt:
|
|
51
108
|
"""
|
|
52
109
|
DigitalInterrupt represents a configured interrupt on the Board that
|
|
53
110
|
when interrupted, calls the added callbacks. Post processors can
|
|
54
111
|
be added to modify what Value it ultimately returns.
|
|
112
|
+
|
|
113
|
+
For more information, see `digital_interrupts <https://docs.viam.com/dev/reference/apis/components/board/#digital_interrupts>`_.
|
|
55
114
|
"""
|
|
56
115
|
|
|
116
|
+
name: str
|
|
117
|
+
"""The name of the digital interrupt."""
|
|
118
|
+
|
|
119
|
+
def __init__(self, name: str):
|
|
120
|
+
self.name = name
|
|
121
|
+
|
|
57
122
|
@abc.abstractmethod
|
|
58
123
|
async def value(self, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) -> int:
|
|
59
124
|
"""
|
|
60
125
|
Get the current value of the interrupt,
|
|
61
126
|
which is based on the type of interrupt.
|
|
62
127
|
|
|
63
|
-
|
|
64
|
-
int: The current value.
|
|
65
|
-
"""
|
|
66
|
-
...
|
|
128
|
+
::
|
|
67
129
|
|
|
68
|
-
|
|
69
|
-
async def tick(self, high: bool, nanos: int):
|
|
70
|
-
"""
|
|
71
|
-
This method is to be called either manually if the interrupt
|
|
72
|
-
is a proxy to some real hardware interrupt or for tests.
|
|
130
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
73
131
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
but always increasing and always needs to be accurate.
|
|
78
|
-
Using ``time.time_ns()`` would be acceptable.
|
|
79
|
-
"""
|
|
80
|
-
...
|
|
132
|
+
# Get the DigitalInterrupt "my_example_digital_interrupt".
|
|
133
|
+
interrupt = await my_board.digital_interrupt_by_name(
|
|
134
|
+
name="my_example_digital_interrupt")
|
|
81
135
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
Add a callback to be sent the low/high value on ``tick()``.
|
|
136
|
+
# Get the amount of times this DigitalInterrupt has been interrupted with a
|
|
137
|
+
# tick.
|
|
138
|
+
count = await interrupt.value()
|
|
86
139
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"""
|
|
90
|
-
...
|
|
91
|
-
|
|
92
|
-
@abc.abstractmethod
|
|
93
|
-
async def add_post_processor(self, processor: PostProcessor):
|
|
94
|
-
"""
|
|
95
|
-
Add a post processor that should be used to modify what
|
|
96
|
-
is returned by ``self.value()``
|
|
140
|
+
Returns:
|
|
141
|
+
int: The current value.
|
|
97
142
|
|
|
98
|
-
|
|
99
|
-
|
|
143
|
+
For more information, see
|
|
144
|
+
`Board component DigitalInterrupt API <https://docs.viam.com/dev/reference/apis/components/board/#digitalinterrupt-api>`_.
|
|
100
145
|
"""
|
|
101
146
|
...
|
|
102
147
|
|
|
103
|
-
class GPIOPin
|
|
148
|
+
class GPIOPin:
|
|
104
149
|
"""
|
|
105
|
-
Abstract representation of an individual GPIO pin on a board
|
|
150
|
+
Abstract representation of an individual GPIO pin on a board.
|
|
106
151
|
"""
|
|
107
152
|
|
|
153
|
+
name: str
|
|
154
|
+
"""The name of the GPIO pin."""
|
|
155
|
+
|
|
156
|
+
def __init__(self, name: str):
|
|
157
|
+
self.name = name
|
|
158
|
+
|
|
108
159
|
@abc.abstractmethod
|
|
109
160
|
async def set(self, high: bool, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs):
|
|
110
161
|
"""
|
|
111
162
|
Set the pin to either low or high.
|
|
112
163
|
|
|
164
|
+
::
|
|
165
|
+
|
|
166
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
167
|
+
|
|
168
|
+
# Get the GPIOPin with pin number 15.
|
|
169
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
170
|
+
|
|
171
|
+
# Set the pin to high.
|
|
172
|
+
await pin.set(high=True)
|
|
173
|
+
|
|
113
174
|
Args:
|
|
114
175
|
high (bool): When true, sets the pin to high. When false, sets the pin to low.
|
|
176
|
+
|
|
177
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
115
178
|
"""
|
|
116
179
|
...
|
|
117
180
|
|
|
@@ -120,8 +183,20 @@ class Board(ComponentBase):
|
|
|
120
183
|
"""
|
|
121
184
|
Get the high/low state of the pin.
|
|
122
185
|
|
|
186
|
+
::
|
|
187
|
+
|
|
188
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
189
|
+
|
|
190
|
+
# Get the GPIOPin with pin number 15.
|
|
191
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
192
|
+
|
|
193
|
+
# Get if it is true or false that the state of the pin is high.
|
|
194
|
+
high = await pin.get()
|
|
195
|
+
|
|
123
196
|
Returns:
|
|
124
197
|
bool: Indicates if the state of the pin is high.
|
|
198
|
+
|
|
199
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
125
200
|
"""
|
|
126
201
|
...
|
|
127
202
|
|
|
@@ -130,8 +205,20 @@ class Board(ComponentBase):
|
|
|
130
205
|
"""
|
|
131
206
|
Get the pin's given duty cycle.
|
|
132
207
|
|
|
208
|
+
::
|
|
209
|
+
|
|
210
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
211
|
+
|
|
212
|
+
# Get the GPIOPin with pin number 15.
|
|
213
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
214
|
+
|
|
215
|
+
# Get if it is true or false that the state of the pin is high.
|
|
216
|
+
duty_cycle = await pin.get_pwm()
|
|
217
|
+
|
|
133
218
|
Returns:
|
|
134
219
|
float: The duty cycle.
|
|
220
|
+
|
|
221
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
135
222
|
"""
|
|
136
223
|
...
|
|
137
224
|
|
|
@@ -140,8 +227,21 @@ class Board(ComponentBase):
|
|
|
140
227
|
"""
|
|
141
228
|
Set the pin to the given ``duty_cycle``.
|
|
142
229
|
|
|
230
|
+
::
|
|
231
|
+
|
|
232
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
233
|
+
|
|
234
|
+
# Get the GPIOPin with pin number 15.
|
|
235
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
236
|
+
|
|
237
|
+
# Set the duty cycle to .6, meaning that this pin will be in the high state for
|
|
238
|
+
# 60% of the duration of the PWM interval period.
|
|
239
|
+
await pin.set_pwm(duty_cycle=.6)
|
|
240
|
+
|
|
143
241
|
Args:
|
|
144
242
|
duty_cycle (float): The duty cycle.
|
|
243
|
+
|
|
244
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
145
245
|
"""
|
|
146
246
|
...
|
|
147
247
|
|
|
@@ -150,8 +250,20 @@ class Board(ComponentBase):
|
|
|
150
250
|
"""
|
|
151
251
|
Get the PWM frequency of the pin.
|
|
152
252
|
|
|
253
|
+
::
|
|
254
|
+
|
|
255
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
256
|
+
|
|
257
|
+
# Get the GPIOPin with pin number 15.
|
|
258
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
259
|
+
|
|
260
|
+
# Get the PWM frequency of this pin.
|
|
261
|
+
freq = await pin.get_pwm_frequency()
|
|
262
|
+
|
|
153
263
|
Returns:
|
|
154
264
|
int: The PWM frequency.
|
|
265
|
+
|
|
266
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
155
267
|
"""
|
|
156
268
|
...
|
|
157
269
|
|
|
@@ -168,21 +280,42 @@ class Board(ComponentBase):
|
|
|
168
280
|
Set the pin to the given PWM ``frequency`` (in Hz).
|
|
169
281
|
When ``frequency`` is 0, it will use the board's default PWM frequency.
|
|
170
282
|
|
|
283
|
+
::
|
|
284
|
+
|
|
285
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
286
|
+
|
|
287
|
+
# Get the GPIOPin with pin number 15.
|
|
288
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
289
|
+
|
|
290
|
+
# Set the PWM frequency of this pin to 1600 Hz.
|
|
291
|
+
high = await pin.set_pwm_frequency(frequency=1600)
|
|
292
|
+
|
|
171
293
|
Args:
|
|
172
294
|
frequency (int): The frequency, in Hz.
|
|
295
|
+
|
|
296
|
+
For more information, see `GPIOPin API <https://docs.viam.com/dev/reference/apis/components/board/#gpiopin-api>`_.
|
|
173
297
|
"""
|
|
174
298
|
...
|
|
175
299
|
|
|
176
300
|
@abc.abstractmethod
|
|
177
|
-
async def
|
|
301
|
+
async def analog_by_name(self, name: str) -> Analog:
|
|
178
302
|
"""
|
|
179
|
-
Get an
|
|
303
|
+
Get an Analog (reader or writer) by ``name``.
|
|
304
|
+
|
|
305
|
+
::
|
|
306
|
+
|
|
307
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
308
|
+
|
|
309
|
+
# Get the Analog "my_example_analog_reader".
|
|
310
|
+
reader = await my_board.analog_by_name(name="my_example_analog_reader")
|
|
180
311
|
|
|
181
312
|
Args:
|
|
182
313
|
name (str): Name of the analog reader to be retrieved.
|
|
183
314
|
|
|
184
315
|
Returns:
|
|
185
|
-
|
|
316
|
+
Analog: The analog reader or writer.
|
|
317
|
+
|
|
318
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/#analogbyname>`_.
|
|
186
319
|
"""
|
|
187
320
|
...
|
|
188
321
|
|
|
@@ -191,11 +324,21 @@ class Board(ComponentBase):
|
|
|
191
324
|
"""
|
|
192
325
|
Get a DigitalInterrupt by ``name``.
|
|
193
326
|
|
|
327
|
+
::
|
|
328
|
+
|
|
329
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
330
|
+
|
|
331
|
+
# Get the DigitalInterrupt "my_example_digital_interrupt".
|
|
332
|
+
interrupt = await my_board.digital_interrupt_by_name(
|
|
333
|
+
name="my_example_digital_interrupt")
|
|
334
|
+
|
|
194
335
|
Args:
|
|
195
336
|
name (str): Name of the digital interrupt.
|
|
196
337
|
|
|
197
338
|
Returns:
|
|
198
|
-
DigitalInterrupt:
|
|
339
|
+
DigitalInterrupt: The digital interrupt.
|
|
340
|
+
|
|
341
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/#digitalinterruptbyname>`_.
|
|
199
342
|
"""
|
|
200
343
|
...
|
|
201
344
|
|
|
@@ -204,61 +347,74 @@ class Board(ComponentBase):
|
|
|
204
347
|
"""
|
|
205
348
|
Get a GPIO Pin by ``name``.
|
|
206
349
|
|
|
350
|
+
::
|
|
351
|
+
|
|
352
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
353
|
+
|
|
354
|
+
# Get the GPIOPin with pin number 15.
|
|
355
|
+
pin = await my_board.gpio_pin_by_name(name="15")
|
|
356
|
+
|
|
207
357
|
Args:
|
|
208
358
|
name (str): Name of the GPIO pin.
|
|
209
359
|
|
|
210
360
|
Returns:
|
|
211
|
-
GPIOPin:
|
|
361
|
+
GPIOPin: The pin.
|
|
362
|
+
|
|
363
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/#gpiopinbyname>`_.
|
|
212
364
|
"""
|
|
213
365
|
...
|
|
214
366
|
|
|
215
367
|
@abc.abstractmethod
|
|
216
|
-
async def
|
|
368
|
+
async def set_power_mode(
|
|
369
|
+
self,
|
|
370
|
+
mode: PowerMode.ValueType,
|
|
371
|
+
duration: Optional[timedelta] = None,
|
|
372
|
+
*,
|
|
373
|
+
extra: Optional[Dict[str, Any]] = None,
|
|
374
|
+
timeout: Optional[float] = None,
|
|
375
|
+
**kwargs,
|
|
376
|
+
):
|
|
217
377
|
"""
|
|
218
|
-
|
|
378
|
+
Set the board to the indicated power mode.
|
|
219
379
|
|
|
220
|
-
|
|
221
|
-
List[str]: The names of the analog readers..
|
|
222
|
-
"""
|
|
223
|
-
...
|
|
380
|
+
::
|
|
224
381
|
|
|
225
|
-
|
|
226
|
-
async def digital_interrupt_names(self) -> List[str]:
|
|
227
|
-
"""
|
|
228
|
-
Get the names of all known digital interrupts.
|
|
382
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
229
383
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
"""
|
|
233
|
-
...
|
|
384
|
+
# Set the power mode of the board to OFFLINE_DEEP.
|
|
385
|
+
status = await my_board.set_power_mode(mode=PowerMode.POWER_MODE_OFFLINE_DEEP)
|
|
234
386
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
Return the current status of the board.
|
|
387
|
+
Args:
|
|
388
|
+
mode (PowerMode): The desired power mode.
|
|
389
|
+
duration (Optional[timedelta]): Requested duration to stay in power mode.
|
|
239
390
|
|
|
240
|
-
|
|
241
|
-
viam.proto.common.BoardStatus: the status.
|
|
391
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/#setpowermode>`_.
|
|
242
392
|
"""
|
|
243
393
|
...
|
|
244
394
|
|
|
245
395
|
@abc.abstractmethod
|
|
246
|
-
async def
|
|
396
|
+
async def stream_ticks(self, interrupts: List[DigitalInterrupt], *, timeout: Optional[float] = None, **kwargs) -> TickStream:
|
|
247
397
|
"""
|
|
248
|
-
|
|
398
|
+
Stream digital interrupt ticks.
|
|
249
399
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
400
|
+
::
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
my_board = Board.from_robot(robot=machine, name="my_board")
|
|
404
|
+
di8 = await my_board.digital_interrupt_by_name(name="8")
|
|
405
|
+
di11 = await my_board.digital_interrupt_by_name(name="11")
|
|
406
|
+
|
|
407
|
+
# Iterate over stream of ticks from pins 8 and 11.
|
|
408
|
+
async for tick in await my_board.stream_ticks([di8, di11]):
|
|
409
|
+
print(f"Pin {tick.pin_name} changed to {'high' if tick.high else 'low'} at {tick.time}")
|
|
254
410
|
|
|
255
|
-
@abc.abstractmethod
|
|
256
|
-
async def set_power_mode(
|
|
257
|
-
self, mode: PowerMode.ValueType, duration: Optional[timedelta] = None, *, timeout: Optional[float] = None, **kwargs
|
|
258
|
-
):
|
|
259
|
-
"""
|
|
260
|
-
Set the board to the indicated power mode.
|
|
261
411
|
|
|
262
412
|
Args:
|
|
263
|
-
|
|
413
|
+
interrupts (List[DigitalInterrupt]) : list of digital interrupts to receive ticks from.
|
|
414
|
+
|
|
415
|
+
Returns:
|
|
416
|
+
TickStream: stream of ticks.
|
|
417
|
+
|
|
418
|
+
For more information, see `Board component <https://docs.viam.com/dev/reference/apis/components/board/#streamticks>`_.
|
|
264
419
|
"""
|
|
420
|
+
...
|