apiotics_factory 1.0.16 → 1.0.17
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 +4 -4
- data/lib/apiotics_factory/version.rb +1 -1
- data/lib/templates/grove_pi/grove_pi.rb +29 -25
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ea4136f25984b4d1c62dc85c657c5c04a89f753
|
4
|
+
data.tar.gz: e214651a7cedab80f695a6e86734e55055bcf4bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43638445a83dafe569f668372031b87007c53e3a2ae0802b3700ae5b54bf7fe807a78c7c33e166a474895fe425953b13c1ca12fe2f8c6f07df714ac8966a51da
|
7
|
+
data.tar.gz: 2cb015822df5617e5ea6d6d9a1179299f64e9057a4c9c4329402762384399c6279fc9757df79acc3d6e557340b2a0b7d3a0b33b68a99ea07c13ac60fc8c1b601
|
@@ -1,12 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
module GrovePi
|
4
|
-
require 'json'
|
5
4
|
require_relative 'i2c'
|
6
5
|
require_relative 'i2c/driver/i2c-dev'
|
7
6
|
|
8
7
|
at_exit do
|
9
|
-
release_lock
|
8
|
+
GrovePi.release_lock
|
10
9
|
end
|
11
10
|
|
12
11
|
# Commands.
|
@@ -68,7 +67,7 @@ module GrovePi
|
|
68
67
|
@_i2c_grove_pi = nil
|
69
68
|
|
70
69
|
# Initialize i2c file path
|
71
|
-
|
70
|
+
@@_i2c_device_file = nil
|
72
71
|
|
73
72
|
|
74
73
|
|
@@ -132,19 +131,24 @@ module GrovePi
|
|
132
131
|
cycle = true
|
133
132
|
while cycle == true
|
134
133
|
begin
|
135
|
-
|
134
|
+
puts "Getting lock."
|
135
|
+
@@_i2c_device_file = File.open(LOCK_FILE_PATH, File::WRONLY|File::CREAT|File::EXCL)
|
136
136
|
cycle = false
|
137
|
+
puts "Lock acquired."
|
137
138
|
rescue
|
138
|
-
|
139
|
+
puts "Could not get lock."
|
139
140
|
end
|
140
141
|
end
|
141
142
|
end
|
142
143
|
|
143
144
|
def self.release_lock
|
144
|
-
|
145
|
-
|
145
|
+
puts "Releasing lock."
|
146
|
+
if @@_i2c_device_file.is_a?(File)
|
147
|
+
@@_i2c_device_file.close
|
146
148
|
File.delete(LOCK_FILE_PATH)
|
147
|
-
|
149
|
+
@@_i2c_device_file = nil
|
150
|
+
puts "Lock released."
|
151
|
+
sleep 0.1
|
148
152
|
end
|
149
153
|
end
|
150
154
|
|
@@ -166,42 +170,42 @@ module GrovePi
|
|
166
170
|
if @_i2c_grove_pi == nil
|
167
171
|
raise 'No GrovePi found.'
|
168
172
|
end
|
169
|
-
|
173
|
+
GrovePi.get_lock
|
170
174
|
end
|
171
175
|
end
|
172
176
|
|
173
177
|
def self._set_pin_mode(pin, mode)
|
174
178
|
self._ensure_init
|
175
179
|
@_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_PIN_MODE, pin, mode, 0
|
176
|
-
|
180
|
+
GrovePi.release_lock
|
177
181
|
end
|
178
182
|
|
179
183
|
def self._read_analog(pin)
|
180
184
|
self._ensure_init
|
181
185
|
@_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_ANALOG, pin, 0, 0
|
182
186
|
bytes = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
|
183
|
-
|
187
|
+
GrovePi.release_lock
|
184
188
|
return (bytes[1].ord * 256) + bytes[2].ord
|
185
189
|
end
|
186
190
|
|
187
191
|
def self._write_analog(pin, value)
|
188
192
|
self._ensure_init
|
189
193
|
@_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_WRITE_ANALOG, pin, value, 0
|
190
|
-
|
194
|
+
GrovePi.release_lock
|
191
195
|
end
|
192
196
|
|
193
197
|
def self._read_digital(pin)
|
194
198
|
self._ensure_init
|
195
199
|
@_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_READ_DIGITAL, pin, 0, 0
|
196
200
|
val = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 2)
|
197
|
-
|
201
|
+
GrovePi.release_lock
|
198
202
|
return val.chars[0].ord
|
199
203
|
end
|
200
204
|
|
201
205
|
def self._write_digital(pin, value)
|
202
206
|
self._ensure_init
|
203
207
|
@_i2c_grove_pi.i2cset @_i2c_grove_pi.address, CMD_WRITE_DIGITAL, pin, value, 0
|
204
|
-
|
208
|
+
GrovePi.release_lock
|
205
209
|
end
|
206
210
|
|
207
211
|
# Functions exposed to the user.
|
@@ -310,7 +314,7 @@ module GrovePi
|
|
310
314
|
end
|
311
315
|
|
312
316
|
@_i2c_slave_addresses[i2c_slave_address].i2cset i2c_slave_address, *data
|
313
|
-
release_lock
|
317
|
+
GrovePi.release_lock
|
314
318
|
end
|
315
319
|
|
316
320
|
# Miscellaneous functions.
|
@@ -346,7 +350,7 @@ module GrovePi
|
|
346
350
|
@_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 1)
|
347
351
|
numbers = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3).chars
|
348
352
|
|
349
|
-
|
353
|
+
GrovePi.release_lock
|
350
354
|
return (numbers[1].ord) * 256 + (numbers[2].ord)
|
351
355
|
end
|
352
356
|
|
@@ -391,7 +395,7 @@ module GrovePi
|
|
391
395
|
end
|
392
396
|
end
|
393
397
|
end
|
394
|
-
|
398
|
+
GrovePi.release_lock
|
395
399
|
end
|
396
400
|
|
397
401
|
|
@@ -403,7 +407,7 @@ module GrovePi
|
|
403
407
|
def self.fourDigit_init(pin)
|
404
408
|
self._ensure_init
|
405
409
|
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_INIT, pin, 0, 0)
|
406
|
-
|
410
|
+
GrovePi.release_lock
|
407
411
|
end
|
408
412
|
|
409
413
|
|
@@ -414,7 +418,7 @@ module GrovePi
|
|
414
418
|
self._ensure_init
|
415
419
|
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_DIGIT, pin, segment, value)
|
416
420
|
sleep(0.05)
|
417
|
-
|
421
|
+
GrovePi.release_lock
|
418
422
|
end
|
419
423
|
|
420
424
|
# Turn on entire display (88:88)
|
@@ -422,7 +426,7 @@ module GrovePi
|
|
422
426
|
self._ensure_init
|
423
427
|
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_ON, pin, 0, 0)
|
424
428
|
sleep(0.05)
|
425
|
-
|
429
|
+
GrovePi.release_lock
|
426
430
|
end
|
427
431
|
|
428
432
|
# Display a decimal value without leading zeros
|
@@ -438,7 +442,7 @@ module GrovePi
|
|
438
442
|
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_VALUE, pin, byte1, byte2)
|
439
443
|
|
440
444
|
sleep(0.05)
|
441
|
-
|
445
|
+
GrovePi.release_lock
|
442
446
|
end
|
443
447
|
|
444
448
|
# Display a string
|
@@ -468,7 +472,7 @@ module GrovePi
|
|
468
472
|
i += 1
|
469
473
|
sleep(0.05)
|
470
474
|
end
|
471
|
-
|
475
|
+
GrovePi.release_lock
|
472
476
|
end
|
473
477
|
|
474
478
|
# Set brightness of display
|
@@ -477,7 +481,7 @@ module GrovePi
|
|
477
481
|
self._ensure_init
|
478
482
|
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_4DIG_BRIGHTNESS, pin, brightness.to_i, 0)
|
479
483
|
sleep(0.05)
|
480
|
-
|
484
|
+
GrovePi.release_lock
|
481
485
|
end
|
482
486
|
|
483
487
|
|
@@ -512,7 +516,7 @@ module GrovePi
|
|
512
516
|
end
|
513
517
|
|
514
518
|
@_i2c_slave_addresses[i2c_slave_address].i2cset *data
|
515
|
-
|
519
|
+
GrovePi.release_lock
|
516
520
|
end
|
517
521
|
|
518
522
|
# Set the color of the LCD RGB display
|
@@ -556,4 +560,4 @@ module GrovePi
|
|
556
560
|
|
557
561
|
# TODO: Implement rest of the commands that are supported by the firmware.
|
558
562
|
|
559
|
-
end
|
563
|
+
end
|