csys: remove unneeded code, minor clean-up, set sleep after init to 30ms

This commit is contained in:
Helmut Merz 2026-05-25 16:11:11 +02:00
parent 45086fc424
commit 9392c8c12d
3 changed files with 8 additions and 13 deletions

View file

@ -58,7 +58,7 @@ defmodule Scopes.CSys do
# send shortcuts # send shortcuts
def send_message(rcvr, head, data \\ %{}) do def send_message(rcvr, head, data \\ %{}) do
Logger.info([rcvr: inspect(rcvr), head: inspect(head), data: inspect(data)]) Logger.info rcvr: inspect(rcvr), head: inspect(head), data: inspect(data)
Actor.send(rcvr, Shape.create(head, data: data)) Actor.send(rcvr, Shape.create(head, data: data))
end end

View file

@ -4,7 +4,7 @@ defmodule Scopes.CSys.Environ do
alias Scopes.Shape alias Scopes.Shape
defmodule State do defmodule State do
defstruct [neurons: [], cells: %{}, init_seq: []] defstruct [cells: %{}, init_seq: []]
end end
def setup({state, proc}, seq \\ []) do def setup({state, proc}, seq \\ []) do
@ -18,9 +18,7 @@ defmodule Scopes.CSys.Environ do
def proc_env(msg, scope = {state, _proc, _syns, env}) do def proc_env(msg, scope = {state, _proc, _syns, env}) do
case Shape.head(msg) do case Shape.head(msg) do
{:exec, func} -> func.(state) {:exec, func} -> func.(state)
[:csys, :created | _rest] -> [:csys, :created | _rest] -> process_creation(msg, scope)
process_creation(msg, scope)
#send(env, msg)
_ -> send(env, msg) # forward message to application _ -> send(env, msg) # forward message to application
end end
end end
@ -36,12 +34,11 @@ defmodule Scopes.CSys.Environ do
else else
state.cells state.cells
end end
neurons = [new | state.neurons]
{step, seq} = List.pop_at(state.init_seq, 0) {step, seq} = List.pop_at(state.init_seq, 0)
state1 = %State{neurons: neurons, cells: cells, init_seq: seq} state1 = %State{cells: cells, init_seq: seq}
CSys.update({state1, proc, syns, env}) CSys.update({state1, proc, syns, env})
if step do if step do
Process.sleep(1) #Process.sleep(1)
step.(state1) step.(state1)
end end
end end

View file

@ -1,5 +1,5 @@
defmodule Scopes.CSysTest do defmodule Scopes.CSysTest do
use ExUnit.Case, async: true use ExUnit.Case, async: false
@moduletag timeout: 5000 @moduletag timeout: 5000
#alias Scopes.CSys #alias Scopes.CSys
@ -19,8 +19,7 @@ defmodule Scopes.CSysTest do
describe "basic-program:" do describe "basic-program:" do
test "minimal-b1" do test "minimal-b1" do
env = Environ.setup(Program.prepare_basic(), Program.init_seq_b1()) env = Environ.setup(Program.prepare_basic(), Program.init_seq_b1())
#receive_data(~w(csys created)a) Process.sleep(30)
Process.sleep(10)
Environ.forward_value(env, [:csys, :c00, {0, 0}], 0) Environ.forward_value(env, [:csys, :c00, {0, 0}], 0)
assert 0 = receive_data().value assert 0 = receive_data().value
Environ.forward_value(env, [:csys, :s01, {1, 0}], 1) Environ.forward_value(env, [:csys, :s01, {1, 0}], 1)
@ -34,8 +33,7 @@ defmodule Scopes.CSysTest do
test "recursive-1" do test "recursive-1" do
env = Environ.setup(Program.prepare_basic(), Program.init_recursive_1()) env = Environ.setup(Program.prepare_basic(), Program.init_recursive_1())
#receive_data(~w(csys created)a) Process.sleep(30)
Process.sleep(10)
Environ.forward_value(env, [:csys, :c00, {0, 0}], 42) Environ.forward_value(env, [:csys, :c00, {0, 0}], 42)
assert receive_data().value == 42 assert receive_data().value == 42
refute_received msg, "unhandled message(s): #{inspect(msg)}" refute_received msg, "unhandled message(s): #{inspect(msg)}"