-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroute.py
42 lines (35 loc) · 1.19 KB
/
route.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
route_a = [ (1, 0), (1, 1), (1, 2), (1, 3),
(0, 3),
(2, 3),
(0, 2),
(2, 2),
(2, 0),
(1, 4),
(2, 4),
(0, 0),
(0, 1),
(2, 1) ]
route_b = [ (1, 0), (1, 1), (1, 2), (1, 3),
(0, 0), (1, 4), (2, 5), (0, 6),
(1, 6),
(1, 5),
(0, 2),
(2, 2),
(0, 1),
(2, 1) ]
def msg_data(route):
d = []
prev = [1000]*len(route)
for out,node in reversed(route):
d.append( (min(prev[node],15), (int(out==0), int(out==1), int(out==2)) ) )
prev = [ x+1 for x in prev ]
prev[node] = 0
return list(reversed(d))
def format_data(route):
for count, bits in route:
print("0x{:02x},".format( (count<<3) | (bits[0]) | (bits[1]<<1) | (bits[2]<<2) ), end='')
print()
format_data (msg_data(route_a))
format_data (msg_data(route_b))
format_data (msg_data(route_b))
format_data (msg_data(route_a))