Here's a very, very rough abstracted transcript of our phone call with James.
bart: Any kernel work left?
james: Kernel is ok. Needs CAN driver. Orinoco may need to adjust RX strength via ioctl. Need to get RSSI from demo mode if poss to adjust things.
bart: UDP network code?
james: There's a common library, LTC-FC. Doesn't interpret contents of packets, just provides them to FCFIFO. FCFIFO treats messages as a large binary packet, then parses them in a complicated way and then passes them to the apropriate routine (smart, sequencer, etc).
bart: so mostly the high level stuff is left.
james: Yes, needs some work with the communication between smart an sequencer since they communicate through the FIFO.
all: maybe we can collapse smart and sequencer to make it easier?
andrew: interface between CANtalope and FCFIFO.
james/ian: testcanin simulates a sequence of CAN messages into a single FCFIFO.
ian: would be nice to have timestamps for performance testing
james: there are system limits on the throughput on messages - since we're just doing data gathering, it shouldn't matter
andrew: what if we collapse smart and sequence into a series of threads?
bart: how is work partitioned in smart?
james: no state machines, just one process.
bart: Let's just get this done: 1. can driver 2. sequencer - get state machine done.
james: needs to do the manual work to populate the state machine - CAN initialize messages, etc.
jay: file directories?
ltc-fc: common comm library fcfifo: all the application specific code (all the process) for the flight computer
manager forks all the processes (also restarts dead processes). fifotimer.c - alarm for dead processes
jay: how to make?
james: Go to ltc-fc directory - type make. Go to fcfifo - type make. A whole bunch of executables... make-tar makes a tarball executable which we can extract on the FC. In /etc/init.d/psas is the init file... which is started by symbolic links in '/etc/rc..d/psas' FifoArchitecture twiki page has some details on the code.
bart: need to make sure that when the fifoalarm expires the write unblocks and is not expired... this needs to be checked.
andrew: where do we put it?
james: look at flight computer file system... /root/fcfifo.
james: over the network
andrew: cantalope to fcfifo communication?
james: replace can_rw with a simulator
andrew: xxx_exports.h from firmware?
ian: single firmware_exports.h file which points to all the different xxx_exports.h files
ian: how to do driver debugging?
james/bart: debug kernels.
ian: CAN driver is code complete, both with and without interrupts.