116 lines
3.5 KiB
Elixir
116 lines
3.5 KiB
Elixir
defmodule Farmbot.Asset.Settings.FirmwareConfig do
|
|
@moduledoc false
|
|
import Farmbot.Asset.Settings.Helpers
|
|
require Farmbot.Logger
|
|
@keys ~W(pin_guard_4_time_out
|
|
pin_guard_1_active_state
|
|
encoder_scaling_y
|
|
movement_invert_2_endpoints_x
|
|
movement_min_spd_y
|
|
pin_guard_2_time_out
|
|
movement_timeout_y
|
|
movement_home_at_boot_y
|
|
movement_home_spd_z
|
|
movement_invert_endpoints_z
|
|
pin_guard_1_pin_nr
|
|
movement_invert_endpoints_y
|
|
movement_max_spd_y
|
|
movement_home_up_y
|
|
encoder_missed_steps_decay_z
|
|
movement_home_spd_y
|
|
encoder_use_for_pos_x
|
|
movement_step_per_mm_x
|
|
movement_home_at_boot_z
|
|
movement_steps_acc_dec_z
|
|
pin_guard_5_pin_nr
|
|
movement_invert_motor_z
|
|
movement_max_spd_x
|
|
movement_enable_endpoints_y
|
|
movement_enable_endpoints_z
|
|
movement_stop_at_home_x
|
|
movement_axis_nr_steps_y
|
|
pin_guard_1_time_out
|
|
movement_home_at_boot_x
|
|
pin_guard_2_pin_nr
|
|
encoder_scaling_z
|
|
param_e_stop_on_mov_err
|
|
encoder_enabled_x
|
|
pin_guard_2_active_state
|
|
encoder_missed_steps_decay_y
|
|
movement_home_up_z
|
|
movement_enable_endpoints_x
|
|
movement_step_per_mm_y
|
|
pin_guard_3_pin_nr
|
|
param_mov_nr_retry
|
|
movement_stop_at_home_z
|
|
pin_guard_4_active_state
|
|
movement_steps_acc_dec_y
|
|
movement_home_spd_x
|
|
movement_keep_active_x
|
|
pin_guard_3_time_out
|
|
movement_keep_active_y
|
|
encoder_scaling_x
|
|
movement_invert_2_endpoints_z
|
|
encoder_missed_steps_decay_x
|
|
movement_timeout_z
|
|
encoder_missed_steps_max_z
|
|
movement_min_spd_z
|
|
encoder_enabled_y
|
|
encoder_type_y
|
|
movement_home_up_x
|
|
pin_guard_3_active_state
|
|
movement_invert_motor_x
|
|
movement_keep_active_z
|
|
movement_max_spd_z
|
|
movement_secondary_motor_invert_x
|
|
movement_stop_at_max_x
|
|
movement_steps_acc_dec_x
|
|
pin_guard_4_pin_nr
|
|
encoder_type_x
|
|
movement_invert_2_endpoints_y
|
|
encoder_invert_y
|
|
movement_axis_nr_steps_x
|
|
movement_stop_at_max_z
|
|
movement_invert_endpoints_x
|
|
encoder_invert_z
|
|
encoder_use_for_pos_z
|
|
pin_guard_5_active_state
|
|
movement_step_per_mm_z
|
|
encoder_enabled_z
|
|
movement_secondary_motor_x
|
|
pin_guard_5_time_out
|
|
movement_min_spd_x
|
|
encoder_type_z
|
|
movement_stop_at_max_y
|
|
encoder_use_for_pos_y
|
|
encoder_missed_steps_max_y
|
|
movement_timeout_x
|
|
movement_stop_at_home_y
|
|
movement_axis_nr_steps_z
|
|
encoder_invert_x
|
|
encoder_missed_steps_max_x
|
|
movement_invert_motor_y)
|
|
|
|
def download(new, old) do
|
|
new = Map.take(new, @keys)
|
|
for k <- @keys do
|
|
if old[k] != new[k] do
|
|
try do
|
|
apply_kv(k, new[k], old[k])
|
|
rescue
|
|
_ -> Farmbot.Logger.error 1, "Failed to apply Firmware Config: #{k}"
|
|
end
|
|
end
|
|
end
|
|
:ok
|
|
end
|
|
|
|
def log(key, new, old) do
|
|
Farmbot.Logger.info 3, "Firmware Config #{key} updated: #{new || "NULL"} => #{old || "NULL"}"
|
|
end
|
|
|
|
for key <- @keys do
|
|
fw_float(unquote(key))
|
|
end
|
|
end
|