import networkx as nx import serial from ipkvm.util.mkb import HIDKeyCode import json import time # Load the Graphviz file graph = nx.nx_agraph.read_dot("bios-maps/asrock/b650e-riptide-wifi.gv") print(graph) print(graph.edges()) # Example: Access node attributes for node, data in graph.nodes(data=True): print(f"Node: {node}, Attributes: {data}") print(graph.edges(data=True)) # Example: Access edge attributes (keypress actions) for edge_a, edge_b, data in graph.edges(data=True): print(f"Edge: {edge_a} to {edge_b}, Attributes: {data}") path = nx.shortest_path(graph, "exit", "oc_menu") for pair in nx.utils.pairwise(path): print(pair) print(graph.edges(pair, data=True)) edge_path = list(zip(path[:-1], path[1:])) print("Node path:", path) print("Edge path:", edge_path) edge_path_with_data = [(u, v, graph[u][v]) for u, v in edge_path] print("Edge path with data:", edge_path_with_data) print("GENERATOR TEST") for path in sorted(nx.all_simple_edge_paths(graph, "exit", "oc_menu")): for edge in path: print(edge) keys = graph.get_edge_data(edge[0], edge[1])[0]["keypath"].split(',') print(keys) with serial.Serial('/dev/serial/by-id/usb-1a86_USB_Single_Serial_585D015807-if00', 115200, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE) as ser: for key in keys: test_json_a = { "mouseX": 99999, "mouseY": 99999, "mouse_down": ["rbutton", "lbutton"], "mouse_up": ["otherbutton"], "key_down": [HIDKeyCode[key]], "key_up": [] } # print(HIDKeyCode[key]) ser.write(json.dumps(test_json_a).encode()) test_json_a = { "mouseX": 99999, "mouseY": 99999, "mouse_down": ["rbutton", "lbutton"], "mouse_up": ["otherbutton"], "key_down": [], "key_up": [HIDKeyCode[key]] } # print(HIDKeyCode[key]) ser.write(json.dumps(test_json_a).encode()) #time.sleep(0.1)