farmbot_os/farmbot_os/lib/farmbot_os/lua/ext/data.ex

74 lines
1.8 KiB
Elixir

defmodule FarmbotOS.Lua.Ext.Data do
@moduledoc """
Extensions for manipulating data from Lua
"""
import FarmbotOS.Lua.Util
alias FarmbotCore.{
Asset,
Asset.Device,
Asset.FbosConfig,
Asset.FirmwareConfig
}
def update_device([table], lua) do
params = Map.new(table)
_ = Asset.update_device!(params)
{[true], lua}
end
def get_device([field], lua) do
device = Asset.device() |> Device.render()
{[device[String.to_atom(field)]], lua}
end
def get_device(_, lua) do
device = Asset.device() |> Device.render()
{[map_to_table(device)], lua}
end
def update_fbos_config([table], lua) do
params = Map.new(table)
_ = Asset.update_fbos_config!(params)
{[true], lua}
end
def get_fbos_config([field], lua) do
fbos_config = Asset.fbos_config() |> FbosConfig.render()
{[fbos_config[String.to_atom(field)]], lua}
end
def get_fbos_config(_, lua) do
fbos_config = Asset.fbos_config() |> FbosConfig.render()
{[map_to_table(fbos_config)], lua}
end
def update_firmware_config([table], lua) do
params = Map.new(table)
_ = Asset.update_firmware_config!(params)
{[true], lua}
end
def get_firmware_config([field], lua) do
firmware_config = Asset.firmware_config() |> FirmwareConfig.render()
{[firmware_config[String.to_atom(field)]], lua}
end
def get_firmware_config(_, lua) do
firmware_config = Asset.firmware_config() |> FirmwareConfig.render()
{[map_to_table(firmware_config)], lua}
end
def new_farmware_env([table], lua) do
params = Map.new(table)
_ = Asset.new_farmware_env(params)
{[true], lua}
end
def new_sensor_reading([table], lua) do
params = Map.new(table)
_ = Asset.new_sensor_reading!(params)
{[true], lua}
end
end