NoMagicAi / abb_librws

A C++ library for interfacing with ABB robot controllers supporting Robot Web Services
BSD 3-Clause "New" or "Revised" License
0 stars 5 forks source link

GRASP-12481 driver needs to be restarted after exceeding joint limits rapid state inconsistent #45

Closed krzyfre closed 2 years ago

krzyfre commented 2 years ago

The intent is to do a retry when we receive 403.

What happens now is: 1) We receive an update through websocket, that the rapid has stopped 2) On that event we try to restart rapid 3) When we send reset program pointer the controller responds with 403

Probably still some action is going on in controller and it doesn't allow for resetting PP. If we wait unknown amount of time, then we are able to reset it.

Since we want to do a retry on this error.

Review: @michalvi, @mkatliar Notify: @MathuxNY-73

krzyfre commented 2 years ago

I think there is a logic error in

retry_status.find(result.httpStatus()) == retry_status.end()

Also, shouldn't the same change be also made in v1_0::RWSClient?

I'm not sure the behaviour is the same, but I would guess it should. Should I add it to RWS1 as well?

mkatliar commented 2 years ago

I'm not sure the behaviour is the same, but I would guess it should. Should I add it to RWS1 as well?

Since we are both not sure, let's not touch v1_0.

krzyfre commented 2 years ago

I have added the suggested changes. I think you are right that the previous method may be an overkill. I have just changed the name shouldRetry to shouldRetryPost, because it is only for post method