Software design - snowpuppy/augreality GitHub Wiki
- Sensor Data
- Networking
- User Interface
- Simulation Logic
- Rendering
Most of the modules communicate through sockets. Effort is being made to support python and c++ simulations. The python simulations will communicate with all of the other modules through sockets. The c++ simulations communicate through sockets to the Networking/Sensor modules, but will compile against the rendering code and share data structures. This will allow for rapid prototyping with python which can then be converted to c++ for performance. Shared memory was considered as an alternative to sockets. Shared memory was discarded because the information being transferred is relatively small for most of the communications.
The sensor data and networking code have been combined into the same executable, but logically they are separate. Their is a dedicated thread collecting information about the sensors and there is another dedicated thread that collects information from the network. A third thread serves as the interface for serving networking and sensor data to the other modules.
Screenshots should be posted soon. Images will be linked here.
Each simulation will need to include an interface to Networking/Sensor data code and the rendering code. These interfaces will provide the simulation with the information it needs to make decisions and update update the display. Information about the display has been abstracted away from the simulation developer. An API call will be provided to update the positions and attributes of all created objects. Information on creating a custom sim can be found here
Notes on GMA500 drivers for the Atom board: https://wiki.archlinux.org/index.php/poulsbo#modesetting_xorg_driverMicrocontroller STM32F4 Manual:
- Manual
- Peripheral Library from the manufacturer
- Development Documents from the manufacturer including the programming manual.
- See the linker file for details
- External Interfaces
- SPI
- Integrated Peripherals
- Application Code