rfid-usb-gom-sensor 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/rfid-usb-gom-sensor/node.rb +19 -5
- metadata +2 -2
data/.gitignore
CHANGED
data/Rakefile
CHANGED
|
@@ -18,7 +18,7 @@ begin
|
|
|
18
18
|
gem.homepage = "http://github.com/crux/rfid-usb-gom-sensor"
|
|
19
19
|
gem.authors = ["art+com/dirk luesebrink"]
|
|
20
20
|
|
|
21
|
-
gem.add_runtime_dependency "
|
|
21
|
+
gem.add_runtime_dependency "toholio-serialport"
|
|
22
22
|
gem.add_runtime_dependency "gom-script"
|
|
23
23
|
|
|
24
24
|
gem.add_development_dependency "rspec"
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.1
|
|
@@ -7,6 +7,9 @@ end
|
|
|
7
7
|
module RfidUsbGomSensor
|
|
8
8
|
class Node < Gom::Remote::Entry
|
|
9
9
|
|
|
10
|
+
# raised on all kinds of comm errors
|
|
11
|
+
class BrokenRead < Exception; end
|
|
12
|
+
|
|
10
13
|
Defaults = {
|
|
11
14
|
:device => "/dev/ttyUSB0",
|
|
12
15
|
:baudrate => 9600,
|
|
@@ -49,7 +52,7 @@ module RfidUsbGomSensor
|
|
|
49
52
|
class << self
|
|
50
53
|
def checksum buf, expected
|
|
51
54
|
cc = (buf.unpack "C*").inject(0) { |cc, c| cc ^ c }
|
|
52
|
-
(cc != expected) and raise "checksum missmatch: #{cc} != #{expected}"
|
|
55
|
+
(cc != expected) and raise BrokenRead, "checksum missmatch: #{cc} != #{expected}"
|
|
53
56
|
cc
|
|
54
57
|
end
|
|
55
58
|
|
|
@@ -63,16 +66,27 @@ module RfidUsbGomSensor
|
|
|
63
66
|
end
|
|
64
67
|
|
|
65
68
|
def detect
|
|
66
|
-
buf = ""
|
|
67
69
|
loop do
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
buf = ""
|
|
70
|
+
uid = next_tag
|
|
71
|
+
connection.write "#{@path}/tags/#{uid}:sensor_ip", @ip
|
|
71
72
|
end
|
|
73
|
+
rescue BrokenRead => e
|
|
74
|
+
(resync_from_broken_read e) and retry
|
|
72
75
|
rescue SignalException => e
|
|
73
76
|
:stop # if (e.signm == "INT")
|
|
74
77
|
end
|
|
75
78
|
|
|
79
|
+
def resync_from_broken_read e
|
|
80
|
+
puts " !! broken read resync not yet implemented: #{e}"
|
|
81
|
+
raise e
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def next_tag
|
|
85
|
+
(blk = @sp.read(13))
|
|
86
|
+
stx, adx, uid, err, bcc, etx = (Node.decode blk)
|
|
87
|
+
uid
|
|
88
|
+
end
|
|
89
|
+
|
|
76
90
|
def _detect
|
|
77
91
|
=begin
|
|
78
92
|
Format:
|
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.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- art+com/dirk luesebrink
|
|
@@ -13,7 +13,7 @@ date: 2009-12-30 00:00:00 +01:00
|
|
|
13
13
|
default_executable: rfid-usb-gom-sensor.rb
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
|
-
name:
|
|
16
|
+
name: toholio-serialport
|
|
17
17
|
type: :runtime
|
|
18
18
|
version_requirement:
|
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|