Skip to content

Commit

Permalink
removed board elements
Browse files Browse the repository at this point in the history
  • Loading branch information
matgla committed Dec 7, 2024
1 parent ffe4273 commit 3fda1ad
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 40 deletions.
1 change: 1 addition & 0 deletions run_blinky.resc
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ logLevel -1 sysbus.gpio.led1
logLevel -1 sysbus.gpio.led2

startVisualization 1234
visualizationSetBoardElement led
visualizationLoadLayout $ORIGIN/blinky_layout.json
10 changes: 4 additions & 6 deletions visualization/visualization.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,22 +143,20 @@ def mc_startVisualization(port):


def mc_visualizationLoadLayout(file):
print("Loading visualization layout from: " + file)
global layout
if not os.path.exists(file):
print("Layout file doesn't exists: ", file)
print("Layout file doesn't exists: " + file)
return
with open(file, "r") as f:
layout = json.load(f)

sendMessage({"msg": "load_layout", "file": layout})

def mc_visualizationSetLedOnBoard(name):
def mc_visualizationSetBoardElement(name):
print("Setting board element: " + name)
sendMessage({"msg": "set_board_element", "name": name})

def mc_visualizationSetButtonOnBoard(name):
sendMessage({"msg": "set_board_element", "name": name})


def sendMessage(message):
global process
if process.poll() is None:
Expand Down
12 changes: 6 additions & 6 deletions visualization/visualization/build/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"files": {
"main.css": "/static/css/main.7bab5a1f.css",
"main.js": "/static/js/main.4eed8faa.js",
"main.js": "/static/js/main.75be53a9.js",
"static/media/Raspberry_Pi_Pico_top.png": "/static/media/Raspberry_Pi_Pico_top.e33f028f5df6fa7a8812.png",
"static/media/breadboard.svg": "/static/media/breadboard.b02ce936b8b548e20e199821ba9de7e1.svg",
"static/media/button.svg": "/static/media/button.355a8ce9d4cf317321a3978342d45a6b.svg",
"static/media/led.svg": "/static/media/led.af9aa24785412be850e812f429bfd727.svg",
"static/media/breadboard.svg": "/static/media/breadboard.0b169a51ffbe1f7f8bd530e8f6cb7ed8.svg",
"static/media/button.svg": "/static/media/button.477b4b211bc442f2c7af47352b66f76c.svg",
"static/media/led.svg": "/static/media/led.4768c0df04932f68cd84bba91e9f7349.svg",
"index.html": "/index.html",
"main.7bab5a1f.css.map": "/static/css/main.7bab5a1f.css.map",
"main.4eed8faa.js.map": "/static/js/main.4eed8faa.js.map"
"main.75be53a9.js.map": "/static/js/main.75be53a9.js.map"
},
"entrypoints": [
"static/css/main.7bab5a1f.css",
"static/js/main.4eed8faa.js"
"static/js/main.75be53a9.js"
]
}
2 changes: 1 addition & 1 deletion visualization/visualization/build/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.4eed8faa.js"></script><link href="/static/css/main.7bab5a1f.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.75be53a9.js"></script><link href="/static/css/main.7bab5a1f.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions visualization/visualization/src/components/Breadboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ const Breadboard = forwardRef(({ gridColumns, gridRows, editWidget }, ref) => {
ws.current = new WebSocket("ws://" + window.location.host + "/ws");
ws.current.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log(msg);
if (msg.msg == "register") {
if (msg.peripheral_type == "led") {
if (!leds.includes(msg.name)) {
Expand Down
66 changes: 44 additions & 22 deletions visualization/visualization_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,17 @@ def run_http_server():
runner = web.AppRunner(app)
return runner


leds = {}
board_elements = []
buttons = []
layout = None

async def set_board_element(msg):
global board_elements
global leds
# for now, just remove, support in the next feature
if msg.name in leds:
del leds[msg.name]
await ws.send_str(json.dumps(msg))
board_elements.append(msg["name"])
await send_to_clients(msg)

async def send_to_clients(msg):
if clients:
Expand All @@ -54,6 +55,9 @@ async def send_to_clients(msg):


async def register_device(msg):
if msg["name"] in board_elements:
msg["msg"] = "register_board_element"

if msg["peripheral_type"] == "led":
leds[msg["name"]] = msg["state"]
await send_to_clients(msg)
Expand All @@ -80,17 +84,17 @@ async def process_message(message, stop_event):
for ws in clients:
await ws.close()

if message["msg"] == "register":
elif message["msg"] == "register":
await register_device(message)

if message["msg"] == "state_change":
elif message["msg"] == "state_change":
await state_change(message)

if message["msg"] == "load_layout":
elif message["msg"] == "load_layout":
await load_layout(message)

if message["msg"] == "set_board_element":
elif message["msg"] == "set_board_element":
await set_board_element(message)
else:
raise RuntimeError("Unhandled message")



async def process_message_from_ws(msg):
Expand All @@ -105,19 +109,37 @@ async def websocket_handler(request):

clients.append(ws)
for led, value in leds.items():
await ws.send_str(
json.dumps({
"msg": "register",
"peripheral_type": "led",
"name": led,
"state": value,
})
)
if led in board_elements:
await ws.send_str(
json.dumps({
"msg": "register_board_element",
"peripheral_type": "led",
"name": led,
"state": value,
})
)

else:
await ws.send_str(
json.dumps({
"msg": "register",
"peripheral_type": "led",
"name": led,
"state": value,
})
)

for button in buttons:
await ws.send_str(
json.dumps({"msg": "register", "peripheral_type": "button", "name": button})
)
if button in board_elements:
await ws.send_str(
json.dumps({"msg": "register_board_element", "peripheral_type": "button", "name": button})
)


else:
await ws.send_str(
json.dumps({"msg": "register", "peripheral_type": "button", "name": button})
)

if layout is not None:
await ws.send_str(json.dumps({"msg": "load_layout", "file": layout}))
Expand Down

0 comments on commit 3fda1ad

Please sign in to comment.