Software design - snowpuppy/augreality GitHub Wiki

Table of Contents

Phase 2:

Modules

  • Sensor Data
  • Networking
  • User Interface
  • Simulation Logic
  • Rendering

Connecting Glue

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.

Sensor Data / Networking

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.

User Interface

Screenshots should be posted soon. Images will be linked here.

Simulation Logic

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

Game/rendering engines:

Notes on GMA500 drivers for the Atom board: https://wiki.archlinux.org/index.php/poulsbo#modesetting_xorg_driver

Phase 1:

Microcontroller STM32F4 Manual:

Memory Mapping: External Interfaces:
  • External Interfaces
  • SPI
Integrated Peripherals:
  • Integrated Peripherals
Application Code:
  • Application Code
Data Format Calculations GPU Rendering Information Serial Programming in C on Linux Guide:
⚠️ **GitHub.com Fallback** ⚠️