Implement first proof of concept

This commit is contained in:
Daniel Rojas 2020-05-25 19:19:16 +02:00
parent 6b2da96865
commit e0286b2f51
2 changed files with 93 additions and 0 deletions

50
src/example1.yml Normal file
View File

@ -0,0 +1,50 @@
nodes:
X1:
type: D-Sub
gender: female
pinout: [DCD,RX,TX,DTR,GND,DSR,RTS,CTS,RI]
random: yes
X2:
type: Molex KK 254
gender: female
pinout: [GND, RX, TX, N/C, OUT, IN]
wires:
W1:
mm2: 0.25
length: 0.2
color_code: DIN
num_wires: 3
shield: true
connections:
-
items: [X1,W1,X2]
X1: 5 # [5,2,3]
W1: 1 # [1,2,3]
X2: 1 # [1,3,2]
-
items: [X1,W1,X2]
X1: 2 # [5,2,3]
W1: 2 # [1,2,3]
X2: 3 # [1,3,2]
-
items: [X1,W1,X2]
X1: 3 # [5,2,3]
W1: 3 # [1,2,3]
X2: 2 # [1,3,2]
-
items: [X1,W1,X2]
X1: 5
W1: s
X2: ~
options:
# for connectors
show_connector_name: true
show_num_pins: true
# for wires
show_wire_name: true
show_num_wires: true
show_wire_pinout: true
show awg_equiv: true

43
src/yaml2wireviz.py Normal file
View File

@ -0,0 +1,43 @@
import yaml
import wireviz
filename = 'example1.yml'
with open(filename, 'r') as stream:
try:
input = yaml.safe_load(stream)
except yaml.YAMLError as exc:
print(exc)
# print(input)
sections = ('options','nodes','wires')
for s in sections:
print(s + ':')
for k in input[s]:
print(k + ': ', end='')
print(input[s][k])
print()
print('connections:')
for s in input['connections']:
print(s)
print()
h = wireviz.Harness()
for k in input['nodes']:
n = input['nodes'][k]
h.add_node(k, type=n['type'], gender=n['gender'], pinout=n['pinout'])
for k in input['wires']:
c = input['wires'][k]
h.add_cable(k, mm2=c['mm2'], length=c['length'], num_wires=c['num_wires'], color_code=c['color_code'], shield=c['shield'])
for o in input['connections']:
c1 = o['items'][0]
w = o['items'][1]
c2 = o['items'][2]
h.connect(w,c1,o[c1],o[w],c2,o[c2])
h.output(filename='output', format=('png',), view=False)