zayfod / pycozmo

A pure-Python communication library, alternative SDK, and application for the Cozmo robot.
MIT License
173 stars 58 forks source link

Fix display_image method ignoring duration. #48

Open gimait opened 3 years ago

gimait commented 3 years ago

The comments in #45 noted that the Client.display_image method was failing to show the image for the set duration. Looking into the code, I saw that this happened when procedural_face_enabled was set because the AnimationController loop would start fetching new face images.

I used the playing_animation variable of AnimationController to prevent this from happening. Now, Client.display_image starts the animation and clears the screen if a duration is set. If no duration is specified, the Client.clear_screen function should be called to stop showing the image.

It should also be noted that right now sending a new image or starting an animation will override the previously shown image, but I think this is probably the most intuitive way to work with it as well.