rfid-usb-gom-sensor 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/rfid-usb-gom-sensor/node.rb +16 -5
- data/spec/rfid-usb-gom-sensor/node_spec.rb +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
@@ -81,6 +81,7 @@ module RfidUsbGomSensor
|
|
81
81
|
Defaults = {
|
82
82
|
:device => "/dev/ttyUSB0",
|
83
83
|
:baudrate => 9600,
|
84
|
+
:hex_id => false,
|
84
85
|
}
|
85
86
|
|
86
87
|
include OAttr
|
@@ -98,6 +99,10 @@ module RfidUsbGomSensor
|
|
98
99
|
@gom_tags = find_tags
|
99
100
|
end
|
100
101
|
|
102
|
+
def hex_id
|
103
|
+
@hex_id ||= @options[:hex_id]
|
104
|
+
end
|
105
|
+
|
101
106
|
def find_tags
|
102
107
|
tag_node = X::Entry.find "#{@path}/tags"
|
103
108
|
#puts "-->#{tag_node.inspect}<---"
|
@@ -151,18 +156,24 @@ module RfidUsbGomSensor
|
|
151
156
|
# 11 BCC XOR[1..10]
|
152
157
|
# 12 ETX 0x03
|
153
158
|
#
|
154
|
-
def decode blk
|
159
|
+
def decode blk, hex_id = false
|
155
160
|
#validate
|
156
161
|
rec = (blk.unpack 'c2Qc*')
|
157
|
-
|
158
|
-
|
162
|
+
if hex_id
|
163
|
+
id = rec[2]
|
164
|
+
rec[2] = "0x#{([id].pack 'Q').unpack 'H*'}"
|
165
|
+
end
|
159
166
|
expected = rec[4]
|
160
|
-
cc = (blk[1..10].unpack "C*").inject(0) {|cc, c| cc^c}
|
167
|
+
cc = (calc_checksum blk[1..10]) # (blk[1..10].unpack "C*").inject(0) {|cc, c| cc^c}
|
161
168
|
(cc == expected) or (raise_broken_read cc, expected, blk)
|
162
169
|
#checksum blk[1..10], rec[4]
|
163
170
|
#puts "-#{rec.inspect}-"
|
164
171
|
rec
|
165
172
|
end
|
173
|
+
|
174
|
+
def calc_checksum blk
|
175
|
+
(blk.unpack "C*").inject(0) {|cc, c| cc^c}
|
176
|
+
end
|
166
177
|
end
|
167
178
|
|
168
179
|
def detect
|
@@ -210,7 +221,7 @@ module RfidUsbGomSensor
|
|
210
221
|
|
211
222
|
def next_tag
|
212
223
|
(blk = @sp.read(13))
|
213
|
-
stx, adx, uid, err, bcc, etx = (Node.decode blk)
|
224
|
+
stx, adx, uid, err, bcc, etx = (Node.decode blk, hex_id)
|
214
225
|
uid
|
215
226
|
end
|
216
227
|
end
|
@@ -22,7 +22,7 @@ describe RfidUsbGomSensor::Node do
|
|
22
22
|
|
23
23
|
it "should calc a xor checksum" do
|
24
24
|
buf = [0x01, 0x02, 0x04, 0x08].pack "c*"
|
25
|
-
lambda { Node.
|
25
|
+
lambda { Node.calc_checksum buf }.should_not raise_error
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "with a node it" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rfid-usb-gom-sensor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- art+com/dirk luesebrink
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-11 00:00:00 +01:00
|
13
13
|
default_executable: rfid-usb-gom-sensor
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|