diff --git a/src/test.py b/src/test.py index 81bb2ef..aa26b83 100644 --- a/src/test.py +++ b/src/test.py @@ -34,10 +34,10 @@ 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),(1,2,3,4),X2,(1,2,3,4)) -W2.connect(X1,(1,2,3,4),(1,2,3,4),X3,(1,2,3,4)) -W3.connect(X1,(1,5,6,7),(1,2,3,4),X4,(1,3,4,5)) -W4.connect(X5,(1,2),(1,2),X4,(1,2)) +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] with open('output/output.dot','w') as f: diff --git a/src/wireviz.py b/src/wireviz.py index a93252f..ae395b5 100644 --- a/src/wireviz.py +++ b/src/wireviz.py @@ -117,11 +117,20 @@ class Cable: self.colors = self.colors + ('Shield',) 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): raise Exception("from_pin must have the same number of elements as to_pin") for i, x in enumerate(from_pin): 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): return "{} = {} {}\n {}".format(self.name, len(self.colors), self.colors, self.connections)