apiotics_factory 1.0.13 → 1.0.14

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c59e4c2af33710657bcf828cac7f8fad3a31020d
4
- data.tar.gz: b35cff21244a958ca0a4de7c03aa720eb53ac6a3
3
+ metadata.gz: 9270010b9cb3c5341dcde31399a9a6d1dfd4ac97
4
+ data.tar.gz: fcaac312ac73565c72a1ca2b24a7242cafa0c480
5
5
  SHA512:
6
- metadata.gz: 20530e3885b7bab8fb53a069745f0be79ec34d59d39ce0805011100548d09e10d60acfab728130ef91852907639af4f001eea66f6fb925409e6748fc1c277d31
7
- data.tar.gz: 409a7a0181e5a6d84bac9910ae51ace88a5c9511e2f3c491106bd56c83e2c7ed43d90946001b7e3297d7c8cfe70a523d7fd6d2a91578ea4c424d82123adfa70f
6
+ metadata.gz: '025129626bfcbce7e4540a6b0bc406e0b618a7695415910e3b8e68425a7d150c32563a7a7a7c87bcb60fe8ff5450431193bf7a80c966fb1f8b0703dce352600e'
7
+ data.tar.gz: 8a0e7978b0dd1b00ae997c40d0bf1d18dad8ddd712ab2235c58845fee42c08a8dddc9bcf003a4f60b230bba3b69c93f0b79ece41584edea0faf07c9239480aa7
@@ -1,3 +1,3 @@
1
1
  module ApioticsFactory
2
- VERSION = '1.0.13'
2
+ VERSION = '1.0.14'
3
3
  end
@@ -166,38 +166,42 @@ module GrovePi
166
166
  if @_i2c_grove_pi == nil
167
167
  raise 'No GrovePi found.'
168
168
  end
169
- unless @_i2c_device_file.is_a(File)
170
- raise "Unable to secure lock on #{LOCK_FILE_PATH}."
171
- end
169
+ self.get_lock
172
170
  end
173
171
  end
174
172
 
175
173
  def self._set_pin_mode(pin, mode)
176
174
  self._ensure_init
177
175
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_PIN_MODE, pin, mode, 0
176
+ self.release_lock
178
177
  end
179
178
 
180
179
  def self._read_analog(pin)
181
180
  self._ensure_init
182
181
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_ANALOG, pin, 0, 0
183
182
  bytes = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
183
+ self.release_lock
184
184
  return (bytes[1].ord * 256) + bytes[2].ord
185
185
  end
186
186
 
187
187
  def self._write_analog(pin, value)
188
188
  self._ensure_init
189
189
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_WRITE_ANALOG, pin, value, 0
190
+ self.release_lock
190
191
  end
191
192
 
192
193
  def self._read_digital(pin)
193
194
  self._ensure_init
194
195
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_DIGITAL, pin, 0, 0
195
- return @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 2).chars[0].ord
196
+ val = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 2)
197
+ self.release_lock
198
+ return val.chars[0].ord
196
199
  end
197
200
 
198
201
  def self._write_digital(pin, value)
199
202
  self._ensure_init
200
203
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_WRITE_DIGITAL, pin, value, 0
204
+ self.release_lock
201
205
  end
202
206
 
203
207
  # Functions exposed to the user.
@@ -289,7 +293,7 @@ module GrovePi
289
293
  for b in _bytes
290
294
  bytes << b.ord
291
295
  end
292
-
296
+ release_lock
293
297
  return bytes
294
298
  end
295
299
 
@@ -306,6 +310,7 @@ module GrovePi
306
310
  end
307
311
 
308
312
  @_i2c_slave_addresses[i2c_slave_address].i2cset i2c_slave_address, *data
313
+ release_lock
309
314
  end
310
315
 
311
316
  # Miscellaneous functions.
@@ -315,6 +320,7 @@ module GrovePi
315
320
  self._ensure_init
316
321
  @_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_FIRMWARE_VERSION, 0, 0, 0
317
322
  bytes = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 4).chars
323
+ self.release_lock
318
324
  return [bytes[1].ord, bytes[2].ord, bytes[3].ord]
319
325
  rescue Errno::EREMOTEIO
320
326
  next
@@ -340,6 +346,7 @@ module GrovePi
340
346
  @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 1)
341
347
  numbers = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
342
348
 
349
+ self.release_lock
343
350
  return (numbers[1].ord) * 256 + (numbers[2].ord)
344
351
  end
345
352
 
@@ -384,6 +391,7 @@ module GrovePi
384
391
  end
385
392
  end
386
393
  end
394
+ self.release_lock
387
395
  end
388
396
 
389
397
 
@@ -395,6 +403,7 @@ module GrovePi
395
403
  def self.fourDigit_init(pin)
396
404
  self._ensure_init
397
405
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_INIT, pin, 0, 0)
406
+ self.release_lock
398
407
  end
399
408
 
400
409
 
@@ -405,6 +414,7 @@ module GrovePi
405
414
  self._ensure_init
406
415
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_DIGIT, pin, segment, value)
407
416
  sleep(0.05)
417
+ self.release_lock
408
418
  end
409
419
 
410
420
  # Turn on entire display (88:88)
@@ -412,6 +422,7 @@ module GrovePi
412
422
  self._ensure_init
413
423
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_ON, pin, 0, 0)
414
424
  sleep(0.05)
425
+ self.release_lock
415
426
  end
416
427
 
417
428
  # Display a decimal value without leading zeros
@@ -427,6 +438,7 @@ module GrovePi
427
438
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_VALUE, pin, byte1, byte2)
428
439
 
429
440
  sleep(0.05)
441
+ self.release_lock
430
442
  end
431
443
 
432
444
  # Display a string
@@ -456,6 +468,7 @@ module GrovePi
456
468
  i += 1
457
469
  sleep(0.05)
458
470
  end
471
+ self.release_lock
459
472
  end
460
473
 
461
474
  # Set brightness of display
@@ -464,6 +477,7 @@ module GrovePi
464
477
  self._ensure_init
465
478
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_BRIGHTNESS, pin, brightness.to_i, 0)
466
479
  sleep(0.05)
480
+ self.release_lock
467
481
  end
468
482
 
469
483
 
@@ -476,6 +490,7 @@ module GrovePi
476
490
  left = value/100
477
491
  right = value % 100
478
492
  @_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_CLOCK, pin, left, right)
493
+ self.release_lock
479
494
  return left, right
480
495
  end
481
496
 
@@ -497,6 +512,7 @@ module GrovePi
497
512
  end
498
513
 
499
514
  @_i2c_slave_addresses[i2c_slave_address].i2cset *data
515
+ self.release_lock
500
516
  end
501
517
 
502
518
  # Set the color of the LCD RGB display
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.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Apiotics