Add basic parameter support for connectors and wires

This commit is contained in:
Daniel Rojas 2020-05-22 16:04:35 +02:00
parent ee7d1ef4e3
commit abba76bba4
2 changed files with 34 additions and 5 deletions

View File

@ -8,9 +8,9 @@ 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)
X1 = wireviz.Node('X1', type='D-Sub DE-9', gender='female', pinout=PINOUT_SERIAL, ports_right=True)
X2 = wireviz.Node('X2', type='Molex KK 254', gender='female', num_pins=6, ports_left=True)
W1 = wireviz.Cable('W1', mm2=0.25, length=0.2, show_name=False, 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

View File

@ -18,8 +18,10 @@ color_dict = {'BK': '#000000',
class Node:
def __init__(self, name, show_name=True, num_pins=None, pinout=None, ports_left=False, ports_right=False):
def __init__(self, name, type=None, gender=None, show_name=True, num_pins=None, pinout=None, ports_left=False, ports_right=False):
self.name = name
self.type = type
self.gender = gender
self.show_name = show_name
self.ports_left = ports_left
self.ports_right = ports_right
@ -61,8 +63,18 @@ class Node:
if self.show_name == True:
s = s + '{name} | '.format(name=self.name)
#print parameters
s = s + '{'
l = []
if self.type is not None:
l.append('{}'.format(self.type))
if self.gender is not None:
l.append('{}'.format(self.gender))
if len(l) > 0:
s = s + ', '.join(l)
s = s + '} | '
s = s + '{'
# print pinout
if self.ports_left == True:
s = s + '{'
@ -98,8 +110,11 @@ class Node:
class Cable:
def __init__(self, name, show_name=False, num_wires=None, colors=None, color_code=None, shield=False):
def __init__(self, name, mm2=0, awg=0, length=0, show_name=False, num_wires=None, colors=None, color_code=None, shield=False):
self.name = name
self.mm2 = mm2
self.awg = awg
self.length = length
self.show_name = show_name
self.shield = shield
self.connections = []
@ -163,6 +178,19 @@ class Cable:
if self.show_name == True:
s = s + '{name} | '.format(name=self.name)
#print parameters
s = s + '{'
l = []
if self.mm2 > 0:
l.append('{} mm²'.format(self.mm2))
if self.awg > 0:
l.append('{} AWG'.format(self.awg))
if self.length > 0:
l.append('{} m'.format(self.length))
if len(l) > 0:
s = s + '|'.join(l)
s = s + '} | '
s = s + '{'
# print pinout
s = s + '{'
@ -191,6 +219,7 @@ class Cable:
s = s + '}}"]'
# print connections
s = s + '\n\n{edge[style=bold]\n'
for x in self.connections:
s = s + '{'