paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [4662] Arduino Dangerboard updates


From: Allen Ibara
Subject: [paparazzi-commits] [4662] Arduino Dangerboard updates
Date: Thu, 11 Mar 2010 03:51:59 +0000

Revision: 4662
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4662
Author:   aibara
Date:     2010-03-11 03:51:59 +0000 (Thu, 11 Mar 2010)
Log Message:
-----------
Arduino Dangerboard updates

Modified Paths:
--------------
    paparazzi3/trunk/sw/ground_segment/python/joystick/arduino_dangerboard.py
    paparazzi3/trunk/sw/ground_segment/python/joystick/ivydanger.py

Modified: 
paparazzi3/trunk/sw/ground_segment/python/joystick/arduino_dangerboard.py
===================================================================
--- paparazzi3/trunk/sw/ground_segment/python/joystick/arduino_dangerboard.py   
2010-03-11 03:51:25 UTC (rev 4661)
+++ paparazzi3/trunk/sw/ground_segment/python/joystick/arduino_dangerboard.py   
2010-03-11 03:51:59 UTC (rev 4662)
@@ -25,7 +25,10 @@
     self.port = serial.Serial('/dev/ttyUSB0', 115200)  
     self.SLIDER_COUNT = 3
     self.sliders = [0] * self.SLIDER_COUNT
+    self.POT_MIN = 0.0
+    self.POT_MAX = 1023.0
 
+
   def HandleEvent(self):
     pass
     

Modified: paparazzi3/trunk/sw/ground_segment/python/joystick/ivydanger.py
===================================================================
--- paparazzi3/trunk/sw/ground_segment/python/joystick/ivydanger.py     
2010-03-11 03:51:25 UTC (rev 4661)
+++ paparazzi3/trunk/sw/ground_segment/python/joystick/ivydanger.py     
2010-03-11 03:51:59 UTC (rev 4662)
@@ -6,38 +6,40 @@
 import os
 import sys
 import getopt
+import signal
 
 PPRZ_HOME = os.getenv("PAPARAZZI_HOME")
 sys.path.append(PPRZ_HOME + "/sw/lib/python")
 
 from settings_tool import IvySettingsInterface
 
-DEFAULT_AC_IDS = [ 11 ]
+DEFAULT_AC_IDS = [ ]
 
 # Map dangerboard sliders to these settings from aircraft settings
 # file, in that order (dimension of this list needs to match number
 # of sliders!)
-DEFAULT_SLIDERS = ["throttle_sp", "cyclic_sp", "collective_sp"]
+DEFAULT_SLIDERS = [ ]
 
-POT_MIN = 0.0
-POT_MAX = 1023.0
-
 class IvyStick(arduino_dangerboard):
   def __init__(self, ac_ids, settings_names):
     arduino_dangerboard.__init__(self)
-    self.last_values = [0] * self.SLIDER_COUNT
+    if (len(settings_names) > self.SLIDER_COUNT):
+      raise Exception("Number of settings greater than number of sliders")
+    if (len(ac_ids) < 1):
+      raise Exception("Need at least one ac_id")
+    self.last_values = [0] * len(settings_names)
     self.ac_settings = IvySettingsInterface(ac_ids)
     self.settings = []
     for name in settings_names:
       self.settings.append(self.ac_settings.name_lookup[name])
 
   def ScalePot(self, pot_value, min_value, max_value, step_size):
-    scale_factor = (max_value - min_value) / (POT_MAX - POT_MIN)
-    offset = (POT_MIN - min_value) / scale_factor
+    scale_factor = (max_value - min_value) / (self.POT_MAX - self.POT_MIN)
+    offset = (self.POT_MIN - min_value) / scale_factor
     return int((pot_value - offset) * scale_factor / step_size) * step_size
 
   def HandleEvent(self):
-    for setting_index in range(0, self.SLIDER_COUNT):
+    for setting_index in range(0, len(self.settings)):
       value = self.ScalePot(self.sliders[setting_index],
         self.settings[setting_index].min_value,
         self.settings[setting_index].max_value,
@@ -82,7 +84,12 @@
 
   return options
 
+def signal_handler(signal, frame):
+  sys.exit(0)
+
 def main():
+  signal.signal(signal.SIGINT, signal_handler)
+
   options = GetOptions()
   ivyStick = IvyStick(options['ac_id'], options['sliders'])
   ivyStick.poll()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]