Browse Source

*** empty log message ***

Mark Mine 24 years ago
parent
commit
8a0a089baf

+ 4 - 3
direct/src/directdevices/DirectDeviceManager.py

@@ -55,7 +55,7 @@ class DirectButtons(ButtonNode, DirectObject):
         self.nodePath = myBase.dataRoot.attachNewNode(self)
         self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     
     def __getitem__(self, index):
     def __getitem__(self, index):
-        if (index < 0) or (index > self.getNumButtons()):
+        if (index < 0) or (index >= self.getNumButtons()):
             raise IndexError
             raise IndexError
         return self.getButtonState(index)
         return self.getButtonState(index)
     
     
@@ -93,7 +93,7 @@ class DirectAnalogs(AnalogNode, DirectObject):
         self.nodePath = myBase.dataRoot.attachNewNode(self)
         self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     
     def __getitem__(self, index):
     def __getitem__(self, index):
-        if (index < 0) or (index > self.getNumControls()):
+        if (index < 0) or (index >= self.getNumControls()):
             raise IndexError
             raise IndexError
         return self.getControlState(index)
         return self.getControlState(index)
     
     
@@ -113,6 +113,7 @@ class DirectAnalogs(AnalogNode, DirectObject):
         else:
         else:
             sign = 1
             sign = 1
         # Zero out values in deadband
         # Zero out values in deadband
+        print ANALOG_DEADBAND
         val = sign * max(abs(val) - ANALOG_DEADBAND, 0.0)
         val = sign * max(abs(val) - ANALOG_DEADBAND, 0.0)
         # Now clamp value between minVal and maxVal
         # Now clamp value between minVal and maxVal
         val = min( max( val, ANALOG_MIN ), ANALOG_MAX )
         val = min( max( val, ANALOG_MIN ), ANALOG_MAX )
@@ -182,7 +183,7 @@ class DirectDials(DialNode, DirectObject):
         self.nodePath = myBase.dataRoot.attachNewNode(self)
         self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     
     def __getitem__(self, index):
     def __getitem__(self, index):
-        if (index < 0) or (index > self.getNumDials()):
+        if (index < 0) or (index >= self.getNumDials()):
             raise IndexError
             raise IndexError
         return self.readDial(index)
         return self.readDial(index)
     
     

+ 12 - 8
direct/src/directdevices/DirectJoybox.py

@@ -27,6 +27,10 @@ R_FWD_BACK = 5
 R_TWIST = 6
 R_TWIST = 6
 R_SLIDE = 7
 R_SLIDE = 7
 
 
+JOYBOX_MIN = ANALOG_MIN + ANALOG_DEADBAND
+JOYBOX_MAX = ANALOG_MAX - ANALOG_DEADBAND
+JOYBOX_RANGE = JOYBOX_MAX - JOYBOX_MIN
+
 class DirectJoybox(PandaObject):
 class DirectJoybox(PandaObject):
     joyboxCount = 0
     joyboxCount = 0
     xyzMultiplier = 1.0
     xyzMultiplier = 1.0
@@ -150,17 +154,17 @@ class DirectJoybox(PandaObject):
         # Update analogs
         # Update analogs
         for chan in range(len(self.analogs)):
         for chan in range(len(self.analogs)):
             val = self.analogs.getControlState(chan)
             val = self.analogs.getControlState(chan)
-            # Scale up slider values
-            if (chan == 2) or (chan == 6):
-                val *= 3.0
             # Zero out values in deadband
             # Zero out values in deadband
-            if val < 0:
-                val =  min(val + ANALOG_DEADBAND, 0.0)
+            if (val < 0):
+                val = min(val + ANALOG_DEADBAND, 0.0)
             else:
             else:
-                val =  max(val - ANALOG_DEADBAND, 0.0)
+                val = max(val - ANALOG_DEADBAND, 0.0)
+            # Scale up rotating knob values
+            if (chan == 2) or (chan == 6):
+                val *= 3.0
             # Now clamp value between minVal and maxVal
             # Now clamp value between minVal and maxVal
-            val = CLAMP(val, ANALOG_MIN, ANALOG_MAX)
-            self.aList[chan] = (2.0 * ((val - ANALOG_MIN) / ANALOG_RANGE)) - 1
+            val = CLAMP(val, JOYBOX_MIN, JOYBOX_MAX)
+            self.aList[chan] = 2.0*((val - JOYBOX_MIN)/JOYBOX_RANGE) - 1
         # Update buttons
         # Update buttons
         for i in range(len(self.buttons)):
         for i in range(len(self.buttons)):
             try:
             try: