evepi 0.2.2 → 0.2.3
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.
- data/lib/evepi.rb +98 -205
- data/lib/evepi/acc_01.rb +31 -0
- data/lib/evepi/air_01.rb +12 -0
- data/lib/evepi/inf_01.rb +12 -0
- data/lib/evepi/inp_01.rb +25 -0
- data/lib/evepi/module.rb +12 -0
- data/lib/evepi/out_01.rb +86 -0
- data/lib/evepi/snd_01.rb +15 -0
- data/lib/evepi/tem_01.rb +13 -0
- data/lib/evepi/tus_01.rb +12 -0
- data/lib/evepi/ultrason.rb +12 -0
- metadata +13 -3
data/lib/evepi.rb
CHANGED
|
@@ -2,211 +2,104 @@ require 'socket'
|
|
|
2
2
|
require 'rubygems'
|
|
3
3
|
require 'json'
|
|
4
4
|
|
|
5
|
-
module
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
5
|
+
module Evepi
|
|
6
|
+
module Evepi_Init_Mixin
|
|
7
|
+
attr_accessor :json_obj
|
|
8
|
+
|
|
9
|
+
def initialize(sensor)
|
|
10
|
+
json_path = open( '/etc/%s/fuckpath.md' % sensor ).read()
|
|
11
|
+
json_file = File.read(json_path)
|
|
12
|
+
@json_obj = JSON.parse(json_file)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class Sensor
|
|
17
|
+
include Evepi_Init_Mixin
|
|
18
|
+
|
|
19
|
+
def get_raw_res(name='fuckname', cmd='fuck')
|
|
20
|
+
hostname = @json_obj[name][0]
|
|
21
|
+
port = @json_obj[name][1]
|
|
22
|
+
s = TCPSocket.open(hostname, port)
|
|
23
|
+
s.send cmd, 0
|
|
24
|
+
line = s.recv(1024)
|
|
25
|
+
s.close
|
|
26
|
+
return line
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def get_res_by_key(key, name=@name, cmd="fuck")
|
|
30
|
+
json_str = get_raw_res(name, cmd)
|
|
31
|
+
json_obj = JSON.parse(json_str)
|
|
32
|
+
return json_obj[key]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
alias_method :get_res, :get_raw_res
|
|
36
|
+
|
|
37
|
+
def test_get_res_loop(name='fuckname')
|
|
38
|
+
while true
|
|
39
|
+
puts sensor.get_raw_res(name)
|
|
40
|
+
sleep(0.5)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class LCD_Screen
|
|
46
|
+
include Evepi_Init_Mixin
|
|
47
|
+
|
|
48
|
+
def _write(input_json, name)
|
|
49
|
+
socket = TCPSocket.open(@hostname, @port)
|
|
50
|
+
socket.send input_json, 0
|
|
51
|
+
line = socket.recv(1024)
|
|
52
|
+
socket.close
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def write(type, x, y, content, name=@name)
|
|
56
|
+
input_dict = {
|
|
57
|
+
:cursor_whether => type,
|
|
58
|
+
:cursor_i => x,
|
|
59
|
+
:cursor_j => y,
|
|
60
|
+
:input_string => content
|
|
61
|
+
}
|
|
62
|
+
input_json = JSON.dump(input_dict)
|
|
63
|
+
return _write(input_json, name)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
@@CURSOR_SET = 1
|
|
67
|
+
def set_cursor(x, y, name=@name)
|
|
68
|
+
input_dict = {
|
|
69
|
+
:cursor_whether => @@CURSOR_SET,
|
|
70
|
+
:cursor_i => x,
|
|
71
|
+
:cursor_j => y,
|
|
72
|
+
}
|
|
73
|
+
input_json = JSON.dump(input_dict)
|
|
74
|
+
return _write(input_json, name)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def write_at(x, y, content, name=@name)
|
|
78
|
+
input_dict = {
|
|
79
|
+
:cursor_whether => @@CURSOR_SET,
|
|
80
|
+
:cursor_i => x,
|
|
81
|
+
:cursor_j => y,
|
|
82
|
+
:input_string => content
|
|
83
|
+
}
|
|
84
|
+
input_json = JSON.dump(input_dict)
|
|
85
|
+
return _write(input_json, name)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
@@CURSOR_APPEND = 0
|
|
89
|
+
def write_after(content, name=@name)
|
|
90
|
+
input_dict = {
|
|
91
|
+
:cursor_whether => @@CURSOR_APPEND,
|
|
92
|
+
:input_string => content
|
|
93
|
+
}
|
|
94
|
+
input_json = JSON.dump(input_dict)
|
|
95
|
+
return _write(input_json, name)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
@@CURSOR_CLEAR = 2
|
|
99
|
+
def clear(name=@name)
|
|
100
|
+
return write(@@CURSOR_CLEAR, 0, 0, nil, name)
|
|
101
|
+
end
|
|
86
102
|
end
|
|
87
103
|
|
|
88
|
-
@@CURSOR_SET = 1
|
|
89
|
-
def set_cursor(x, y, name=@name)
|
|
90
|
-
input_dict = {
|
|
91
|
-
:cursor_whether => @@CURSOR_SET,
|
|
92
|
-
:cursor_i => x,
|
|
93
|
-
:cursor_j => y,
|
|
94
|
-
}
|
|
95
|
-
input_json = JSON.dump(input_dict)
|
|
96
|
-
return _write(input_json, name)
|
|
97
|
-
end
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
input_dict = {
|
|
101
|
-
:cursor_whether => @@CURSOR_SET,
|
|
102
|
-
:cursor_i => x,
|
|
103
|
-
:cursor_j => y,
|
|
104
|
-
:input_string => content
|
|
105
|
-
}
|
|
106
|
-
input_json = JSON.dump(input_dict)
|
|
107
|
-
return _write(input_json, name)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
@@CURSOR_APPEND = 0
|
|
111
|
-
def write_after(content, name=@name)
|
|
112
|
-
input_dict = {
|
|
113
|
-
:cursor_whether => @@CURSOR_APPEND,
|
|
114
|
-
:input_string => content
|
|
115
|
-
}
|
|
116
|
-
input_json = JSON.dump(input_dict)
|
|
117
|
-
return _write(input_json, name)
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
@@CURSOR_CLEAR = 2
|
|
121
|
-
def clear(name=@name)
|
|
122
|
-
return write(@@CURSOR_CLEAR, 0, 0, nil, name)
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
class SensorFactory
|
|
127
|
-
def self.createUltrasonSensor(sensor_name='ultrason')
|
|
128
|
-
return Sensor.new sensor_name
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def self.createLCDScreen(sensor_name='out_01')
|
|
132
|
-
return LCD_Screen.new sensor_name
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def self.createButtonSensor(sensor_name='inp_01')
|
|
136
|
-
return ButtonSensor.new sensor_name
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def self.createInfraredSensor(sensor_name='inf_01')
|
|
140
|
-
return Sensor.new sensor_name
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def self.createHumiditySensor(sensor_name='tus_01')
|
|
144
|
-
return Sensor.new sensor_name
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
def self.createAirSensor(sensor_name='air_01')
|
|
148
|
-
return Sensor.new sensor_name
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def self.createTemperatureAndHumiditySensor(sensor_name='tem_01')
|
|
152
|
-
return Sensor.new sensor_name
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
def self.createSoundSensor(sensor_name='snd_01')
|
|
156
|
-
return SoundSensor.new sensor_name
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
#ultrason_sensor.test_get_response()
|
|
161
|
-
#accelerator = Sensor.new 'acc_01'
|
|
162
|
-
#accelerator.test_get_response()
|
|
163
|
-
|
|
164
|
-
# test LCD out_01
|
|
165
|
-
=begin
|
|
166
|
-
out = LCD_Screen.new 'out_01'
|
|
167
|
-
out.clear
|
|
168
|
-
out.set_cursor 0, 1
|
|
169
|
-
out.write_after 'f'
|
|
170
|
-
out.set_cursor 1, 2
|
|
171
|
-
out.write_after 'u'
|
|
172
|
-
out.set_cursor 0, 3
|
|
173
|
-
out.write_after 'c'
|
|
174
|
-
out.set_cursor 1, 4
|
|
175
|
-
out.write_after 'k'
|
|
176
|
-
out.write_at 0, 6, 'zyw'
|
|
177
|
-
|
|
178
|
-
btn = SensorFactory.createButtonSensor
|
|
179
|
-
while true
|
|
180
|
-
puts btn.get_now_response
|
|
181
|
-
puts btn.get_now_action
|
|
182
|
-
puts btn.get_on_off_status
|
|
183
|
-
sleep(0.5)
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
sensor = SensorFactory.createInfraredSensor
|
|
188
|
-
while true
|
|
189
|
-
puts sensor.get_response()
|
|
190
|
-
sleep(0.5)
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
sensor = SensorFactory.createHumiditySensor
|
|
194
|
-
while true
|
|
195
|
-
puts sensor.get_response()
|
|
196
|
-
sleep(0.5)
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
sensor = SensorFactory.createAirSensor
|
|
200
|
-
while true
|
|
201
|
-
puts sensor.get_response()
|
|
202
|
-
sleep(0.5)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
sensor = SensorFactory.createSoundSensor
|
|
206
|
-
while true
|
|
207
|
-
puts sensor.get_5ms_res()
|
|
208
|
-
puts sensor.get_1s_res()
|
|
209
|
-
sleep(0.5)
|
|
210
|
-
end
|
|
211
|
-
|
|
212
|
-
=end
|
|
105
|
+
end
|
data/lib/evepi/acc_01.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'evepi'
|
|
2
|
+
require 'evepi/module'
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Evepi
|
|
6
|
+
class ACC_01
|
|
7
|
+
@@sensor = Sensor.new 'acc_01'
|
|
8
|
+
def self.get_res(name='fuckname')
|
|
9
|
+
json_raw = @@sensor.get_raw_res(name)
|
|
10
|
+
return JSON.parse(json_raw)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.get_a(name='fuckname')
|
|
14
|
+
json_raw = @@sensor.get_raw_res(name)
|
|
15
|
+
result = JSON.parse(json_raw)
|
|
16
|
+
return result['ax'], result['ay'], result['az']
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.get_w(name='fuckname')
|
|
20
|
+
json_raw = @@sensor.get_raw_res(name)
|
|
21
|
+
result = JSON.parse(json_raw)
|
|
22
|
+
return result['wx'], result['wy'], result['wz']
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.get_r(name='fuckname')
|
|
26
|
+
json_raw = @@sensor.get_raw_res(name)
|
|
27
|
+
result = JSON.parse(json_raw)
|
|
28
|
+
return result['rx'], result['ry'], result['rz']
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/evepi/air_01.rb
ADDED
data/lib/evepi/inf_01.rb
ADDED
data/lib/evepi/inp_01.rb
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'evepi'
|
|
2
|
+
require 'evepi/module'
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Evepi
|
|
6
|
+
class INP_01
|
|
7
|
+
@@sensor = Sensor.new 'inp_01'
|
|
8
|
+
def self.get_res(name='fuckname')
|
|
9
|
+
json_raw = @@sensor.get_raw_res(name)
|
|
10
|
+
return JSON.parse(json_raw)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.get_now_response(name='fuckname', cmd='fuck')
|
|
14
|
+
return @@sensor.get_res_by_key('now_result', name, cmd)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.get_now_action(name='fuckname', cmd='fuck')
|
|
18
|
+
return @@sensor.get_res_by_key('action', name, cmd)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.get_on_off_status(name='fuckname', cmd='fuck')
|
|
22
|
+
return @@sensor.get_res_by_key('on_off_status', name, cmd)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/lib/evepi/module.rb
ADDED
data/lib/evepi/out_01.rb
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# test LCD out_01
|
|
2
|
+
=begin
|
|
3
|
+
out = LCD_Screen.new 'out_01'
|
|
4
|
+
out.clear
|
|
5
|
+
out.set_cursor 0, 1
|
|
6
|
+
out.write_after 'f'
|
|
7
|
+
out.set_cursor 1, 2
|
|
8
|
+
out.write_after 'u'
|
|
9
|
+
out.set_cursor 0, 3
|
|
10
|
+
out.write_after 'c'
|
|
11
|
+
out.set_cursor 1, 4
|
|
12
|
+
out.write_after 'k'
|
|
13
|
+
out.write_at 0, 6, 'zyw'
|
|
14
|
+
|
|
15
|
+
class SensorFactory
|
|
16
|
+
def self.createLCDScreen(sensor_name='out_01')
|
|
17
|
+
return LCD_Screen.new sensor_name
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
=end
|
|
22
|
+
require 'evepi'
|
|
23
|
+
require 'evepi/module'
|
|
24
|
+
require 'json'
|
|
25
|
+
|
|
26
|
+
module Evepi
|
|
27
|
+
class OUT_01
|
|
28
|
+
@@sensor = Sensor.new 'out_01'
|
|
29
|
+
def self._write(input_json, name='fuckname')
|
|
30
|
+
hostname = @@sensor.json_obj[name][0]
|
|
31
|
+
port = @@sensor.json_obj[name][1]
|
|
32
|
+
socket = TCPSocket.open(hostname, port)
|
|
33
|
+
socket.send input_json, 0
|
|
34
|
+
line = socket.recv(1024)
|
|
35
|
+
socket.close
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.write(type, x, y, content, name='fuckname')
|
|
39
|
+
input_dict = {
|
|
40
|
+
:cursor_whether => type,
|
|
41
|
+
:cursor_i => x,
|
|
42
|
+
:cursor_j => y,
|
|
43
|
+
:input_string => content
|
|
44
|
+
}
|
|
45
|
+
input_json = JSON.dump(input_dict)
|
|
46
|
+
return self._write(input_json, name)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
@@CURSOR_SET = 1
|
|
50
|
+
def self.set_cursor(x, y, name='fuckname')
|
|
51
|
+
input_dict = {
|
|
52
|
+
:cursor_whether => @@CURSOR_SET,
|
|
53
|
+
:cursor_i => x,
|
|
54
|
+
:cursor_j => y,
|
|
55
|
+
}
|
|
56
|
+
input_json = JSON.dump(input_dict)
|
|
57
|
+
return self._write(input_json, name)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.write_at(x, y, content, name='fuckname')
|
|
61
|
+
input_dict = {
|
|
62
|
+
:cursor_whether => @@CURSOR_SET,
|
|
63
|
+
:cursor_i => x,
|
|
64
|
+
:cursor_j => y,
|
|
65
|
+
:input_string => content
|
|
66
|
+
}
|
|
67
|
+
input_json = JSON.dump(input_dict)
|
|
68
|
+
return self._write(input_json, name)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
@@CURSOR_APPEND = 0
|
|
72
|
+
def self.write_after(content, name='fuckname')
|
|
73
|
+
input_dict = {
|
|
74
|
+
:cursor_whether => @@CURSOR_APPEND,
|
|
75
|
+
:input_string => content
|
|
76
|
+
}
|
|
77
|
+
input_json = JSON.dump(input_dict)
|
|
78
|
+
return self._write(input_json, name)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
@@CURSOR_CLEAR = 2
|
|
82
|
+
def self.clear(name='fuckname')
|
|
83
|
+
return self.write(@@CURSOR_CLEAR, 0, 0, nil, name)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
data/lib/evepi/snd_01.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'evepi'
|
|
2
|
+
require 'evepi/module'
|
|
3
|
+
|
|
4
|
+
module Evepi
|
|
5
|
+
class SND_01
|
|
6
|
+
@@sensor = SoundSensor.new 'snd_01'
|
|
7
|
+
def self.get_5ms_res(name='fuckname')
|
|
8
|
+
return @@sensor.get_raw_res(name, 'whether').to_i
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.get_1s_res(name='fuckname')
|
|
12
|
+
return 100.0 - @@sensor.get_raw_res(name, 'sum').to_f
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/evepi/tem_01.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'evepi'
|
|
2
|
+
require 'evepi/module'
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Evepi
|
|
6
|
+
class TEM_01
|
|
7
|
+
@@sensor = Sensor.new 'tem_01'
|
|
8
|
+
def self.get_res(name='fuckname')
|
|
9
|
+
json_raw = @@sensor.get_raw_res(name).gsub '\'', '"'
|
|
10
|
+
return JSON.parse(json_raw, :quirks_mode => true)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/evepi/tus_01.rb
ADDED
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 2
|
|
8
|
-
-
|
|
9
|
-
version: 0.2.
|
|
8
|
+
- 3
|
|
9
|
+
version: 0.2.3
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Zhang Yiwei
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date:
|
|
17
|
+
date: 2016-01-11 00:00:00 +08:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies: []
|
|
20
20
|
|
|
@@ -28,6 +28,16 @@ extra_rdoc_files: []
|
|
|
28
28
|
|
|
29
29
|
files:
|
|
30
30
|
- lib/evepi.rb
|
|
31
|
+
- lib/evepi/acc_01.rb
|
|
32
|
+
- lib/evepi/air_01.rb
|
|
33
|
+
- lib/evepi/inf_01.rb
|
|
34
|
+
- lib/evepi/inp_01.rb
|
|
35
|
+
- lib/evepi/module.rb
|
|
36
|
+
- lib/evepi/out_01.rb
|
|
37
|
+
- lib/evepi/snd_01.rb
|
|
38
|
+
- lib/evepi/tem_01.rb
|
|
39
|
+
- lib/evepi/tus_01.rb
|
|
40
|
+
- lib/evepi/ultrason.rb
|
|
31
41
|
has_rdoc: true
|
|
32
42
|
homepage: http://rubygems.org/gems/evepi
|
|
33
43
|
licenses:
|