You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.1 KiB
Plaintext

time to plan
terms
RLC - reactor level coordinator (Beagleboard)
RH - Reactor Handler (goroutine)
SH - sensor handler (gourtine)
Reactor Side:
needs
- way to discover active sensors
- spin up goroutine for each sensor responsible for keeping status and logs
- way to read back and truncate logs for safe data delivery to servr
- routing requests from reactor level coordinator to relevant sensor
- internal memory sharing and channels for reactor level coordination
thoughts
- maybe the RLC can be responsible for packaging data for coordinator response
adv:
- clears up the network
- simplifies pinging
- keeps the data aributrary
cons:
- unknown data size
- how to coordinate data structure
Server Side:
needs
- way to look into a config file for active reactors
- should then spin up a goroutine for each reactor
- responsible for recovery and consistent communication
- individual database entries
- API?
- use gRPC for comms between server and BB
- each reactor handler needs mechanism for pinging, recovery, and database correctness
-
message PingRequest {
// do we even need anything in a ping request?
}
message PingResponse {
repeated Sensor sensor = 1;
}
message Sensor {
string type = 1;
bool status = 2;
byte data = 3;
}
sensors := [string]q
3 years ago
6/23 TODO:
3 years ago
X- BBB mem fix
- 32 gig for the main but where to put the OS?
- obv in EMMC but how to init sd card? (probably dev tree :( )
Y- Server side impl
Y - Need a struct for the RC
X - Should we store and load configs based on IDs? (efficiency of this vs performance increases i.e. bandwidth vs storage)
Y/X - Who should kill the RC and how do we know its dead? (Garbage collection to the rescue hopefully)
X- UPDATE PRES
- Add bottle necks for each part in that section
- I2C: 128 addrs and ~90 bytes/s per device at 128 devs optimally
- BB: Hardware is upgradeable even customizable ;)
- Server: Its overkill as is, can benchmark with a rudementary go overload once its completed
- Sensor configs
- how to store sensor info efficiently and searchably lol
- who needs to know what the sensor is? (Just the SM? Even the SM?)
X- TUI
- pls this would be so sick
TODO: 6-24
Y - Pres stuff from yesterday + python gRPC abstraction
Y - RPI flash
- Add resiliance to coordinator process (aka error handley blech)
TODO 6/27
- Time to tackle sensor managers officially
- to hell with port generation
- going to use channels but not like a jackass
- going to try generating channels interface side but via implicit types to avoid the interface stff
- should set up a structure where I can use arbiturary types on the backend and fulfill methods to get/infer information on the frontend
- rewrite I2C interface to employ same method, should allow for this
1) generate type
2) send it to worker
3) receive back (original? copy?)
4) use interface methods to get required values
- should simplify all internal communication and potentially suggests api for implementation