Skip to content

Commit

Permalink
universal keyboard driver
Browse files Browse the repository at this point in the history
  • Loading branch information
roman-dvorak committed Sep 11, 2018
1 parent 4c9c5fb commit e91ffe5
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 101 deletions.
131 changes: 44 additions & 87 deletions src/drivers/io/io_keyboard
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import evdev
from evdev import InputDevice, categorize, ecodes
from select import select
import time, os
import time, os, sys
import json
import rospy
import std_msgs
import arom_helper
Expand Down Expand Up @@ -49,109 +50,66 @@ class user_input(arom_helper.AromNode):
self.toggleLED()
time.sleep(0.1)

keymap_patrola = [{
172: 'shift',
15: 'dome_a',
155: 'dome_b',
140: 'tracking_toggle',
69: 'telescopeA_close',
98: 'telescopeB_close',
55: 'telescopeC_close',
14: None,
71: 'telescopeA_irisM',
72: 'telescopeB_irisM',
73: 'telescopeC_irisM',
74: None,
75: 'telescopeA_irisP',
76: 'telescopeB_irisP',
77: 'telescopeC_irisP',
78: None,
79: 'telescopeA_focusM',
80: 'telescopeB_focusM',
81: 'telescopeC_focusM',
82: 'telescopeA_focusP',
11: 'telescopeB_focusP',
83: 'telescopeC_focusP',
96: None,
},{
172: 'shift',
15: 'dome_a',
155: 'dome_b',
140: 'tracking_toggle',
69: 'RA_center',
98: 'DEC_center',
self.keymap = [{
172: None,
15: None,
155: None,
140: None,
69: None,
98: None,
55: None,
14: None,
71: None,
72: 'DEC_P',
72: None,
73: None,
74: None,
75: 'RA_P',
75: None,
76: None,
77: 'RA_M',
77: None,
78: None,
79: None,
80: 'DEC_M',
80: None,
81: None,
82: None,
11: None,
83: None,
96: None,
}]

keymap_zvpp = [{
172: 'shift',
15: 'dome_a',
155: 'dome_b',
140: 'tracking_toggle',
69: 'telescopeA_close',
98: 'telescopeB_close',
55: 'telescopeC_close',
14: None,
71: 'telescopeA_irisM',
72: 'telescopeB_irisM',
73: 'telescopeC_irisM',
74: None,
75: 'telescopeA_irisP',
76: 'telescopeB_irisP',
77: 'telescopeC_irisP',
78: None,
79: 'telescopeA_focusM',
80: 'telescopeB_focusM',
81: 'telescopeC_focusM',
82: 'telescopeA_focusP',
11: 'telescopeB_focusP',
83: 'telescopeC_focusP',
96: None,
},{
172: 'shift',
15: 'dome_a',
155: 'dome_b',
140: 'tracking_toggle',
69: 'RA_center',
98: 'DEC_center',
172: None,
15: None,
155: None,
140: None,
69: None,
98: None,
55: None,
14: None,
71: None,
72: 'DEC_P',
72: None,
73: None,
74: None,
75: 'RA_P',
76: 'STOP',
77: 'RA_M',
75: None,
76: None,
77: None,
78: None,
79: None,
80: 'DEC_M',
80: None,
81: None,
82: None,
11: None,
83: None,
96: None,
}]


#self.keymap = keymap_patrola
self.keymap = keymap_zvpp
if len(sys.argv) < 1:
print("Using default configuration")
print("YouCan use 'rosrun arom io_keyboard <path_to_file>")
else:
cfgfile = sys.argv[1]
print("Using configuration from {}".format(cfgfile))
#TODO: validace existence souboru
self.keymap = json.loads(open(cfgfile).read())
print('Keymap:')
print(json.dumps(self.keymap, indent=4, sort_keys=False))

data = []

Expand All @@ -164,7 +122,6 @@ class user_input(arom_helper.AromNode):
data.append(self.GetKey(dev_out))
except Exception as e:
pass

rate.sleep()


Expand All @@ -175,35 +132,35 @@ class user_input(arom_helper.AromNode):
self.toggleLED()
self.btn_pub.publish("layer"+str(layer))
else:
key = self.keymap[self.layer][event.code]
key = self.keymap[self.layer][str(event.code)]
if key:
self.btn_pub.publish(str(key)+str(event.value))
self.blikLED()
print "KEY:", (key, event.value)
return (key, event.value)
print("KEY:", (key, event.value))
return(key, event.value)
else:
print "Klavesa nenastavena"
print("Klavesa nenastavena")

def externalKey(self, event):
print event
print(event)
value = {'d': 1L, 'u': 0L}[event.data[-1]]
code = int(event.data[:-1])
print code, value
print(code, value)

if code == self.toggle_button:
if value == 1:
layer = self.toggleLayer()
self.toggleLED()
self.btn_pub.publish("layer"+str(layer))
else:
key = self.keymap[self.layer][code]
key = self.keymap[self.layer][str(code)]
if key:
self.btn_pub.publish(str(key)+str(value))
self.blikLED()
print "KEY:", (key, value)
return (key, value)
print("KEY:", (key, value))
return(key, value)
else:
print "Klavesa nenastavena"
print("Klavesa nenastavena")

def setLayer(self, layer = 0):
self.layer = layer
Expand Down
19 changes: 5 additions & 14 deletions src/drivers/io/io_keyboard.feature.hbs
Original file line number Diff line number Diff line change
@@ -1,27 +1,16 @@
<div class="container">
<h1> Hello world </h1>


<p id='layer_info'></p>


<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="89.999985mm"
height="147mm"
viewBox="0 0 89.999985 147"
version="1.1"
id="svg4699"
inkscape:version="0.92.1 r15371"
sodipodi:docname="keyboard_patrola.svg"
inkscape:export-filename="/home/roman/klavesnice.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
id="svg4699">
<defs
id="defs4693">
<filter
Expand Down Expand Up @@ -1270,4 +1259,6 @@ rcvLayer.subscribe(function(msg) {
});
</script>
</script>

</div>

0 comments on commit e91ffe5

Please sign in to comment.