rfid-usb-gom-sensor 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|