a5-015 / ramen Goto Github PK
View Code? Open in Web Editor NEWRaft Consensus Algorithm Coupled With an IEEE 802.11 Based Mesh Network for Embedded Systems
License: GNU General Public License v3.0
Raft Consensus Algorithm Coupled With an IEEE 802.11 Based Mesh Network for Embedded Systems
License: GNU General Public License v3.0
Don't call painlessMesh functions from ramen source. Rather, have an adapter in-between so that painlessMesh can be swapped out for another library down the line.
From the proposal:
For our project, we will generate model networks with 20, 50, 100, 200, 500, and 1000 nodes in areas of 500m^2, 1000m^2, and 2000m^2, for both star and mesh topologies. For each combination, we will run 1000 simulations and gather and study the generated statistics.
Work is being done on graphs branch
Just dropping this here as a reminder https://www.eclipse.org/sumo/
Work Breakdown Structure
Design Structure Matrix
Critical Paths
Gantt Chart
use mermaid.js
Evaluation Criteria
Testing Criteria
I think it would be really cool if we go completely wireless in the final prototype for demonstrating the project (related issue #6). Otherwise, there will be many micro USB power cables connected to ESP8266s. It would look bad and kinda against our low-power consumption ideal/metric.
So, we can design a simple PCB with a few buttons, LEDs, 2xAA battery holder, and female pins for plugging an ESP8266 (and maybe even a small OLED screen?). Later, we can 3D print really simple cases for each of these "node"s.
๐
Background Research
Concept Generation with Morphological Chart
Concept Selection with Pugh Chart or Decision Matrix
The simulation input for Coracle in JSON format.
Having a bunch of ESPs connected to each other
Propagation of signal from one node to the rest of the nodes
Bringing a new node into the network allows for re-organization autonomously
A subcomponent of #13
As far as I remember, Sundays 3 pm was suitable for everyone.
Problem Analysis
Problem Clarification (Black-box Modelling)
Problem Statement
Implement something like Chaos Monkey for testing the network resiliency in the catch testing.
sim_config.py
uses node IDs generated by network_generator.py
. However, since the mesh network generation is probabilistic, not the exact number of nodes are generated in the network.
So, if we want a mesh network of 5 nodes, we may actually end up with a list of node IDs in the network such as:
"nodes": [
{
"type": "server",
"id": 1
},
{
"type": "server",
"id": 4
},
{
"type": "server",
"id": 5
},
]
instead of
"nodes": [
{
"type": "server",
"id": 1
},
{
"type": "server",
"id": 2
},
{
"type": "server",
"id": 3
},
{
"type": "server",
"id": 4
},
{
"type": "server",
"id": 5
},
],
As a result, the events section will look like:
"nodes": [
{
"id": 1,
"active": true
},
{
"id": 4,
"active": true
},
{
"id": 5,
"active": true
}
]
but Coracle hates that and crashes when it comes across something like that. Turns out Coracle expects node IDs to be sequential and consecutive...
"nodes": [
{
"type": "server",
"id": 1
},
{
"type": "server",
"id": 2
},
{
"type": "server",
"id": 3
},
]
"nodes": [
{
"id": 1,
"active": true
},
{
"id": 2,
"active": false
},
{
"id": 3,
"active": false
},
{
"id": 4,
"active": true
},
{
"id": 5,
"active": true
]
The format used in the references is not unified due to copying BibTeX style citations from different places. We need to make sure that they all follow the same format.
We just hit the free 300MB storage limit, it is time for some cleaning!
Create a template class to avoid code repetition in messages.hpp. All the classes have a similar structure so it is quite repetitive
The document compiles, but there is a crazy amount of warnings and errors happening in the background. Overleaf somehow fixes these errors on the fly, but the "code" wouldn't compile outside of Overleaf because of these errors. We need to fix them.
A good read related to this issue: https://tex.meta.stackexchange.com/questions/7898/examples-of-overleaf-users-not-noticing-error-messages
or overflows in a controlled manner
Technical Constraints
Non-technical Constraints
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.