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 CHANGED
@@ -3,3 +3,4 @@
3
3
  coverage
4
4
  rdoc
5
5
  pkg
6
+ *.gemspec
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 "ruby-serialport"
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.0
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
- buf << (blk = @sp.read(13))
69
- stx, adx, uid, err, bcc, etx = (Node.decode buf)
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.0
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: ruby-serialport
16
+ name: toholio-serialport
17
17
  type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement