From 736a7f3eb1e63e323c70ca0082757d5a6d9aa047 Mon Sep 17 00:00:00 2001 From: Ben Coppock Date: Sat, 15 Nov 2025 14:34:19 -0800 Subject: [PATCH] Rename `modbus_schema` to `schema` --- README.md | 2 +- lib/modboss.ex | 4 ++-- lib/modboss/encoding.ex | 2 +- lib/modboss/schema.ex | 8 ++++---- test/modboss/schema_test.exs | 20 ++++++++++---------- test/modboss_test.exs | 32 ++++++++++++++++---------------- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index a4f531c..35f1a82 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Decode functions will receive the values to decode and must return defmodule MyDevice.Schema do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :outdoor_temp, as: {ModBoss.Encoding, :signed_int} holding_register 2..5, :model_name, as: {ModBoss.Encoding, :ascii} holding_register 6, :version, as: :fw_version, mode: :rw diff --git a/lib/modboss.ex b/lib/modboss.ex index 6e4d23b..13cb11f 100644 --- a/lib/modboss.ex +++ b/lib/modboss.ex @@ -84,7 +84,7 @@ defmodule ModBoss do end defp readable_mappings(module) do - module.__modbus_schema__() + module.__modboss_schema__() |> Enum.filter(fn {_, mapping} -> Mapping.readable?(mapping) end) |> Enum.map(fn {name, _mapping} -> name end) end @@ -190,7 +190,7 @@ defmodule ModBoss do @spec get_mappings(mode(), module(), list()) :: {:ok, [Mapping.t()]} | {:error, String.t()} defp get_mappings(mode, module, mapping_names) when is_list(mapping_names) do - schema = module.__modbus_schema__() + schema = module.__modboss_schema__() {mappings, unknown_names} = mapping_names diff --git a/lib/modboss/encoding.ex b/lib/modboss/encoding.ex index 4d18e13..1b22d1d 100644 --- a/lib/modboss/encoding.ex +++ b/lib/modboss/encoding.ex @@ -10,7 +10,7 @@ defmodule ModBoss.Encoding do To use them, pass them along with this module name to the `:as` option. For example: - modbus_schema do + schema do holding_register 1..5, :model, as: {ModBoss.Encoding, :ascii} end diff --git a/lib/modboss/schema.ex b/lib/modboss/schema.ex index d820a4d..f215f4a 100644 --- a/lib/modboss/schema.ex +++ b/lib/modboss/schema.ex @@ -75,7 +75,7 @@ defmodule ModBoss.Schema do defmodule MyDevice.Schema do use ModBoss.Schema - modbus_schema do + schema do holding_register 1..5, :model, as: {ModBoss.Encoding, :ascii} holding_register 6, :outdoor_temp, as: {ModBoss.Encoding, :signed_int} holding_register 7, :indoor_temp, as: {ModBoss.Encoding, :unsigned_int} @@ -100,7 +100,7 @@ defmodule ModBoss.Schema do max_writes = Keyword.get(opts, :max_batch_writes, []) quote do - import unquote(__MODULE__), only: [modbus_schema: 1] + import unquote(__MODULE__), only: [schema: 1] Module.register_attribute(__MODULE__, :modboss_mappings, accumulate: true) Module.put_attribute(__MODULE__, :max_reads_per_batch, unquote(max_reads)) @@ -113,7 +113,7 @@ defmodule ModBoss.Schema do @doc """ Establishes a Modbus schema in the current module. """ - defmacro modbus_schema(do: block) do + defmacro schema(do: block) do quote do (fn -> import unquote(__MODULE__), @@ -287,7 +287,7 @@ defmodule ModBoss.Schema do def __max_batch__(:write, :holding_register), do: unquote(max_holding_register_writes) def __max_batch__(:write, :coil), do: unquote(max_coil_writes) - def __modbus_schema__, do: unquote(mappings) + def __modboss_schema__, do: unquote(mappings) end end end diff --git a/test/modboss/schema_test.exs b/test/modboss/schema_test.exs index 2e1d55c..8378e0a 100644 --- a/test/modboss/schema_test.exs +++ b/test/modboss/schema_test.exs @@ -4,7 +4,7 @@ defmodule ModBoss.SchemaTest do defmodule ExampleSchema do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo_holding_register holding_register 2, :bar_holding_register, mode: :r holding_register 3, :baz_holding_register, mode: :rw @@ -43,7 +43,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo holding_register 2, :foo end @@ -58,7 +58,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo input_register 1, :bar coil 1, :baz @@ -76,7 +76,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :nope holding_register 1, :nah coil 1, :okay @@ -95,7 +95,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do #{object_type} 1, :all end end @@ -116,7 +116,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo, mode: #{inspect(mode)} end end @@ -137,7 +137,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do input_register 1, :foo, mode: #{inspect(mode)} end end @@ -158,7 +158,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do coil 1, :foo, mode: #{inspect(mode)} end end @@ -179,7 +179,7 @@ defmodule ModBoss.SchemaTest do defmodule #{unique_module()} do use ModBoss.Schema - modbus_schema do + schema do discrete_input 1, :foo, mode: #{inspect(mode)} end end @@ -194,6 +194,6 @@ defmodule ModBoss.SchemaTest do end defp mapping(module, name) do - module.__modbus_schema__() |> Map.fetch!(name) + module.__modboss_schema__() |> Map.fetch!(name) end end diff --git a/test/modboss_test.exs b/test/modboss_test.exs index 4275a65..71214d2 100644 --- a/test/modboss_test.exs +++ b/test/modboss_test.exs @@ -4,7 +4,7 @@ defmodule ModBossTest do defmodule FakeSchema do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo holding_register 2, :bar, mode: :r holding_register 3, :baz, mode: :w @@ -82,7 +82,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1..124, :holding_1 holding_register 125, :holding_125 holding_register 126, :holding_126 @@ -171,7 +171,7 @@ defmodule ModBossTest do discrete_inputs: #{max_discrete_input_reads} ] - modbus_schema do + schema do holding_register 1, :holding_foo holding_register 2, :holding_bar holding_register 3, :holding_baz @@ -251,7 +251,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1..2, :holding_1 coil 101, :coil_1 @@ -302,7 +302,7 @@ defmodule ModBossTest do use ModBoss.Schema alias ModBoss.Encoding - modbus_schema do + schema do # Assumes the function lives in the current module… holding_register 1, :yep, as: :boolean holding_register 2, :nope, as: :boolean @@ -337,7 +337,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do # Assumes the function lives in the current module… holding_register 1, :yep, as: :boolean holding_register 2, :nope, as: :boolean @@ -368,7 +368,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :yep, as: :boolean holding_register 2, :nope, as: :boolean holding_register 3..5, :text, as: {ModBoss.Encoding, :ascii} @@ -403,7 +403,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :yep, as: :boolean holding_register 2, :nope, as: :boolean end @@ -431,7 +431,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1..2, :foo input_register 300, :bar coil 400, :baz @@ -509,7 +509,7 @@ defmodule ModBossTest do use ModBoss.Schema alias ModBoss.Encoding - modbus_schema do + schema do # Assumes the function lives in the current module… holding_register 1, :yep, as: :boolean, mode: :w holding_register 2, :nope, as: :boolean, mode: :w @@ -551,7 +551,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1..122, :holding_1, mode: :w holding_register 123, :holding_123, mode: :w holding_register 124, :holding_124, mode: :w @@ -591,7 +591,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :holding_1, mode: :w holding_register 2, :holding_2, mode: :w @@ -618,7 +618,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema, max_batch_writes: %{holding_registers: 2, coils: 2} - modbus_schema do + schema do holding_register 1, :holding_foo, mode: :w holding_register 2..3, :holding_bar, mode: :w holding_register 4, :holding_baz, mode: :w @@ -661,7 +661,7 @@ defmodule ModBossTest do use ModBoss.Schema alias ModBoss.Encoding - modbus_schema do + schema do holding_register 1, :foo, as: {Encoding, :boolean} holding_register 2, :bar, as: {Encoding, :boolean} holding_register 3..4, :baz, as: {Encoding, :ascii} @@ -700,7 +700,7 @@ defmodule ModBossTest do use ModBoss.Schema alias ModBoss.Encoding - modbus_schema do + schema do holding_register 1, :foo, as: {Encoding, :boolean} holding_register 2, :bar, as: {Encoding, :boolean} holding_register 3..4, :baz, as: {Encoding, :ascii} @@ -738,7 +738,7 @@ defmodule ModBossTest do defmodule #{schema} do use ModBoss.Schema - modbus_schema do + schema do holding_register 1, :foo holding_register 2, :bar end