Browse Source

*** empty log message ***

gregw 24 years ago
parent
commit
b76afa079c
1 changed files with 12 additions and 8 deletions
  1. 12 8
      direct/src/directdevices/DirectDeviceManager.py

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

@@ -5,7 +5,6 @@ from PandaModules import *
 
 ANALOG_MIN = -0.95
 ANALOG_MAX = 0.95
-ANALOG_RANGE = ANALOG_MAX - ANALOG_MIN
 ANALOG_DEADBAND = 0.125
 
 try:
@@ -18,7 +17,7 @@ class DirectDeviceManager(VrpnClient, DirectObject):
 
         # Determine which server to use
         if server != None:
-            # One give as constructor argument
+            # One given as constructor argument
             self.server = server
         else:
             # Check config file, if that fails, use default
@@ -91,6 +90,12 @@ class DirectAnalogs(AnalogNode, DirectObject):
         AnalogNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
         self.nodePath = myBase.dataRoot.attachNewNode(self)
+        # See if any of the parameters are dconfig'd
+        self.analogDeadband = myBase.config.GetFloat('vrpn-analog-deadband',
+                                                     ANALOG_DEADBAND)
+        self.analogMin = myBase.config.GetFloat('vrpn-analog-min', ANALOG_MIN)
+        self.analogMax = myBase.config.GetFloat('vrpn-analog-max', ANALOG_MAX)
+        self.analogRange = self.analogMax - self.analogMin
     
     def __getitem__(self, index):
         if (index < 0) or (index >= self.getNumControls()):
@@ -113,13 +118,12 @@ class DirectAnalogs(AnalogNode, DirectObject):
         else:
             sign = 1
         # Zero out values in deadband
-#        print ANALOG_DEADBAND
-        val = sign * max(abs(val) - ANALOG_DEADBAND, 0.0)
+        val = sign * max(abs(val) - self.analogDeadband, 0.0)
         # Now clamp value between minVal and maxVal
-        val = min( max( val, ANALOG_MIN ), ANALOG_MAX )
-#        val = CLAMP(val, ANALOG_MIN, ANALOG_MAX)
-        return (((maxVal - minVal) * ((val - ANALOG_MIN) / ANALOG_RANGE))
-                + minVal)
+        val = min( max( val, self.analogMin ), self.analogMax )
+#        val = CLAMP(val, self.analogMin, self.analogMax)
+        return (((maxVal - minVal) *
+                 ((val - self.analogMin) / self.analogRange)) + minVal)
     
     def normalizeChannel(self, chan, minVal = -1, maxVal = 1):
         try: