farmbot_os/docs/project/farmbot_os.md

1.4 KiB

FarmBot OTP App

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