I am looking to build a wearable display, similar to what @marcmerlin has.
I have a fair amount of coding experience in C# and Java and a little experience of JS / TS, but not C / C++
I would like the following features:
- Ability to display files (images and animated GIFs)
- Files automatically cycle
- Web interface to control the device
Access via Android phone while in the field to control it, access via PC at home to manage content.
The web interface should allow the following
- CRUD operations on files (Add / Remove etc)
- Enable / disable files (Temporarily remove from sequence without deleting)
- Change file order
- Exclusive mode (Set a file to exclusively show, do not cycle)
- Power down the Pi maybe?
- Limited adjustment of settings (Brightness etc)
I currently have an RPi (Zero 2W) - I don’t have my LED panels for 3 weeks or so, but would like to start getting a plan of action in place now, and maybe start tinkering with some code / learning stuff I need to learn.
From reading the documentation, it seems that the led-image-viewerutil maybe does the majority of what I need? As in, my web interface allows me to upload a file, and it then uses this util to convert it to a stream, ready for playback. I see the util has the -f option to cycle through files, but I am not sure that’s really what I want, as that would not allow me to eg disable a file or control order. Also it is command-line, so how, for example, would I interrupt a currently playing file to eg switch to “exclusive” mode? (Kill the process? Seems clunky)
What I am most wondering about though is how I would integrate the web interface with the C++ code. Some kind of IPC? Shared files?
Also, there is the question of how to set up my dev env. My home PC is Windows.
I guess in an ideal world, what I would like is some kind of engine (Something written in, or otherwise leveraging the C++ API) which is able to accept basic instructions (Play this stream, play that stream, trigger coversion of a file into a stream)
The main logic (ie the UI) would then be handled via a separate process, ideally written in something a bit easier to work with than C++ (JS/TS? C# would be nice, but it looks like the bindings don’t work any more). Bonus points if I could run this code on my local PC at dev-time (So communicate with the back end via a socket?)
Thoughts please