This one is still related to the my previous posts. This time around, I have added features that I had promised in my earlier posts. The usage of the software remains mainly unchanged. What has changed is the way in which the firmware is written. The firmware now uses polymorphism to make it easier to adapt the communication frame work to different hardware platforms (The selected hardware platform should support C++ as a programming language to use this approach). The current implementation makes use of polymorphism at two different places
(a) For the implementation of the communication channel (UART/serial protocol in our case)
(b) For implementing the functions required for accessing the digital and analog peripherals
(a) For the implementation of the communication channel (UART/serial protocol in our case)
(b) For implementing the functions required for accessing the digital and analog peripherals