Action Item #316

Create app manager

Added by Hammel about 3 years ago. Updated about 3 years ago.

Status:ClosedStart date:18 Apr 2014
Priority:UrgentDue date:
Assignee:Hammel% Done:

100%

Category:04 - Root File System
Target version:0.9.0
Severity:02 - High

Description

The app manager will be used to launch applications. Since we're not using wm title bars and want to use the left panel for navigation we need something that manages what application is currently displayed.

The way this will work is
  1. The left panel buttons send a message of "start:app path" to the app manager. This message is sent via a network connection, possibly via something like nc.
  2. The app manager parses the message and checks if the app is already running. If it is, nothing is done.
  3. If the app is not running it is started. This causes it to show at the front of the Matchbox WM stack.
  4. Any previous application is stopped by sending it a "stop:app path". This reduces load on the RPi.

All apps must have a simple server that can receive messages. They only accept messages from localhost. They only honor "stop" requests.

The app manager could be a windowless client to make it easier to start and stop child processes on the DISPLAY. The app manager should have a configurable list of allowable apps.

Associated revisions

Revision 52958f5f
Added by Hammel about 3 years ago

RM #316: Initial import.

Revision 1b202a85
Added by Hammel about 3 years ago

RM #316: Add cleanup of test generated files.

Revision 9e0c8b19
Added by Hammel about 3 years ago

RM #316: Updated to reflect tests being able to run from top level or tests directory.

Revision 24d1c93c
Added by Hammel about 3 years ago

RM #316: Move lock handling to a separate function so it can be called whether daemonized or not. Move logging init earlier. Clean up lock file on exit.

Revision 20bf57cc
Added by Hammel about 3 years ago

RM #316: Don't output to console if writing to log file.

Revision bc389d51
Added by Hammel about 3 years ago

RM #316: Stop current process on shutdown. Provide more thorough handling of app killing.

Revision 4ebe575d
Added by Hammel about 3 years ago

RM #316: cleanup of logging output.

Revision aaa27454
Added by Hammel about 3 years ago

RM #316: Change default port so it doesn't conflit with piboxd.

Revision e2dadddf
Added by Hammel about 3 years ago

RM #316: Updated unit tests to validate appmgr is operating as intended.

Revision 2fcdadad
Added by Hammel about 3 years ago

RM #316: Remove extraneous init script.

Revision 6fcf8531
Added by Hammel about 3 years ago

RM #316: Add interface script that handles Matchbox->appmgr messaging. Fix packaging so its appropriate for the appmgr package.

Revision 7a23b2f8
Added by Hammel about 3 years ago

RM #316: Remove bui-network-config from xinitrc. Let user drive navigation.

Revision 3c61d984
Added by Hammel about 3 years ago

RM #316: Add vimtools patch to get xxd for appmgr.

Revision 8899471b
Added by Hammel about 3 years ago

RM #316: Add sed, netcat and vim for use with appmgr.

History

#1 Updated by Hammel about 3 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 30

The initial version of this is complete and checked in. I'm in the process of writing unit tests against message formats to make sure it operates as expected.

As a side note: I'll probably have to write a shell script to send the proper message to the daemon since its not possible to format it directly on the ncat command line.

#2 Updated by Hammel about 3 years ago

  • % Done changed from 30 to 70

Wrote unit tests and ran them against the appmgr. I verified a number of things, the most important of which is that the intended use is functional: start one app, then start another and kill the first. I tested this with xterm and xeyes and its seems to work just fine.

All code updates and unit tests are committed and pushed upstream.

I now need packaging to verify cross compile and packaging. I also need the script that Matchbox panel buttons will call to communicate with appmgr. Also: update pmsui's desktop.sh to test for /usr/bin/appmgr and, if found, start it without logging.

#3 Updated by Hammel about 3 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 70 to 100

The appmgr package is complete. Panel buttons correctly launch alternate applications. Removal of the package (along with the piboxmediaserverui) returns the UI to the default PiBox Development Platform blackbox interface.

This issue can be closed.

Also available in: Atom PDF