]> jspc29.x-matter.uni-frankfurt.de Git - mvd_epics.git/commitdiff
CaRecPlay: more elegant mapping generation (but more complex)
authorPhilipp Klaus <philipp.klaus@gmail.com>
Sat, 23 Sep 2017 10:02:45 +0000 (18:02 +0800)
committerPhilipp Klaus <philipp.klaus@gmail.com>
Sat, 23 Sep 2017 10:02:45 +0000 (18:02 +0800)
python_suite/carecplay/caplay.py

index 8625ee5d8f5c515ae9a5bea96b2ee41251d394a2..19689277c1f0a8a9c9a3a235ddd132ac4c5b20f1 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-import os, sys, logging, pickle, time
+import os, sys, logging, pickle, time, itertools
 from threading import Thread, Event, Lock
 from pcaspy import Driver, SimpleServer
 
@@ -89,7 +89,9 @@ def main():
         pv_entry = {'type': pv_type, 'value': vu['value'], 'unit': vu['units'], 'prec': vu['precision']}
         enum_strs = vu['enum_strs']
 
-        limits_map = {'lower_ctrl_limit': 'lolim', 'upper_ctrl_limit': 'hilim', 'lower_warning_limit': 'low', 'upper_warning_limit': 'high', 'lower_alarm_limit': 'lolo', 'upper_alarm_limit': 'hihi'}
+        limits_pyepics = map(lambda x: '_'.join(x), itertools.product(['lower', 'upper'], ['ctrl_limit', 'alarm_limit', 'warning_limit']))
+        limits_pcaspy  = 'lolim', 'lolo', 'low', 'hilim', 'hihi', 'high'
+        limits_map = dict(zip(limits_pyepics, limits_pcaspy))
         for limit in limits_map.keys():
             # PCASpy expects the default values to be 0:
             if vu[limit] is None: vu[limit] = 0.0