Project Structure

The structure of OctoMY™ project

Topics

  • components
  • architecture

Folders

This minimalistic overview of the project will serve until a more comprehensive documentation is available:

.
├── content
│   ├── design
│   │   ├── icons.svg
│   │   └── ux.svg
│   ├── doc
│   │   ├── doc.pro
│   │   ├── LICENSE_TEMPLATE
│   │   ├── ocomy.qdocconf
│   │   ├── script.js
│   │   └── style.css
│   └── website
│       ├── content.html.mustache
│       ├── footer.html.mustache
│       ├── header.html.mustache
│       └── index.html.mustache
├── integration
│   ├── deb
│   │   └── make_deb.sh
│   ├── docker
│   │   ├── build.sh
│   │   ├── clean.sh
│   │   └── qmake_test
│   │       ├── main.cpp
│   │       └── QmakeTest.pro
│   ├── local
│   │   └── tool.sh
│   ├── qbs
│   │   └── imports
│   │       ├── AppProbe.qbs
│   │       ├── App.qbs
│   │       ├── BaseProbe.qbs
│   │       ├── Files.qbs
│   │       ├── LibProbe.qbs
│   │       ├── Lib.qbs
│   │       ├── QtDepends.qbs
│   │       ├── TestProbe.qbs
│   │       ├── Test.qbs
│   │       └── utils.js
│   └── qdoc
│       └── images
├── LICENSE
├── MANDATE
├── OctoMY.qbs
├── probes.qbs
├── README.md
├── src
│   ├── agent
│   │   ├── AgentMain.cpp
│   │   ├── AgentMain.hpp
│   │   ├── app.qbs
│   │   └── README.md
│   ├── apps.qbs
│   ├── hub
│   │   ├── app.qbs
│   │   ├── HubMain.cpp
│   │   └── HubMain.hpp
│   ├── index.cpp
│   ├── libs
│   │   ├── libagent
│   │   ├── libagentclient
│   │   ├── libapp
│   │   ├── libardumy
│   │   ├── libaudio
│   │   ├── libclient
│   │   ├── libclt
│   │   ├── libcombined
│   │   ├── libcomms
│   │   ├── libdebug
│   │   ├── libglt
│   │   ├── libgps
│   │   ├── libhardware
│   │   ├── libhub
│   │   ├── libhubclient
│   │   ├── libhud
│   │   ├── libid
│   │   ├── libmap
│   │   ├── libmarkdown
│   │   ├── libmbedtls
│   │   ├── libmotorics
│   │   ├── libnode
│   │   ├── libpair
│   │   ├── libparser
│   │   ├── libplan
│   │   ├── libplot
│   │   ├── libpuppet
│   │   ├── libqpolarssl
│   │   ├── libqr
│   │   ├── libremote
│   │   ├── libremoteclient
│   │   ├── libres
│   │   ├── librng
│   │   ├── libsec
│   │   ├── libservice
│   │   ├── libstore
│   │   ├── libstyle
│   │   ├── libtest
│   │   ├── libuptime
│   │   ├── libutil
│   │   ├── libvideo
│   │   ├── libvoice
│   │   ├── libweb
│   │   ├── libwidgets
│   │   ├── libzbar
│   │   ├── libzoo
│   │   ├── libzooclient
│   │   └── README.md
│   ├── libs.qbs
│   ├── moduleheader.hpp
│   ├── OctoMY.qdocconf
│   ├── README.md
│   ├── remote
│   │   ├── app.qbs
│   │   ├── README.md
│   │   ├── RemoteMain.cpp
│   │   ├── RemoteMain.hpp
│   │   └── remote.pro
│   ├── testapp
│   │   ├── app.qbs
│   │   ├── TestApp.cpp
│   │   └── TestApp.hpp
│   └── zoo
│       ├── app.qbs
│       ├── ZooMain.cpp
│       ├── ZooMain.hpp
│       └── zoo.pro
├── test
│   ├── new_test.sh
│   ├── templates
│   │   ├── profileTemplate
│   │   │   ├── ProfileTemplate.cpp
│   │   │   ├── ProfileTemplate.hpp
│   │   │   └── profileTemplate.pro
│   │   ├── stressTemplate
│   │   │   ├── StressTemplate.cpp
│   │   │   ├── StressTemplate.hpp
│   │   │   └── stressTemplate.pro
│   │   └── testTemplate
│   │       ├── TestTemplate.cpp
│   │       ├── TestTemplate.hpp
│   │       └── testTemplate.pro
│   ├── test* Each test is in it's own test* folder here




Peers

The project contains 3 main peers:

Since all peers are written in the same code base, it is easy to move or duplicate features between them. For example, if you have sufficiently powerful hardware on board the robot to do SLAM there, simply invoke SLAM from the agent directly.