apiotics_factory 1.0.9 → 1.0.10
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb99cea55e392ce659821534aa4035d7b027a208
|
4
|
+
data.tar.gz: 5061c5353562c4e3058e5b377e468421df05f829
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c640a055093018dd3f5f21e865c585773575a414695570ab49b6c5a9c44b6a57d726448ca8327cef0ea6735b611c0b370bb6095dff4b728bba42ee4d9345207b
|
7
|
+
data.tar.gz: 8c42c5c0f5f7a0087e1c836042aba5e703213aec34ee8b056bd10452f4111b6629684a55ba5fcea980c9569d4f6097a32c2a6d6b025721796bc3ae9df6b9c90b
|
@@ -41,7 +41,7 @@ module GrovePi
|
|
41
41
|
D7 = 7
|
42
42
|
D8 = 8
|
43
43
|
|
44
|
-
PINS_DIGITAL = [D2, D3, D4, D5, D6, D7, D8]
|
44
|
+
PINS_DIGITAL = [D2, D3, D4, D5, D6, D7, D8, A2] #added A2 to test using analog port as digital
|
45
45
|
|
46
46
|
# Pin modes.
|
47
47
|
PIN_MODE_IN = 0
|
@@ -209,7 +209,8 @@ module GrovePi
|
|
209
209
|
begin
|
210
210
|
self._set_pin_mode pin, PIN_MODE_IN
|
211
211
|
return self._read_digital pin
|
212
|
-
rescue
|
212
|
+
rescue => e
|
213
|
+
puts e.message
|
213
214
|
next
|
214
215
|
end
|
215
216
|
end
|
@@ -310,26 +311,41 @@ module GrovePi
|
|
310
311
|
# Temperature and Humidity Sensor
|
311
312
|
|
312
313
|
# Read temperature and humidity values from sensor
|
313
|
-
def self.read_temp_humidity(pin)
|
314
|
+
def self.read_temp_humidity(pin, sensor_version)
|
314
315
|
self._ensure_init
|
316
|
+
|
317
|
+
# if sensor is white: module_type = 1, if sensor is blue: module_type = 0
|
318
|
+
if sensor_version == "white"
|
319
|
+
module_type = 1
|
320
|
+
else
|
321
|
+
module_type = 0
|
322
|
+
end
|
315
323
|
|
316
|
-
|
317
|
-
|
324
|
+
error = false
|
325
|
+
begin
|
326
|
+
@_i2c_grove_pi.i2cset(@_i2c_grove_pi.address, CMD_READ_TEMP_HUM, pin, module_type, 0)
|
327
|
+
rescue => e
|
328
|
+
puts e.message
|
329
|
+
error = true
|
330
|
+
end
|
318
331
|
|
319
|
-
for i in 0..CONFIG_RETRIES - 1
|
320
|
-
begin
|
321
|
-
# read one byte
|
322
|
-
@_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 1)
|
323
332
|
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
333
|
+
if error == false
|
334
|
+
for i in 0..CONFIG_RETRIES - 1
|
335
|
+
begin
|
336
|
+
# read one byte
|
337
|
+
@_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 1)
|
329
338
|
|
330
|
-
|
331
|
-
|
332
|
-
|
339
|
+
# read 10 more bytes
|
340
|
+
number = @_i2c_grove_pi.i2cget(@_i2c_grove_pi.address, 9)
|
341
|
+
|
342
|
+
temp_value = number[1..4].unpack('f')[0].round(2) * 9/5 + 32 #convert to F
|
343
|
+
humidity_value = number[5..8].unpack('f')[0].round(2)
|
344
|
+
|
345
|
+
return temp_value, humidity_value
|
346
|
+
rescue Errno::EREMOTEIO
|
347
|
+
next
|
348
|
+
end
|
333
349
|
end
|
334
350
|
end
|
335
351
|
end
|
@@ -10,32 +10,62 @@ class I2CDevice::Driver::GPIO < I2CDevice::Driver::Base
|
|
10
10
|
|
11
11
|
def self.export(pin) #:nodoc:
|
12
12
|
File.open("/sys/class/gpio/export", "w") do |f|
|
13
|
-
|
13
|
+
begin
|
14
|
+
f.flock(FILE::LOCK_EX)
|
15
|
+
f.syswrite(pin)
|
16
|
+
f.flock(FILE::LOCK_UN)
|
17
|
+
rescue
|
18
|
+
f.flock(FILE::LOCK_UN)
|
19
|
+
end
|
14
20
|
end
|
15
21
|
end
|
16
22
|
|
17
23
|
def self.unexport(pin) #:nodoc:
|
18
24
|
File.open("/sys/class/gpio/unexport", "w") do |f|
|
19
|
-
|
25
|
+
begin
|
26
|
+
f.flock(FILE::LOCK_EX)
|
27
|
+
f.syswrite(pin)
|
28
|
+
f.flock(FILE::LOCK_UN)
|
29
|
+
rescue
|
30
|
+
f.flock(FILE::LOCK_UN)
|
31
|
+
end
|
20
32
|
end
|
21
33
|
end
|
22
34
|
|
23
35
|
def self.direction(pin, direction) #:nodoc:
|
24
36
|
# [:in, :out, :high, :low].include?(direction) or raise "direction must be :in, :out, :high or :low"
|
25
37
|
File.open("/sys/class/gpio/gpio#{pin}/direction", "w") do |f|
|
26
|
-
|
38
|
+
begin
|
39
|
+
f.flock(FILE::LOCK_EX)
|
40
|
+
f.syswrite(direction)
|
41
|
+
f.flock(FILE::LOCK_UN)
|
42
|
+
rescue
|
43
|
+
f.flock(FILE::LOCK_UN)
|
44
|
+
end
|
27
45
|
end
|
28
46
|
end
|
29
47
|
|
30
48
|
def self.read(pin) #:nodoc:
|
31
49
|
File.open("/sys/class/gpio/gpio#{pin}/value", "r") do |f|
|
32
|
-
|
50
|
+
begin
|
51
|
+
f.flock(FILE::LOCK_EX)
|
52
|
+
f.sysread(1).to_i
|
53
|
+
f.flock(FILE::LOCK_UN)
|
54
|
+
rescue
|
55
|
+
f.flock(FILE::LOCK_UN)
|
56
|
+
end
|
33
57
|
end
|
34
58
|
end
|
35
59
|
|
36
60
|
def self.write(pin, val) #:nodoc:
|
37
61
|
File.open("/sys/class/gpio/gpio#{pin}/value", "w") do |f|
|
38
|
-
|
62
|
+
begin
|
63
|
+
f.flock(FILE::LOCK_EX)
|
64
|
+
f.syswrite(val ? "1" : "0")
|
65
|
+
f.flock(FILE::LOCK_UN)
|
66
|
+
rescue
|
67
|
+
f.flock(FILE::LOCK_UN)
|
68
|
+
end
|
39
69
|
end
|
40
70
|
end
|
41
71
|
|
@@ -39,11 +39,17 @@ class I2CDevice::Driver::I2CDev < I2CDevice::Driver::Base
|
|
39
39
|
# Interface of I2CDevice::Driver
|
40
40
|
def i2cget(address, param, length)
|
41
41
|
i2c = File.open(@path, "r+")
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
begin
|
43
|
+
i2c.flock(FILE::LOCK_EX)
|
44
|
+
i2c.ioctl(@slave_command, address)
|
45
|
+
i2c.syswrite(param.chr) unless param.nil?
|
46
|
+
ret = i2c.sysread(length)
|
47
|
+
i2c.flock(FILE::LOCK_UN)
|
48
|
+
i2c.close
|
49
|
+
ret
|
50
|
+
rescue
|
51
|
+
f.flock(FILE::LOCK_UN)
|
52
|
+
end
|
47
53
|
rescue Errno::EIO => e
|
48
54
|
raise I2CDevice::I2CIOError, e.message
|
49
55
|
end
|
@@ -51,9 +57,15 @@ class I2CDevice::Driver::I2CDev < I2CDevice::Driver::Base
|
|
51
57
|
# Interface of I2CDevice::Driver
|
52
58
|
def i2cset(address, *data)
|
53
59
|
i2c = File.open(@path, "r+")
|
54
|
-
|
55
|
-
|
56
|
-
|
60
|
+
begin
|
61
|
+
i2c.flock(FILE::LOCK_EX)
|
62
|
+
i2c.ioctl(@slave_command, address)
|
63
|
+
i2c.syswrite(data.pack("C*"))
|
64
|
+
i2c.flock(FILE::LOCK_UN)
|
65
|
+
i2c.close
|
66
|
+
rescue
|
67
|
+
i2c.flock(FILE::LOCK_UN)
|
68
|
+
end
|
57
69
|
rescue Errno::EIO => e
|
58
70
|
raise I2CDevice::I2CIOError, e.message
|
59
71
|
end
|
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.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Apiotics
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.6.10
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: A Gem To Generate Apiotics Drivers
|