I have the following requirement for a Windows desktop software based on opengl/OpenCV. You may suggest other language or plug-in if you think is easier.
1) The software should display grayscale images (moving images - like a Video, but limited by the data you receive) based on input received through USB-serial/uart com ports.
2) Be able to see active/available com ports and select one that needs to be used.
3) Be able to select standard baud rates. We will need availability of the higher baud rates.
4) Data sent over UART is grouped together as a Frame. A Frame would be what needs to be displayed within the display window at any given time.
5) A frame starts with a header, which is 0x555512AAAA. Another possible header is 0x555508AAAA. This denotes the resolution of each pixel in gray scale. 12 in first header denotes 12 bit resolution, 08 in second header denotes 8 bit resolution of all pixels.
6) After header, the data is sent. Window size is 80X60. So there are 80 pixels in every line and there are 60 lines in total for every frame.
7) Following the header first(Top most) line is sent starting from left most pixel and ending with right most pixel. Then the second line is sent followed by the third and so on.
8) After receiving the first frame it should be displayed on a corresponding window. This stays until next frame is completely received and when second frame is completely received its displayed. This continues.
9) There should be a button on the window to pause and resume. When paused, the last received frame stays until we resume. When the press resume, the program waits for a Header and then receives the full frame before changing the image on the window.
10) Modern displays have fine resolution, so 80X60 pixels would be too small to recognize/see. You need to make the window a bit bigger by assigning more pixels on display for every pixel received)