qt1070 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 205749f4d92a241d9ec4a81a688d8317240ea6cc
4
- data.tar.gz: 0f7d7faf57f27966d349ed4d7633e7f5403e70b9
3
+ metadata.gz: 33cd55716699c6d5130b03225d9471da3661ed55
4
+ data.tar.gz: 52b0cb5f04ee121278a0bd486a35831630674f99
5
5
  SHA512:
6
- metadata.gz: 9b9a20500d17d9bb3f2ff29005cb990ae796c5a4983a574a1f555ffa789c606392b28fa4367233ee3bf832095ea4d9da81a42d8e9fa94022011aa88f4c93dea0
7
- data.tar.gz: e1810fceb03dc148dc26a1e85f8ceaba3f27fa36e305ac2058210f1f85a53535860a29e4ca501ee570b23b0359bd2983d1bb25546c9061d7cd6e060e8c4f4f15
6
+ metadata.gz: de0a34d49f28274b7631c77fe3577979ec6557596f8cc83b575c6e06179f2083eaf0370133ef25ea6e160eadcde0edc2d393a9dd5d76026bb52ac187688841fd
7
+ data.tar.gz: 494629066335cb701d3e86d4aef236a2cb4a6afae6530a1063c6b400d57798208a289b115fe7b5fd9a4a5c1244002eb4327581b134584c38ce07964f67399bd3
@@ -2,16 +2,123 @@ require "i2c"
2
2
 
3
3
  module Qt1070
4
4
  class Qt1070
5
-
5
+
6
6
  I2C_ADDRESS = 0x1B
7
-
7
+
8
8
  def initialize port
9
- @i2c = I2C.create port
9
+ @i2c = I2C.create port
10
10
  end
11
11
 
12
- def state
13
- @i2c.read I2C_ADDRESS, 1 , 0x03
14
- end
12
+ def chip_id
13
+ id = read_byte 0x00
14
+ minor = id & 0x0F
15
+ major = (id >> 4) & 0x0F
16
+ {major: major, minor: minor}
17
+ end
18
+
19
+ def firmware_version
20
+ version = read_byte 0x01
21
+ minor = version & 0x0F
22
+ major = (version >> 4) & 0x0F
23
+ "#{major}.#{minor}"
24
+ end
25
+
26
+ def detection_status
27
+ status = read_byte 0x02
28
+ return "Calibrate" if status & (1 << 7) != 0
29
+ return "Touch" if status & (1 << 0) != 0
30
+ return "Overflow" if status & (1 << 6) != 0
31
+ "Undefined"
32
+ end
33
+
34
+ def key_status key = nil
35
+ unless key.nil?
36
+ raise "Key index must be between 0 and 6" unless key.between? 0, 6
37
+ end
38
+ status_value = read_byte 0x03
39
+ status = []
40
+ 8.times do |i|
41
+ status[i] = status_value & (1 << i) != 0 ? "pressed" : "released"
42
+ end
43
+ key.nil? ? status : status[i]
44
+ end
45
+
46
+ def key_signal key
47
+ raise "Key index must be between 0 and 6" unless key.between? 0, 6
48
+ register = 0x04 + (key * 2)
49
+ read_short register
50
+ end
51
+
52
+ def reference_data key
53
+ raise "Key index must b between 0 and 6" unless key.between? 0, 6
54
+ register = 18 + (key * 2)
55
+ read_short register
56
+ end
57
+
58
+ #TODO write to this register
59
+ def negative_threshold_level key
60
+ raise "Key index must be between 0 and 6" unless key.between? 0, 6
61
+ read_byte 32 + key
62
+ end
63
+
64
+ #TODO write to this register
65
+ def adjacent_key_suppression_level key
66
+ #TODO parse/check result
67
+ raise "Key index must be between 0 and 6" unless key.between? 0, 6
68
+ read_byte 39 + key
69
+ end
70
+
71
+ #TODO write to this register
72
+ def detection_integrator_counter key
73
+ #TODO parse/check result
74
+ raise "Key index must be between 0 and 6" unless key.between? 0, 6
75
+ read_byte 46 + key
76
+ end
77
+
78
+ #TODO write to this register
79
+ def fo_mo_guard_no
80
+ #TODO parse/check result
81
+ read_byte 53
82
+ end
83
+
84
+ #TODO write to this register
85
+ def low_power_mode
86
+ #TODO parse/check result
87
+ read_byte 54
88
+ end
89
+
90
+ #TODO write to this register
91
+ def maximum_on_duration
92
+ #TODO parse/check result
93
+ read_byte 55
94
+ end
95
+
96
+ #TODO write to this register
97
+ def calibrate
98
+ #TODO parse/check result
99
+ read_byte 56
100
+ end
101
+
102
+ #TODO write to this register
103
+ def reset
104
+ #TODO parse/check result
105
+ read_byte 57
106
+ end
107
+
108
+ private
109
+ def read register, read_bytes = 1
110
+ @i2c.read I2C_ADDRESS, read_bytes , register
111
+ end
112
+
113
+ def read_byte register
114
+ data = read register
115
+ data.unpack("C").first
116
+ end
117
+
118
+ def read_short register
119
+ data = read register, 2
120
+ data.unpack("S_").first
121
+ end
15
122
  end
16
123
 
17
124
  end
@@ -1,3 +1,3 @@
1
1
  module Qt1070
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qt1070
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sille Van Landschoot
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-19 00:00:00.000000000 Z
11
+ date: 2016-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler