Action Item #549
Port picam pncMsgSend() to libpibox
Status: | Closed | Start date: | 05 Sep 2016 | |
---|---|---|---|---|
Priority: | Immediate | Due date: | ||
Assignee: | % Done: | 100% | ||
Category: | - | |||
Target version: | PiBox - 1.1.0 - Upgrades | |||
Severity: | 03 - Medium |
Description
This is a client function for messaging piboxd. That means the type, action and subaction definitions need to move into libpibox too.
Related issues
Associated revisions
RM #549: Migrate piboxMsg to a more complete API so multiple apps can use it.
RM #549: Don't try to write to a NULL pointer.
RM #549: Add missing tag send to piboxMsg.
RM #549: Make sure MT_STREAM actions require a payload.
RM #549: Migrate picam to libpibox's version of piboxMsg(), which is now more full featured than the old local version, which is being removed.
RM #549: Remove deprecated piboxMsgSend from utils header.
RM #549: Remove piboxMsgSend from utils. It's not used and if it is needed later there is a better version in libpibox.
History
#1
Updated by Hammel about 4 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
piboxMsg() is now in libpibox but picam is still using piboxMsgSend() in it's utils.c module. I need to check that the latter can be replaced with the former, then make sure all message types are supported in the library function.
#2
Updated by Hammel almost 2 years ago
- Target version changed from 0.12.0 to 1.1.0 - Upgrades
#4
Updated by Hammel 11 months ago
The piboxlib version of the function is not as full featured as the picam version. So the former needs updating. But I wasn't sure who else was using it. Turns out no one is using it except PiCam. So I can update the library to the PiCam version and test that, then update a Dev platform with the new library, builds all the apps and make sure they all still work.
To verify that no one else is using it I just grep'd for piboxMsg in every app that I wrote that doesn't wrap some 3rd party software. Looks like only PiCam is using this function. So I THINK I'm safe in doing this.
Ran the following command from the top of my source trees:
find pi* appmgr iotapp ironman launcher libpibox musicfe pnc videofe xeonnc -type f -name "*.c" -exec grep -li piboxmsg {} \;
It generated this list
picam/src/src/picam.c
picam/src/src/utils.c
pitemplate/src/app/src/picam.c
pitemplate/src/app/src/utils.c
pixm/src/src/utils.c
iotapp/src/src/db.c
libpibox/src/ptests/pmsg.c
libpibox/src/ptests/main.c
libpibox/src/src/pmsg.c
xeonnc/src/src/net.c
- picam: the thing I wanted updated by this issue
- pitemplate: a copy of picam
- pixm: an unused utility function that should be removed
- iotapp: also needs updating, like picam
- libpibox: library function picam and iotapp will use, plus unit tests
- xeonnc: also needs updating, like picam
#5
Updated by Hammel 11 months ago
piboxlib is ported and basically passes unit tests. I need to run it with piboxd running to complete those unit test runs.
I can then package piboxlib for rpi4's archive and rebuild the rootfs and staging tree. Then I can start to update the apps to use the updated piboxMsg() function.
#8
Updated by Hammel 10 months ago
Next problem: picam worked after fixing a few bugs in libpibox but it didn't switch to the correct VT on exit. I have a bug report (RM #751) for adding a function to libpibox for fixing this.
After finding the right vtsrc I was able to verify that the old picam is working. I believe the new picam will also work but need to retest it. I just set vtsrc in the config file to correct vt where X is running.