Full-Speed Simulator Meeting 11 Feb 2015 Project Labor Budget Remaining: 80% Specific Tasks: * Rob: Get a Qnx Vm running on the Mac laptop. Status: DONE, assuming a cabled Ethernet connection. The Qnx Vm can successfully ping other machines over wifi, but can't mount or telnet. The Vmware Qnx Vm running on the (cabled) Windows desktop host works and can mount Atlas. * Rich: Start CVS branch. DONE * Rich: Rework navigation to be either a periodic task for flight, or to trigger on DynamicControl/Simulator task completion for simulation. * Rich: Replace all clock calls with consistent calls to the TimeIF. Figure out how to have TimeIF return simulated time in the case of simulation. * Rob: Continue to make the Mac laptop viable for at-sea simulation. Still would be nice to: - Get the Qnx Vm to mount Atlasnfs over wifi. - Get the Qnx Vm to share memory with the Mac. If this works, I can checkout the code tree from CVS on the Mac, then compile it with the Qnx vm. - Download xcode and get CVS running on the Mac. Checkout the code tree. - Assist Rich where possible with triggering and clock calls. * Hans: (If time permits) Provide example code showing how to link the GNC process with the simulated sensor IFs and the simulator to create a single process for simulation. The GNC code is unchanged between flight and simulation. * Kent: (If time permits) Come up to speed on the code. Overall Objectives: 1. Qnx Vm (Rob) -Desktop -Laptop 2. Synchronize Layered Control(Rich) -Done using event call backs. 3. Non blocking operation (Rich, Rob, Kent, Hans) -First pass using event callbacks. -Second pass moves GNC processes into a single process. 4. TRN Integration (Rich, Rob) 5. Testing and Validation (Rob) Notes: Discussion: How to implement a time server that provides either real time or simulation time. A corba layer in a time server might be indeterministic. Use a reference to a singleton. R: Won't work because of multiple processes and separate memory space. There would be one time server per process, but we want only one. shared memory would work for a shared time server. Another way is to use sockets. Third way (best) is to put it all into a single process. How do you protect access to the time increment function? Maybe we can have a "friend" class so that only one object can increment time. Tasks for next meeting: Rich: Will have preliminary time server design by the next meeting. May make a drawing. Rich: Will check the synchronized Layered Control into the CVS branch. Rob: Find out how to help Rich. Help Kent with a first simulation. Kent: May run a sim.