+ towerList.add(new Tower(tower));
+ }
+
+ return new Model(towerList, cubes, bassBox, speakers);
+}
+
+/**
+ * This function maps the panda boards. We have an array of them, each has
+ * an IP address and a list of channels.
+ */
+public PandaMapping[] buildPandaList() {
+ final int LEFT_SPEAKER = 0;
+ final int RIGHT_SPEAKER = 1;
+
+ // 8 channels map to: 3, 4, 7, 8, 13, 14, 15, 16.
+ return new PandaMapping[] {
+ new PandaMapping(
+ "192.168.88.100", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ new PandaMapping(
+ "192.168.88.101", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ new PandaMapping(
+ "192.168.88.102", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ new PandaMapping(
+ "192.168.88.103", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ new PandaMapping(
+ "192.168.88.104", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ new PandaMapping(
+ "192.168.88.105", new ChannelMapping[] {
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ }),
+ // new PandaMapping(
+ // "192.168.88.102", new ChannelMapping[] {
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ // }),
+ // new PandaMapping(
+ // "192.168.88.104", new ChannelMapping[] {
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ // }),
+ // new PandaMapping(
+ // "192.168.88.105", new ChannelMapping[] {
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}),
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}),
+ // }),
+
+// new PandaMapping(
+// "10.200.1.31", new ChannelMapping[] {
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 65, 66}), // J3
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,1}), // J4
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 55, 56}), // 30 J7
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 57, 58}), // J8
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 59, 60}), // J13
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 61, 62}), // 30 J14
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 63, 64}), // J15
+// new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,1}), // J16
+// }),
+
+ // new PandaMapping(
+ // "10.200.1.32", new ChannelMapping[] {
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J3
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J4
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 67, 68}), // 30 J7
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 69, 70}), // J8
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J13
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 30 J14
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J15
+ // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J16
+ // }),
+ };
+}
+
+class TowerMapping {
+ public final float x, y, z;
+ public final CubeMapping[] cubeMappings;
+
+ TowerMapping(float x, float y, float z, CubeMapping[] cubeMappings) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.cubeMappings = cubeMappings;