apiotics_factory 1.0.16 → 1.0.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|