53 lines
1.5 KiB
Markdown
53 lines
1.5 KiB
Markdown
# FarmBot OTP App
|
|
|
|
## Normal Subsystems
|
|
|
|
the `farmbot` OTP app is the container Nerves based application. It contains mostly
|
|
glue code between all the subsystems in the other applications along with it's own
|
|
platform specific subsystems.
|
|
|
|
### CeleryScript System Calls
|
|
|
|
The "official" implementation of all the CeleryScript syscalls. These calls are mostly
|
|
glue to other existing implementations from the other otp apps.
|
|
|
|
### Lua Subsystem
|
|
|
|
The implementation of the embedded scripting language inside CeleryScript.
|
|
Also contains glue code for glueing together the real implementation to the
|
|
Lua vm.
|
|
|
|
### Configurator Subsystem
|
|
|
|
HTTP server responsible for configuring the running FarmBot OS instance. Will
|
|
server a web page that allows a user to supply a username, password, network credentials
|
|
etc.
|
|
|
|
## Platform specific subsystems
|
|
|
|
the `farmbot_os` OTP app contains target/hardware specific systems. This code is
|
|
located in the `platform` directory.
|
|
|
|
### Network subsystem
|
|
|
|
Responsible for getting FarmBot connected to the (inter)net. If no network
|
|
configuration is available, FarmBot will create a captive portal access
|
|
point to allow external devices to configure it.
|
|
|
|
### GPIO subsystem
|
|
|
|
Responsible for implementing LED and Button support at the hardware level.
|
|
|
|
### RTC subsystem
|
|
|
|
Responsible for syncronizing network time to an attached hardware clock.
|
|
|
|
### Info Worker subsystem
|
|
|
|
Responsible for simple workers that handle things like
|
|
|
|
* CPU temperature
|
|
* CPU usage
|
|
* memory usage
|
|
* disk usage
|