hidg0 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0a81b3ba765e28c93311ce860ba1078694524a1af92f5b153818e96e414468d
4
- data.tar.gz: c6be149a743fc2a1a5960fc5ffe22c44b5feb29a76770ccec5fcad6b9d9eead9
3
+ metadata.gz: '018c9573356c84859eaf2a522b4840478b458ddc258a1920c31ff2fea9499722'
4
+ data.tar.gz: f849f0d82643cca5c7b4af69fae8c9a5d32af9592c46c7fa746cd236b815cf58
5
5
  SHA512:
6
- metadata.gz: f5dce1f49b00c56d7a75bae55059e4309ad794a16eb740e9b01f299fe89d7e5bdc52bf3bb76538763ef6c605cc570852759955e5b41928f7bc0236df99016cb5
7
- data.tar.gz: b73d5e47fcab4ea0cd4cd7c76f4ce8dd8cbdd5a6d004702f897adc81e4a048ce0b713679ab5d1f6ea1b9776f3455f5c5e69e363d4e783c2469358c7dc5aaa959
6
+ metadata.gz: 922e0c4c43e6eba5f8ccfe40c52bd7760d439f58c75265ceb6caca8952c18ed9cde4e3587636ff78990101c66951bcaecdb7c1d7f92fdba7023db1935bd7a98f
7
+ data.tar.gz: 7cab3968f0a11f4c6ce54eaaeea93e79621e146ae06bba8370a296f19a773cee8fd567b67659143c5921dc951f55efb30ba62f6f27140692e08eb126048508ab
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/hidg0.rb CHANGED
@@ -50,6 +50,7 @@ copied from: https://forum.micropython.org/viewtopic.php?t=2021
50
50
 
51
51
  h = %i(right_gui rightalt rightshift rightctrl left_gui left_alt leftshift leftctrl).\
52
52
  reverse.map.with_index {|x,i| [x, (2 ** i)]}.to_h
53
+
53
54
  MODIFIERS = h.merge({shift: h[:leftshift], alt: h[:left_alt],
54
55
  ctrl: h[:leftctrl], control: h[:leftctrl]})
55
56
 
@@ -100,22 +101,35 @@ KEYS = {
100
101
  :'9' => 38, # Keyboard 9 and (
101
102
  :'0' => 39, # Keyboard 0 and )
102
103
  enter: 40, # Keyboard Return (ENTER)
104
+ :"\n" => 40,
103
105
  esc: 41, # Keyboard ESCAPE
104
106
  backspace: 42, # Keyboard DELETE (Backspace)
105
107
  tab: 43, # Keyboard Tab
106
108
  space: 44, # Keyboard Spacebar
109
+ :' ' => 44, # Keyboard Spacebar
107
110
  minus: 45, # Keyboard - and _
111
+ :'-' => 45,
108
112
  equal: 46, # Keyboard = and +
113
+ :'=' => 46,
109
114
  leftbrace: 47, # Keyboard [ and {
115
+ :'[' => 47,
110
116
  rightbrace: 48, # Keyboard ] and }
117
+ :']' => 48,
111
118
  backslash: 49, # Keyboard and |
112
119
  hashtilde: 50, # Keyboard Non-US # and ~
120
+ :'#' => 50,
113
121
  semicolon: 51, # Keyboard ; and :
122
+ :';' => 51,
114
123
  apostrophe: 52, # Keyboard ' and "
124
+ :"'" => 52,
115
125
  grave: 53, # Keyboard ` and ~
126
+ :'`' => 53,
116
127
  comma: 54, # Keyboard , and <
128
+ :',' => 54, # Keyboard , and <
117
129
  dot: 55, # Keyboard . and >
130
+ :'.' => 55,
118
131
  slash: 56, # Keyboard / and ?
132
+ :'/' => 56,
119
133
  capslock: 57, # Keyboard Caps Lock
120
134
  f1: 58, # Keyboard F1
121
135
  f2: 59, # Keyboard F2
@@ -256,10 +270,9 @@ KEYS = {
256
270
  W: :w,
257
271
  X: :x,
258
272
  Y: :y,
259
- Z: :z,
273
+ Z: :z,
260
274
  :'!' => :'1',
261
275
  :'@' => :'2',
262
- :'#' => :'3',
263
276
  :'$' => :'4',
264
277
  :'%' => :'5',
265
278
  :'^' => :'6',
@@ -290,8 +303,9 @@ KEYS = {
290
303
  class HidG0
291
304
  using ColouredText
292
305
 
293
- def initialize(dev='/dev/hidg0', debug: false)
306
+ def initialize(dev='/dev/hidg0', debug: false, humanspeed: true)
294
307
  @dev, @debug = dev, debug
308
+ @duration = 0.3 if humanspeed
295
309
  end
296
310
 
297
311
  def keypress(key, duration: 0)
@@ -302,11 +316,17 @@ class HidG0
302
316
 
303
317
  def sendkeys(s)
304
318
 
305
- s.gsub(/ /,'{space}').scan(/\{[^\}]+\}|./).each do |x|
319
+ # current keymapping is for en-gb
320
+
321
+ # £ is "\u{00A3}" in unicode
322
+ [["\n",'{enter}'],["\u{00A3}","{shift+3}"],['"','{shift+2}']]\
323
+ .map {|x,y| s.gsub!(x,y) }
324
+
325
+ s.scan(/\{[^\}]+\}|./).each do |x|
306
326
 
307
327
  if x.length == 1 and x[0] != '{' then
308
328
 
309
- keypress x
329
+ keypress x, duration: @duration
310
330
 
311
331
  else
312
332
 
@@ -329,7 +349,7 @@ class HidG0
329
349
  release_keys()
330
350
 
331
351
  else
332
- keypress keys.first
352
+ keypress keys.first, duration: @duration
333
353
  end
334
354
 
335
355
  end
@@ -350,7 +370,7 @@ class HidG0
350
370
  else
351
371
 
352
372
  # the key can be reproduced by combining tke key press with the shift key
353
-
373
+ puts ('KEYS[key.to_sym]: ' + KEYS[key.to_sym].inspect).debug if @debug
354
374
  write_report(MODIFIERS[:shift].chr + NULL_CHAR + \
355
375
  KEYS[KEYS[key.to_sym]].chr + NULL_CHAR*5)
356
376
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hidg0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  PwTg5+TqjQvWRfpf4tDWra3/fS6sXSuA4aoh28J3YpuAS2upGYuCk61X4iEDYerh
36
36
  INwakAqcXQ4/4DC0SoRunSvJ
37
37
  -----END CERTIFICATE-----
38
- date: 2019-03-14 00:00:00.000000000 Z
38
+ date: 2019-03-20 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: c32
metadata.gz.sig CHANGED
Binary file