76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
import wireviz
|
|
|
|
PINOUT_SERIAL = ('DCD','RX','TX','DTR','GND','DSR','RTS','CTS','RI')
|
|
|
|
PINOUT_I2C = ('GND','+5V','SCL','SDA')
|
|
COLORS_I2C = ('BK', 'RD', 'YE', 'GN')
|
|
|
|
PINOUT_SPI_DATAONLY = ('MISO','MOSI','SCK')
|
|
|
|
# example 1
|
|
X1 = wireviz.Node("X1", pinout=PINOUT_SERIAL, ports_right=True)
|
|
X2 = wireviz.Node("X2", num_pins=6, ports_left=True)
|
|
W1 = wireviz.Cable("W1", show_name=True, num_wires=3, color_code="DIN", shield=True)
|
|
# Option 1: define wires and shield in one line
|
|
# W1.connect(X1,(5,2,3,5),(1,2,3,'s'),X2,(1,3,2,None))
|
|
# Option 2: define wires and shield separately
|
|
W1.connect(X1,(5,2,3),'auto',X2,(1,3,2)) # wires
|
|
W1.connect(X1,(5,),('s',),X2,(None,)) # shield
|
|
X2.loop(5,6)
|
|
objects = [X1, X2, W1]
|
|
|
|
# example 2
|
|
# X1 = wireviz.Node("X1", pinout=(
|
|
# 'GND',
|
|
# '+5V',
|
|
# 'SCL',
|
|
# 'SDA',
|
|
# 'MISO',
|
|
# 'MOSI',
|
|
# 'SCK',
|
|
# 'N/C'
|
|
# ), ports_right=True)
|
|
# X2 = wireviz.Node("X2", pinout=PINOUT_I2C, ports_left=True)
|
|
# X3 = wireviz.Node("X3", pinout=PINOUT_I2C, ports_left=True)
|
|
# X4 = wireviz.Node("X4", pinout=('GND','+12V')+PINOUT_SPI_DATAONLY, ports_left=True)
|
|
# X5 = wireviz.Node("X5", pinout=('GND','+12V'), ports_right=True)
|
|
# W1 = wireviz.Cable("W1", colors=COLORS_I2C)
|
|
# W2 = wireviz.Cable("W2", colors=COLORS_I2C)
|
|
# W3 = wireviz.Cable("W3", colors=('BK','BU','OG','VT'))
|
|
# W4 = wireviz.Cable("W4", colors=('BK','RD'))
|
|
# W1.connect(X1,(1,2,3,4),'auto',X2,'auto')
|
|
# W2.connect(X1,(1,2,3,4),'auto',X3,'auto')
|
|
# W3.connect(X1,(1,5,6,7),'auto',X4,(1,3,4,5))
|
|
# W4.connect(X5,'auto','auto',X4,'auto')
|
|
# objects = [X1, X2, X3, X4, X5, W1, W2, W3, W4]
|
|
|
|
# example 3
|
|
# X1 = wireviz.Node("X1", num_pins=10, ports_right=True)
|
|
# X2 = wireviz.Node("X2", num_pins=10, ports_left=True)
|
|
# W1 = wireviz.Cable("W1", num_wires=10, color_code="IEC")
|
|
# W1.connect_all_straight(X1,X2)
|
|
# X3 = wireviz.Node("X3", num_pins=10, ports_right=True)
|
|
# X4 = wireviz.Node("X4", num_pins=10, ports_left=True)
|
|
# W2 = wireviz.Cable("W2", num_wires=10, color_code="DIN")
|
|
# W2.connect_all_straight(X3,X4)
|
|
# objects = [X1, X2, W1, X3, X4, W2]
|
|
|
|
with open('output/output.dot','w') as f:
|
|
with open('input/header.dot','r') as infile:
|
|
for line in infile:
|
|
f.write(line)
|
|
f.write('\n\n')
|
|
|
|
for o in objects:
|
|
f.write(o.graphviz() + '\n')
|
|
|
|
f.write('\n\n')
|
|
with open('input/footer.dot','r') as infile:
|
|
for line in infile:
|
|
f.write(line)
|
|
|
|
# print output file
|
|
# with open('output/output.dot','r') as f:
|
|
# for line in f:
|
|
# print(line)
|