Area Callback Region Handler Base¶
-
exception
bosdyn.client.area_callback_region_handler_base.
IncorrectUsage
[source]¶ Bases:
Exception
Error raised by calling a helper function incorrectly.
Raised when a call would block forever has otherwise been used in an incorrect manner. This exception is not intended to be caught, but indicates a programming error.
-
exception
bosdyn.client.area_callback_region_handler_base.
HandlerError
[source]¶ Bases:
Exception
Error base class for errors raised from the internals of the AreaCallbackRegionHandlerBase.
This error will be raised when the shutdown_event signal is set, or can be raised by the user to signal an error. A wrapper around the run implementation will catch this exception and report back to a client a UpdateCallbackResponse error.
-
exception
bosdyn.client.area_callback_region_handler_base.
CallbackEnded
[source]¶ Bases:
bosdyn.client.area_callback_region_handler_base.HandlerError
The callback has already been stopped, via an EndCallback call.
-
exception
bosdyn.client.area_callback_region_handler_base.
CallbackTimedOutError
[source]¶ Bases:
bosdyn.client.area_callback_region_handler_base.HandlerError
The callback has already been stopped, via passing the end time. If caught, it should be re-raised to make sure the response is set correctly.
-
class
bosdyn.client.area_callback_region_handler_base.
AreaCallbackRegionHandlerBase
(config: bosdyn.client.area_callback_service_utils.AreaCallbackServiceConfig, robot: bosdyn.client.robot.Robot)[source]¶ Bases:
object
Base class for implementing a AreaCallbackRegionHandler.
A AreaCallbackRegionHandler is an object responsible for running a single instance of an AreaCallback. The AreaCallbackServiceServicer will construct an AreaCallbackRegionHandler object each time GraphNav starts an Area Callback region. The servicer will execute the run() function in a thread and read update_response to send status back to the client. After EndCallback, this object will be discarded and a new AreaCallbackRegionHandlerBase will be constructed to handle the next region.
- Parameters
config – The AreaCallbackServiceConfig defining the data for the AreaCallbackInformation response.
robot – The Robot object used to create service clients.
-
begin
(request: bosdyn.api.graph_nav.area_callback_pb2.BeginCallbackRequest) → <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x7f194dc8e128>[source]¶ Validates that configuration passed to BeginCallback is valid.
- Parameters
request (area_callback_pb2.BeginCallbackRequest) – The BeginCallback request.
- Returns
OK when configuration_data is valid.
- Return type
area_callback_pb2.BeginCallbackResponse.Status
-
property
area_callback_information
¶ Get area_callback_pb2.AreaCallbackInformation.
-
property
config
¶ Get AreaCallbackServiceConfig
-
continue_past_start
()[source]¶ Tell graph nav that it should continue on past the start of the region.
-
block_until_control
()[source]¶ Block waiting for the robot to pass the sublease to this callback.
- Raises
HandlerError – When a shutdown is requested before a lease is received.
-
has_control
()[source]¶ Check in a non-blocking way if the callback has been given a sublease.
- Returns
True if the callback is now in control of the robot.
-
block_until_arrived_at_start
() → bool[source]¶ Block until the robot arrives at the start of the area callback. If the robot is already past the start, this will return immediately.
- Returns
True if the robot is at the start, False if the robot is already beyond the start.
- Raises
HandlerError – When a shutdown is requested before the robot reaches the start of the
region. –
-
block_until_arrived_at_end
()[source]¶ Block until the robot arrives at the end of the area callback.
- Raises
HandlerError – When a shutdown is requested before the robot reaches the end of the
region. –
-
property
stage
¶ Check the current stage of traversal in a non-blocking way.
- Returns
bosdyn.api.UpdateCallbackRequest.Stage enum of the current stage of crossing the region.
-
safe_sleep
(sleep_time_secs: float)[source]¶ Run impl should use this sleep function to make sure thread does not hang.
- Parameters
sleep_time_secs (float) – Time to sleep, in seconds.
- Raises
HandlerError – When a shutdown is requested during the sleep time..
-
check
()[source]¶ Check if callback shutdown has been requested via client call to EndCallback or passing the end time.
The run thread is responsible for checking and cleanly exiting.
- Raises
HandlerError – If the thread should shut down.
-
property
update_response
¶ Get current UpdateCallbackResponse.
-
will_get_control
()[source]¶ Determine if the current policy and stage mean that the callback will eventually be given control without any further action on its part
-
internal_begin_complete
()[source]¶ The handler finished BeginCallback and is ready to start run(). Blocking calls may now be used.
-
internal_set_stage
(stage: <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x7f194dc8e198>)[source]¶ Update the stage via an incoming UpdateCallbackRequest.