apiotics_factory 1.0.20 → 1.0.21
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 +47 -19
- 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: 44182e8ba90552a11de5d2f68f8feb30a121cd88
|
4
|
+
data.tar.gz: 35f3f10e57c52c7f582217595ae7c9e4e3f1e457
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51b7f7871601d299e211831ffd48bdd24fe7299745d01800a37421c8640af90e7224035c77f9dacda1322e4c987eb9783198d0f864d4695ed5a752351f4d1371
|
7
|
+
data.tar.gz: 04fc144a2887908179dadb0e0583faf2ebd9cba1d3c4a69e199e11573ddde6bde133aa5c970c9abf06ec49915174f683f27c65ebe9cce38c37512b1d2f3c7b66
|
@@ -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
|
-
|
185
|
+
read_value = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 3)
|
186
186
|
GrovePi.release_lock
|
187
|
-
|
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
|
-
|
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
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
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
|
-
|
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
|
-
|
326
|
-
|
327
|
-
|
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
|
-
|
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
|
-
|
399
|
-
|
426
|
+
|
427
|
+
|
400
428
|
end
|
401
429
|
|
402
430
|
|