csys: init steps, work in progress: create, connect via env
This commit is contained in:
parent
dad38ad2c6
commit
5b9597ea79
2 changed files with 21 additions and 11 deletions
|
|
@ -21,10 +21,6 @@ defmodule Scopes.CSys.Environ do
|
|||
[:csys, :created | _rest] ->
|
||||
process_creation(msg, scope)
|
||||
send(env, msg)
|
||||
[dom, :for, cat, item] ->
|
||||
#IO.inspect(CSys.state(scope).cells)
|
||||
cell = get_in(state.cells, [{dom, cat}, item])
|
||||
CSys.send_message(cell, [dom, :data], Shape.data(msg))
|
||||
_ -> send(env, msg) # forward message to application
|
||||
end
|
||||
end
|
||||
|
|
@ -50,11 +46,22 @@ defmodule Scopes.CSys.Environ do
|
|||
end
|
||||
end
|
||||
|
||||
def send_message(state, [dom, cat, item], head, data) do
|
||||
cell = get_in(state.cells, [{dom, cat}, item])
|
||||
# accessing cell registry via state.cells
|
||||
|
||||
def get_cell(state, [dom, cat, item]) do
|
||||
get_in(state.cells, [{dom, cat}, item])
|
||||
end
|
||||
|
||||
def send_message(state, addr, head, data) do
|
||||
cell = get_cell(state, addr)
|
||||
CSys.send_message(cell, head, data)
|
||||
end
|
||||
|
||||
def connect(state, addr, target, op) do
|
||||
send_message(state, addr, ~w(csys connect)a,
|
||||
%{target: get_cell(state, target), op: op})
|
||||
end
|
||||
|
||||
# delegating tasks to env
|
||||
|
||||
def delegate(env, func) do
|
||||
|
|
@ -63,6 +70,5 @@ defmodule Scopes.CSys.Environ do
|
|||
|
||||
def forward_value(env, addr, value) do
|
||||
delegate(env, &send_message(&1, addr, ~w(csys data)a, %{value: value}))
|
||||
#CSys.send_message(env, [dom, :for, cat, item], %{value: value})
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -153,11 +153,15 @@ defmodule Scopes.CSys.Program do
|
|||
end
|
||||
|
||||
def init_recursive_1() do [
|
||||
fn %Environ.State{neurons: [zero]} ->
|
||||
#zero = [:csys, :c00, {0, 0}]
|
||||
CSys.send_message(zero, ~w(csys connect)a, %{target: zero, op: negate()})
|
||||
fn state ->
|
||||
zero = [:csys, :c00, {0, 0}]
|
||||
#%Environ.State{neurons: [zero]} = state
|
||||
#CSys.send_message(zero, ~w(csys connect)a, %{target: zero, op: negate()})
|
||||
#Environ.send_message(state, zero, ~w(csys connect)a, %{target: zero, op: negate()})
|
||||
CSys.send_message(zero, ~w(csys create succ)a, %{addr: [:csys, :e01, {1, 1}]})
|
||||
Environ.connect(state, zero, zero, negate())
|
||||
Environ.send_message(state, zero, ~w(csys create succ)a,
|
||||
%{addr: [:csys, :e01, {1, 1}]})
|
||||
#CSys.send_message(zero, ~w(csys create succ)a, %{addr: [:csys, :e01, {1, 1}]})
|
||||
end
|
||||
]
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue