apiotics_factory 1.0.20 → 1.0.21

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: 3ce18cd9c7740a2e83af2b7a2ac74c46ef601390
4
- data.tar.gz: fd8875ead100d5258facc99acff93de4e0c5c158
3
+ metadata.gz: 44182e8ba90552a11de5d2f68f8feb30a121cd88
4
+ data.tar.gz: 35f3f10e57c52c7f582217595ae7c9e4e3f1e457
5
5
  SHA512:
6
- metadata.gz: a4d5151ef3c6476fa0f9f22bdceb68db07226b2e895881abb918f3c302585585f5445ac3a0147645066afde81de66acc22f90f064d9b9f75c4bf3c96e680e3e8
7
- data.tar.gz: 17c58b85be6aaf274141e8b5eb3fcdee542ff8da7e97f0fe905ab3b9b126f5181fbbe88b612522cccd47d0f9f79410d43b41cd39d5e60b78b7032cecdb5c4e11
6
+ metadata.gz: 51b7f7871601d299e211831ffd48bdd24fe7299745d01800a37421c8640af90e7224035c77f9dacda1322e4c987eb9783198d0f864d4695ed5a752351f4d1371
7
+ data.tar.gz: 04fc144a2887908179dadb0e0583faf2ebd9cba1d3c4a69e199e11573ddde6bde133aa5c970c9abf06ec49915174f683f27c65ebe9cce38c37512b1d2f3c7b66
@@ -1,3 +1,3 @@
1
1
  module ApioticsFactory
2
- VERSION = '1.0.20'
2
+ VERSION = '1.0.21'
3
3
  end
@@ -182,9 +182,14 @@ module GrovePi
182
182
  def self._read_analog(pin)
183
183
  self._ensure_init
184
184
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_ANALOG, pin, 0, 0
185
- bytes = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
185
+ read_value = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3)
186
186
  GrovePi.release_lock
187
- return (bytes[1].ord * 256) + bytes[2].ord
187
+ if read_value != nil
188
+ bytes = read_value.chars
189
+ return (bytes[1].ord * 256) + bytes[2].ord
190
+ else
191
+ return 65535
192
+ end
188
193
  end
189
194
 
190
195
  def self._write_analog(pin, value)
@@ -198,7 +203,11 @@ module GrovePi
198
203
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_DIGITAL, pin, 0, 0
199
204
  val = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 2)
200
205
  GrovePi.release_lock
201
- return val.chars[0].ord
206
+ if val != nil
207
+ return val.chars[0].ord
208
+ else
209
+ return 0
210
+ end
202
211
  end
203
212
 
204
213
  def self._write_digital(pin, value)
@@ -291,13 +300,19 @@ module GrovePi
291
300
  end
292
301
 
293
302
  bytes = []
294
- _bytes = @_i2c_slave_addresses[i2c_slave_address].i2cget(i2c_slave_address, length).chars
295
-
296
- for b in _bytes
297
- bytes << b.ord
303
+ read_value = @_i2c_slave_addresses[i2c_slave_address].i2cget(i2c_slave_address, length)
304
+ GrovePi.release_lock
305
+
306
+ if read_value != nil
307
+ _bytes = read_value.chars
308
+ for b in _bytes
309
+ bytes << b.ord
310
+ end
311
+ return bytes
312
+ else
313
+ return ["0".ord]
298
314
  end
299
- release_lock
300
- return bytes
315
+
301
316
  end
302
317
 
303
318
  def self.write_grove_pi_i2c(i2c_slave_address, *data)
@@ -322,9 +337,14 @@ module GrovePi
322
337
  begin
323
338
  self._ensure_init
324
339
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_FIRMWARE_VERSION, 0, 0, 0
325
- bytes = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 4).chars
326
- self.release_lock
327
- return [bytes[1].ord, bytes[2].ord, bytes[3].ord]
340
+ read_value = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 4)
341
+ GrovePi.release_lock
342
+ if read_value != nil
343
+ bytes = read_value.chars
344
+ return [bytes[1].ord, bytes[2].ord, bytes[3].ord]
345
+ else
346
+ raise "Firmware version could not be read."
347
+ end
328
348
  rescue Errno::EREMOTEIO
329
349
  next
330
350
  end
@@ -347,10 +367,16 @@ module GrovePi
347
367
  sleep(0.06) #firmware has a time of 50ms so wait for more than that
348
368
 
349
369
  @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 1)
350
- numbers = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
351
-
352
370
  GrovePi.release_lock
353
- return (numbers[1].ord) * 256 + (numbers[2].ord)
371
+
372
+ read_value = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3)
373
+
374
+ if read_value != nil
375
+ numbers = read_value.chars
376
+ return (numbers[1].ord) * 256 + (numbers[2].ord)
377
+ else
378
+ return 0
379
+ end
354
380
  end
355
381
 
356
382
 
@@ -384,19 +410,21 @@ module GrovePi
384
410
 
385
411
  # read 10 more bytes
386
412
  number = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 9)
387
-
413
+ GrovePi.release_lock
388
414
  if !number.nil?
389
415
  temp_value = number[1..4].unpack('f')[0].round(2) * 9/5 + 32 #convert to F
390
416
  humidity_value = number[5..8].unpack('f')[0].round(2)
417
+ return temp_value, humidity_value
418
+ else
419
+ return 0.0, -100.0
391
420
  end
392
-
393
421
  rescue Errno::EREMOTEIO
394
422
  next
395
423
  end
396
424
  end
397
425
  end
398
- GrovePi.release_lock
399
- return temp_value, humidity_value
426
+
427
+
400
428
  end
401
429
 
402
430
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apiotics_factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.20
4
+ version: 1.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Apiotics