-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathremap.py
86 lines (76 loc) · 5.95 KB
/
remap.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
rings = [
(
( 0, 0, 1 ), ( 0, 1,-1 ), ( 0, 2, 1 ), ( 0, 3,-1 ), ( 0, 4, 1 ),
( 3, 4,-1 ),
( 3, 3, 1 ),
( 3, 2,-1 ),
( 3, 1, 1 ),
( 3, 0,-1 )
),
(
( 1, 0,-1 ), ( 1, 1, 1 ), ( 1, 2,-1 ), ( 1, 3, 1 ), ( 1, 4,-1 ),
( 2, 4, 1 ),
( 2, 3,-1 ),
( 2, 2, 1 ),
( 2, 1,-1 ),
( 2, 0, 1 )
),
(
( 1, 5,-1 ), ( 1, 6, 1 ), ( 1,10,-1 ), ( 0, 6, 1 ), ( 0, 5, -1),
( 2, 9, 1 ), ( 2, 7,-1 ), ( 3,10, 1 ), ( 3, 9,-1 ), ( 3,12, 1 ),
),
(
( 2, 5,-1 ), ( 2, 6, 1 ), ( 2,10,-1 ), ( 3, 6, 1 ), ( 3, 5, -1),
( 1, 9, 1 ), ( 1, 7,-1 ), ( 0,10, 1 ), ( 0, 9,-1 ), ( 0,12, 1 ),
),
(
( 3,11, 1), ( 2, 13,-1 ), ( 2,14, 1 ), ( 0, 7,-1 ), ( 0, 8, 1 ),
( 1, 8,-1), ( 1, 11, 1 ), ( 1,12,-1 ), ( 3,13, 1 ), ( 3,14,-1 ),
),
(
( 0,11, 1), ( 1, 13,-1 ), ( 1,14, 1 ), ( 3, 7,-1 ), ( 3, 8, 1 ),
( 2, 8,-1), ( 2, 11, 1 ), ( 2,12,-1 ), ( 0,13, 1 ), ( 0,14,-1 ),
),
]
orientation_map = { 1 : (0, 1, 3, 2),
-1 : (2, 3, 1, 0),
}
def get_led_segment( strip, strip_index, direction ):
segment_index = strip*15 + strip_index
return tuple( segment_index*4 + orientation_map[direction][i] for i in range(4))
remap = [ ]
for ring in rings:
for segment in ring:
remap.extend(get_led_segment(*segment))
invmap = [ False ] * len(remap)
for i, v in enumerate(remap):
invmap[v] = i
print(remap)
print(invmap)
von = [
63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 62, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180,
63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 62, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180,
228, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 48, 120, 120, 120, 121, 121, 121, 121, 121, 122, 122, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183,
228, 231, 231, 231, 61, 61, 82, 82, 82, 82, 82, 37, 37, 37, 37, 37, 2, 2, 48, 48, 48, 48, 51, 51, 51, 121, 121, 142, 142, 142, 142, 142, 217, 217, 217, 217, 217, 182, 182, 228, 228, 228,
229, 230, 230, 65, 64, 83, 82, 82, 81, 81, 46, 45, 38, 38, 37, 37, 36, 7, 6, 49, 49, 49, 50, 50, 125, 124, 143, 142, 142, 141, 141, 226, 225, 218, 218, 217, 217, 216, 187, 186, 229, 229,
229, 230, 65, 65, 64, 83, 80, 81, 81, 46, 46, 45, 45, 38, 38, 39, 36, 7, 6, 6, 49, 49, 50, 125, 125, 124, 143, 140, 141, 141, 226, 226, 225, 225, 218, 218, 219, 216, 187, 186, 186, 229,
118, 66, 66, 66, 67, 112, 115, 115, 81, 46, 47, 44, 45, 38, 56, 56, 59, 4, 5, 5, 5, 53, 126, 126, 126, 127, 172, 175, 175, 141, 226, 227, 224, 225, 218, 236, 236, 239, 184, 185, 185, 185,
118, 117, 117, 66, 67, 113, 114, 114, 85, 84, 84, 43, 43, 42, 57, 57, 58, 4, 5, 54, 54, 53, 177, 177, 126, 127, 173, 174, 174, 145, 144, 144, 223, 223, 222, 237, 237, 238, 184, 185, 234, 234,
118, 118, 117, 116, 70, 113, 113, 114, 85, 85, 87, 40, 42, 42, 57, 58, 58, 9, 55, 54, 53, 53, 178, 177, 176, 130, 173, 173, 174, 145, 145, 147, 220, 222, 222, 237, 238, 238, 189, 235, 234, 233,
118, 119, 119, 71, 70, 70, 70, 85, 86, 86, 86, 41, 41, 41, 42, 9, 9, 9, 8, 52, 52, 53, 179, 179, 131, 130, 130, 130, 145, 146, 146, 146, 221, 221, 221, 222, 189, 189, 189, 188, 232, 232,
109, 108, 108, 68, 69, 69, 69, 90, 89, 89, 89, 102, 102, 102, 101, 10, 10, 10, 11, 31, 31, 30, 168, 168, 128, 129, 129, 129, 150, 149, 149, 149, 162, 162, 162, 161, 190, 190, 190, 191, 211, 211,
109, 109, 110, 111, 69, 106, 106, 105, 90, 90, 88, 103, 101, 101, 34, 33, 33, 10, 28, 29, 30, 30, 169, 170, 171, 129, 166, 166, 165, 150, 150, 148, 163, 161, 161, 214, 213, 213, 190, 208, 209, 210,
109, 110, 110, 73, 72, 106, 105, 105, 90, 91, 91, 100, 100, 101, 34, 34, 33, 15, 14, 29, 29, 30, 170, 170, 133, 132, 166, 165, 165, 150, 151, 151, 160, 160, 161, 214, 214, 213, 195, 194, 209, 209,
109, 73, 73, 73, 72, 107, 104, 104, 98, 93, 92, 95, 94, 25, 35, 35, 32, 15, 14, 14, 14, 30, 133, 133, 133, 132, 167, 164, 164, 158, 153, 152, 155, 154, 205, 215, 215, 212, 195, 194, 194, 194,
201, 201, 74, 74, 75, 96, 99, 98, 98, 93, 93, 94, 94, 25, 25, 24, 27, 12, 13, 13, 22, 22, 21, 134, 134, 135, 156, 159, 158, 158, 153, 153, 154, 154, 205, 205, 204, 207, 192, 193, 193, 202,
201, 201, 201, 74, 75, 96, 97, 97, 98, 98, 93, 94, 25, 25, 26, 26, 27, 12, 13, 22, 22, 22, 21, 21, 134, 135, 156, 157, 157, 158, 158, 153, 154, 205, 205, 206, 206, 207, 192, 193, 202, 202,
200, 200, 200, 200, 78, 78, 97, 97, 97, 97, 97, 26, 26, 26, 26, 26, 17, 17, 23, 23, 23, 23, 20, 20, 20, 138, 138, 157, 157, 157, 157, 157, 206, 206, 206, 206, 206, 197, 197, 203, 203, 203,
200, 79, 79, 79, 78, 78, 78, 78, 78, 77, 77, 18, 18, 17, 17, 17, 17, 17, 16, 16, 16, 23, 139, 139, 139, 138, 138, 138, 138, 138, 137, 137, 198, 198, 197, 197, 197, 197, 197, 196, 196, 196,
76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199,
76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199
]
for y in range(0, 42*20, 42):
print(" ", end='')
for x in range(42):
print ('{:4d},'.format(invmap[von[x+y]]), end='')
print()