Pi IoT In Python Using GPIO Zero - Getting Input |
Written by Harry Fairhead & Mike James | ||||||||
Monday, 03 June 2024 | ||||||||
Page 4 of 4
You may be attracted by the idea of event handling. It is easy and this makes it great for beginners. Just write what you want to happen when a button is pressed or released and then get on with the rest of your program. No polling loop and no waiting. It is useful for the beginner, but it isn’t a good way to organize things in the long run. The problem is that it is the pin factories that are responsible for implementing the event handling and they do this in different ways. As already discussed in connection with general interrupts and events, this approach slows the overall system down and creates problems when events occur at too fast a rate. For example, the pressed event handler can be interrupted by a release event and the release function will run before the press function ends. If a new button press happens after the release, then the press function is run a second time, even if the first call to it is still running. However, the subsequent release function isn’t called until the first press function finishes. This is a mess! Exactly what happens when multiple events occur depends on the pin factory that is providing the service and this too is unsatisfactory in that you can’t know what will happen. In conclusion, using event handling in GPIO Zero is an easy way to produce a demo or get started, but it isn’t a good way to implement anything beyond the very simple. This is the big problem with asynchronous code that doesn’t use a queue to ensure that multiple events are handled correctly and in the correct order. If events and asynchronous code aren’t the way to do the job what is? The simple answer is the polling loop, but putting order into the polling loop so that it is clean and easy to extend is difficult. If you are happy with events and basic polling loops skip the next section, which describes a way to organize polling loops so that they are easier to work with. In chapter but not in this extract
Summary
Raspberry Pi IoT In Python Using GPIO Zero
|
AI Renders 3D Models 04/06/2025 Could it be that all of that computer graphics you had to learn to implement 3D rendering is obsolete? Is this another example of AI doing just about anything you can think of? |
Google Releases Python Client For Data Commons 01/07/2025 Google has released a new Python client library for Data Commons based on the V2 REST API. They say the new library enhances how data developers can make use of Data Commons. |
More News
|
Comments
or email your comment to: comments@i-programmer.info