# dmac ## Distributed Monitoring and Control This branch will serve as the staging ground for adding unit tests and documentation in order to finalize v0.1.0-alpha ## Table of Contents * [Introduction](#introduction) * [Getting Started](#getting-started) * [Installation](#installation) * [Usage](#usage) * [Wiki](wiki/wiki.md) * [Overview](wiki/wiki.md#overview) * [Server](wiki/server.md) * [Reactor](wiki/reactor.md) * [Hardware](wiki/reactor.md#hardware) * [Networking](wiki/networking.md) * [GUI](wiki/gui.md) * [API](wiki/api.md) * [Future Work](wiki/future-work.md) ## Introduction FRMS serves as both an internal framework for testing reactor designs as well as a scalable customer facing application for monitoring and control. The project makes heavy use of low-cost yet powerful embedded systems capable of running full Linux kernels. Examples include the [BeagleBone Black](https://beagleboard.org/black) which was heavily used in development of FRMS as well as the popular [Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/). For more information about the hardware used in the reactors see [here](wiki/reactor.md#hardware). In its current state, FRMS is very bare bones and exists mostly as a proof of concept. Quickly navigate to: - [Getting started](#getting-started) - [Improving the project](wiki/future-work.md) - [More information](wiki/wiki.md) - [Bugs/questions](https://github.com/fl-src/FRMS/issues/new) ## Getting Started For specific information about decisions made in development see [here](wiki/wiki.md). ### Installation The project uses a make alternative called [task](https://github.com/go-task/task) written in go for building and testing. After using `git clone git@github.com:fl-src/FRMS.git` to clone the repository, you can then build binaries of the two commands `server` and `reactor` for testing. The binaries will be put into the `bin/` folder and will be labeled with the platform and architecture they were built for. **WARNING**: The reactor binary currently relies on the Linux [i2c-tools](https://archive.kernel.org/oldwiki/i2c.wiki.kernel.org/index.php/I2C_Tools.html) to interact with the i2c bus. This may cause undefined behavior when run on a device without the tools installed. More information about this design choice can be found [here](wiki/reactor.md#i2c) ### Usage ## Technical Information ### Overview ### Reactor ### Networking ### GUI ### API ### Future Work