Make panda mappings a bit safer
[SugarCubes.git] / _Mappings.pde
index 3959846ee2c8e16bf06cab9f8d04ef94f18357c7..00e9b2c80f8a8175103f6e0dc22a6725b0be9bb4 100644 (file)
@@ -162,12 +162,23 @@ class SCMapping implements GLucose.Mapping {
 
 class PandaMapping {
   
+  // How many channels are on the panda board
+  public final static int CHANNELS_PER_BOARD = 8;
+  
+  // How many cubes per channel xc_PB is configured for
+  public final static int CUBES_PER_CHANNEL = 4;
+  
   final String ip;
-  final int[][] channelList;
+  final int[][] channelList = new int[CHANNELS_PER_BOARD][CUBES_PER_CHANNEL];
   
-  PandaMapping(String ip, int[][] channelList) {
+  PandaMapping(String ip, int[][] rawChannelList) {
     this.ip = ip;
-    this.channelList = channelList;
+    for (int chi = 0; chi < CHANNELS_PER_BOARD; ++chi) {
+      int[] cubes = (chi < rawChannelList.length) ? rawChannelList[chi] : new int[]{};
+      for (int cui = 0; cui < CUBES_PER_CHANNEL; ++cui) {
+        channelList[chi][cui] = (cui < cubes.length) ? cubes[cui] : 0;
+      }
+    }
   }
 }