Add simple auto-wiring
This commit is contained in:
parent
c63da45d8f
commit
da258ceaa8
@ -34,10 +34,10 @@ W1 = wireviz.Cable("W1", colors=COLORS_I2C)
|
|||||||
W2 = wireviz.Cable("W2", colors=COLORS_I2C)
|
W2 = wireviz.Cable("W2", colors=COLORS_I2C)
|
||||||
W3 = wireviz.Cable("W3", colors=('BK','BU','OG','VT'))
|
W3 = wireviz.Cable("W3", colors=('BK','BU','OG','VT'))
|
||||||
W4 = wireviz.Cable("W4", colors=('BK','RD'))
|
W4 = wireviz.Cable("W4", colors=('BK','RD'))
|
||||||
W1.connect(X1,(1,2,3,4),(1,2,3,4),X2,(1,2,3,4))
|
W1.connect(X1,(1,2,3,4),'auto',X2,'auto')
|
||||||
W2.connect(X1,(1,2,3,4),(1,2,3,4),X3,(1,2,3,4))
|
W2.connect(X1,(1,2,3,4),'auto',X3,'auto')
|
||||||
W3.connect(X1,(1,5,6,7),(1,2,3,4),X4,(1,3,4,5))
|
W3.connect(X1,(1,5,6,7),'auto',X4,(1,3,4,5))
|
||||||
W4.connect(X5,(1,2),(1,2),X4,(1,2))
|
W4.connect(X5,'auto','auto',X4,'auto')
|
||||||
objects = [X1, X2, X3, X4, X5, W1, W2, W3, W4]
|
objects = [X1, X2, X3, X4, X5, W1, W2, W3, W4]
|
||||||
|
|
||||||
with open('output/output.dot','w') as f:
|
with open('output/output.dot','w') as f:
|
||||||
|
|||||||
@ -117,11 +117,20 @@ class Cable:
|
|||||||
self.colors = self.colors + ('Shield',)
|
self.colors = self.colors + ('Shield',)
|
||||||
|
|
||||||
def connect(self, from_name, from_pin, via, to_name, to_pin):
|
def connect(self, from_name, from_pin, via, to_name, to_pin):
|
||||||
|
if from_pin == 'auto':
|
||||||
|
from_pin = tuple(x+1 for x in range(len(self.colors)))
|
||||||
|
if via == 'auto':
|
||||||
|
via = tuple(x+1 for x in range(len(self.colors)))
|
||||||
|
if to_pin == 'auto':
|
||||||
|
to_pin = tuple(x+1 for x in range(len(self.colors)))
|
||||||
if len(from_pin) != len(to_pin):
|
if len(from_pin) != len(to_pin):
|
||||||
raise Exception("from_pin must have the same number of elements as to_pin")
|
raise Exception("from_pin must have the same number of elements as to_pin")
|
||||||
for i, x in enumerate(from_pin):
|
for i, x in enumerate(from_pin):
|
||||||
self.connections.append((from_name, from_pin[i], via[i], to_name, to_pin[i]))
|
self.connections.append((from_name, from_pin[i], via[i], to_name, to_pin[i]))
|
||||||
|
|
||||||
|
def connect_all_straight(self, from_name, to_name):
|
||||||
|
self.connect(from_name, 'auto', 'auto', to_name, 'auto')
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "{} = {} {}\n {}".format(self.name, len(self.colors), self.colors, self.connections)
|
return "{} = {} {}\n {}".format(self.name, len(self.colors), self.colors, self.connections)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user