Software Team Minutes for 05 Mar 2003
Administrivia
Location: FAB CS Lounge
Attendees: ?LarryLeach, ?DavidCassard, ?JameySharp, ?JamesPerkins
Action Items
%ACTION{ who="Main.DavidCassard" due="Fri, 7 Mar 2003" state="closed" }% Put up FC software diagram from meeting at 2003-03-05
done 3/10/2003, document is SoftwareFunctionalSpecJune2003 %ACTION{ who="Main.JameySharp" due="11 Mar 2003" state="closed" }% suggest a message data structure for use in the software diagram %ACTION{ who="Main.JamesPerkins" due="11 Mar 2003" state="closed" }% provide software skeleton to implement the software diagram
?LarryLeach and ?NathanDavenport will continue working on the state machine (hup hup, dudes!)
Details
- Discussed threads vs. processes for implementing most of the flight computer software.
- We are all leaning toward processes... they are restartable, the OS handles reclamation of lost resources, and they have simple interaction examples. They may not be the best perfomance option, but they are tested to work!
- We talked about processing flow. We came up with a list of async threads.
- Async threads all have a named pipe open for reading. Anyone wishing to talk to them opens the named pipe and writes to it.
Asynchronous threads:
- can reader
- read from can device and convert to message (incl. timestamp)
- dispatch (intelligently) messages to sequencer, logger, nav
- can writer
- format and write messages to can bus
- sequencer
- manage flight state machine
- status updates to fc2net
- commands to can writer
- recovery backup timer
- fc2net
- take messages, format and send to network
- net2fc
- take messages from network, format
- dispatch messages to sequencer and can writer
- smart
- process imu, gps, etc. data to determine position in space
- detect launch, apogee etc.
- juliennes fries
- send virtual can message to can reader to dispatch to system (position updates)
- now how much would you pay? this may split into multiple processes.
- logger
- commit message to the log device
- manager
- starts up all the other tasks
- kills & restarts busted/wedged tasks
Example flight computer skeleton source
- I called this (uncleverly) fcfifo.
- It can be found in the cvs under c/fcfifo... see http://cvs.psas.pdx.edu
- This has a manager process which starts the child processes
- manager also restarts the child processes and shuts them down cleanly
- The child processes are all currently just symlinks to child.c
- child processes create their fifo, open and read from it
- child processes will simply open other fifos for writing and do write on them to send a message (note, watch for error conditions!)
- you can test the child processes by doing "cat /etc/passwd > /tmp/fifo/logger", for example.
Naming the Clever Thread:
Here were some names we tried for the process that takes raw position/etc. info and converts it into smarter info:
- dumb2smart
- crunchy frog
- analyze
- nav
- prenav
- transform
- cook data
- integrator
- do what i mean (dwim)
- dynamic info realtime transform (dirt)
- smart module assembling realtime tasks (smart)
- gnudle
"Smart" won.
?JamesPerkins - 05 Mar 2003