agri-controller 0.0.0 → 0.0.8

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.
Files changed (182) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog.txt +36 -0
  3. data/LICENSE.txt +15 -0
  4. data/agri-controller.gemspec +36 -0
  5. data/gpl-2.0.txt +339 -0
  6. data/lib/agri-controller.rb +11 -33
  7. data/lib/agri-controller/bcc.rb +86 -53
  8. data/lib/agri-controller/bit.rb +158 -143
  9. data/lib/agri-controller/device.rb +7 -0
  10. data/lib/agri-controller/device/dacs.rb +148 -0
  11. data/lib/agri-controller/device/kr.rb +23 -0
  12. data/lib/agri-controller/device/ma.rb +92 -0
  13. data/lib/agri-controller/device/mch383.rb +178 -0
  14. data/lib/agri-controller/device/tr.rb +230 -0
  15. data/lib/agri-controller/device/wr1010.rb +314 -0
  16. data/lib/agri-controller/dt.rb +17 -0
  17. data/lib/agri-controller/error_caption.rb +67 -46
  18. data/lib/agri-controller/gruff.rb +7 -0
  19. data/lib/agri-controller/gruff/base.rb +88 -0
  20. data/lib/agri-controller/gruff/chdata.rb +64 -0
  21. data/lib/agri-controller/gruff/join_csv.rb +62 -0
  22. data/lib/agri-controller/gruff/rename_csv.rb +50 -0
  23. data/lib/agri-controller/{thermo_data_each_day.rb → gruff/thermo_data_each_day.rb} +67 -67
  24. data/lib/agri-controller/{thermo_gruff.rb → gruff/thermo_gruff.rb} +112 -109
  25. data/lib/agri-controller/gruff/thermo_gruff2.rb +161 -0
  26. data/lib/agri-controller/{thermo_gruff_generate.rb → gruff/thermo_gruff_generate.rb} +28 -28
  27. data/lib/agri-controller/gruff/thermo_gruff_loop.rb +42 -0
  28. data/lib/agri-controller/loger.rb +91 -51
  29. data/lib/agri-controller/main.rb +0 -0
  30. data/lib/agri-controller/main_linux.rb +282 -0
  31. data/lib/agri-controller/main_new.rb +401 -401
  32. data/lib/agri-controller/multiple_pulse_timer.rb +190 -169
  33. data/lib/agri-controller/n_dan_thermo.rb +156 -154
  34. data/lib/agri-controller/save_threads.rb +181 -172
  35. data/lib/agri-controller/setting_io.rb +53 -53
  36. data/lib/agri-controller/ttyUSB_watchdog.rb +43 -0
  37. data/lib/agri-controller/value_controller.rb +209 -167
  38. data/lib/agri-controller/version.rb +7 -5
  39. data/lib/agri-controller/web.rb +39 -39
  40. data/lib/agri-controller/webrick_test.rb +51 -46
  41. data/lib/agri-controller/wet_sensor.rb +92 -0
  42. data/test/tc_bit.rb +14 -3
  43. data/test/tc_trigger.rb +27 -0
  44. data/test/ts_agri-controller.rb +10 -10
  45. metadata +62 -202
  46. data/bin/main.bat +0 -2
  47. data/bin/main.bat /202/326/202/314/203V/203/207/201[/203g/203J/203b/203g.lnk +0 -0
  48. data/bin/main.rb +0 -23
  49. data/bin/memo.txt +0 -4
  50. data/bin/server.bat +0 -1
  51. data/bin/server.bat /202/326/202/314/203V/203/207/201[/203g/203J/203b/203g.lnk +0 -0
  52. data/bin/server.rb +0 -4
  53. data/bin/set_config.rb +0 -47
  54. data/bin/usual.rb +0 -3
  55. data/bin//203R/203}/203/223/203h /203v/203/215/203/223/203v/203g.lnk +0 -0
  56. data/lib/agri-controller/dacs.rb +0 -114
  57. data/lib/agri-controller/dircopy.rb +0 -30
  58. data/lib/agri-controller/kr.rb +0 -34
  59. data/lib/agri-controller/kr_2.rb +0 -78
  60. data/lib/agri-controller/serial.rb +0 -114
  61. data/lib/agri-controller/thermo_gruff_loop.rb +0 -35
  62. data/lib/agri-controller/wetsensor.rb +0 -119
  63. data/lib/agri-controller/wr1010.rb +0 -316
  64. data/lib/agri-controller/wr1010_2.rb +0 -0
  65. data/lib/cgi-bin/auto01.cgi +0 -0
  66. data/lib/cgi-bin/auto02.cgi +0 -0
  67. data/lib/cgi-bin/change_step.cgi +0 -42
  68. data/lib/cgi-bin/config/change_step +0 -4
  69. data/lib/cgi-bin/config/house1 +0 -20
  70. data/lib/cgi-bin/config/house2 +0 -8
  71. data/lib/cgi-bin/config/kr01_readable.txt +0 -2
  72. data/lib/cgi-bin/config/kr02_readable.txt +0 -2
  73. data/lib/cgi-bin/config/kr1_bit.txt +0 -2
  74. data/lib/cgi-bin/config/kr2_bit.txt +0 -2
  75. data/lib/cgi-bin/config/last_bit.txt +0 -1
  76. data/lib/cgi-bin/config/last_thermo_data +0 -22
  77. data/lib/cgi-bin/config/last_thermo_time +0 -2
  78. data/lib/cgi-bin/config/manual_bool01.txt +0 -2
  79. data/lib/cgi-bin/config/manual_bool02.txt +0 -2
  80. data/lib/cgi-bin/config/reload_flag +0 -2
  81. data/lib/cgi-bin/config/run_check +0 -2
  82. data/lib/cgi-bin/config/thermo_define.yml +0 -4
  83. data/lib/cgi-bin/config/time_array +0 -10
  84. data/lib/cgi-bin/config/wait_time +0 -2
  85. data/lib/cgi-bin/config/wet0 +0 -3
  86. data/lib/cgi-bin/config/wet0_drain +0 -2
  87. data/lib/cgi-bin/config/wet1 +0 -3
  88. data/lib/cgi-bin/config/wet1_drain +0 -2
  89. data/lib/cgi-bin/config/wet_input.txt +0 -1
  90. data/lib/cgi-bin/curtain_h1.cgi +0 -43
  91. data/lib/cgi-bin/curtain_h1_setting.cgi +0 -43
  92. data/lib/cgi-bin/curtain_h2.cgi +0 -43
  93. data/lib/cgi-bin/curtain_h2_setting.cgi +0 -43
  94. data/lib/cgi-bin/dacs_port.cgi +0 -43
  95. data/lib/cgi-bin/delay_time_0.cgi +0 -43
  96. data/lib/cgi-bin/delay_time_1.cgi +0 -43
  97. data/lib/cgi-bin/error_clear.cgi +0 -0
  98. data/lib/cgi-bin/house1.cgi +0 -42
  99. data/lib/cgi-bin/house1a.cgi +0 -43
  100. data/lib/cgi-bin/house2.cgi +0 -42
  101. data/lib/cgi-bin/house2b.cgi +0 -43
  102. data/lib/cgi-bin/house_n_dan_thermo1.cgi +0 -43
  103. data/lib/cgi-bin/house_n_dan_thermo2.cgi +0 -0
  104. data/lib/cgi-bin/keitai.cgi +0 -25
  105. data/lib/cgi-bin/kr01.cgi +0 -0
  106. data/lib/cgi-bin/kr01_readable.txt.cgi +0 -42
  107. data/lib/cgi-bin/kr02.cgi +0 -0
  108. data/lib/cgi-bin/kr02_readable.txt.cgi +0 -42
  109. data/lib/cgi-bin/kr1_bit.txt.cgi +0 -42
  110. data/lib/cgi-bin/kr2_bit.txt.cgi +0 -42
  111. data/lib/cgi-bin/kr_log.cgi +0 -18
  112. data/lib/cgi-bin/last_bit.txt.cgi +0 -42
  113. data/lib/cgi-bin/last_thermo_data.cgi +0 -42
  114. data/lib/cgi-bin/last_thermo_time.cgi +0 -42
  115. data/lib/cgi-bin/log.cgi +0 -19
  116. data/lib/cgi-bin/log/errors.txt +0 -1
  117. data/lib/cgi-bin/log/errors_.txt +0 -93
  118. data/lib/cgi-bin/log/kr_command_log.txt +0 -240
  119. data/lib/cgi-bin/log/log.txt +0 -441
  120. data/lib/cgi-bin/log/old_log/log_.txt +0 -15
  121. data/lib/cgi-bin/log/thermo/2010-05-22_thermo.csv +0 -1438
  122. data/lib/cgi-bin/log/thermo/2010-06-12_thermo.csv +0 -3
  123. data/lib/cgi-bin/log/thermo/2010-06-13_thermo.csv +0 -2
  124. data/lib/cgi-bin/log/thermo/2010-06-16_thermo.csv +0 -85
  125. data/lib/cgi-bin/log/thermo/2010-06-17_thermo.csv +0 -285
  126. data/lib/cgi-bin/log/thermo_data.csv +0 -643
  127. data/lib/cgi-bin/log/thermo_graph_loop.txt +0 -1
  128. data/lib/cgi-bin/main.cgi +0 -98
  129. data/lib/cgi-bin/manual_bool01.txt.cgi +0 -42
  130. data/lib/cgi-bin/manual_bool02.txt.cgi +0 -42
  131. data/lib/cgi-bin/post_change_step.cgi +0 -44
  132. data/lib/cgi-bin/post_house1.cgi +0 -44
  133. data/lib/cgi-bin/post_house2.cgi +0 -44
  134. data/lib/cgi-bin/post_kr01.cgi +0 -0
  135. data/lib/cgi-bin/post_kr01_readable.txt.cgi +0 -44
  136. data/lib/cgi-bin/post_kr02.cgi +0 -0
  137. data/lib/cgi-bin/post_kr02_readable.txt.cgi +0 -44
  138. data/lib/cgi-bin/post_kr1_bit.txt.cgi +0 -44
  139. data/lib/cgi-bin/post_kr2_bit.txt.cgi +0 -44
  140. data/lib/cgi-bin/post_last_bit.txt.cgi +0 -44
  141. data/lib/cgi-bin/post_last_thermo_data.cgi +0 -44
  142. data/lib/cgi-bin/post_last_thermo_time.cgi +0 -44
  143. data/lib/cgi-bin/post_manual_bool01.txt.cgi +0 -44
  144. data/lib/cgi-bin/post_manual_bool02.txt.cgi +0 -44
  145. data/lib/cgi-bin/post_reload_flag.cgi +0 -44
  146. data/lib/cgi-bin/post_run_check.cgi +0 -44
  147. data/lib/cgi-bin/post_thermo_define.yml.cgi +0 -44
  148. data/lib/cgi-bin/post_time_array.cgi +0 -44
  149. data/lib/cgi-bin/post_wait_time.cgi +0 -44
  150. data/lib/cgi-bin/post_wet0.cgi +0 -44
  151. data/lib/cgi-bin/post_wet0_drain.cgi +0 -44
  152. data/lib/cgi-bin/post_wet1.cgi +0 -44
  153. data/lib/cgi-bin/post_wet1_drain.cgi +0 -44
  154. data/lib/cgi-bin/post_wet_input.txt.cgi +0 -44
  155. data/lib/cgi-bin/reload_flag.cgi +0 -42
  156. data/lib/cgi-bin/reset_.cgi +0 -0
  157. data/lib/cgi-bin/run_check.cgi +0 -42
  158. data/lib/cgi-bin/set.cgi +0 -33
  159. data/lib/cgi-bin/set_post_yml_each.rb +0 -72
  160. data/lib/cgi-bin/set_yml_cgi_each.rb +0 -0
  161. data/lib/cgi-bin/setting.cgi +0 -0
  162. data/lib/cgi-bin/setting.cgi.1 +0 -0
  163. data/lib/cgi-bin/setting_io.rb +0 -53
  164. data/lib/cgi-bin/thermo_data_graphs.cgi +0 -0
  165. data/lib/cgi-bin/thermo_data_list.cgi +0 -0
  166. data/lib/cgi-bin/thermo_define.yml.cgi +0 -42
  167. data/lib/cgi-bin/thermo_graph.cgi +0 -0
  168. data/lib/cgi-bin/time_array.cgi +0 -42
  169. data/lib/cgi-bin/wait_time.cgi +0 -42
  170. data/lib/cgi-bin/web.rb +0 -39
  171. data/lib/cgi-bin/wet0.cgi +0 -42
  172. data/lib/cgi-bin/wet0_drain.cgi +0 -42
  173. data/lib/cgi-bin/wet1.cgi +0 -42
  174. data/lib/cgi-bin/wet1_drain.cgi +0 -42
  175. data/lib/cgi-bin/wet_input.txt.cgi +0 -42
  176. data/lib/htdocs/css/str.css +0 -89
  177. data/lib/htdocs/favicon.ico +0 -0
  178. data/lib/htdocs/thermo/thermo_data.jpg +0 -0
  179. data/lib/htdocs/thermo/thumb/thermo_data.jpg +0 -0
  180. data/test/tc_bit.rb.1 +0 -15
  181. data/test/tc_bit.rb.2 +0 -21
  182. data/test/ts_agri-controller.rb.1 +0 -8
@@ -0,0 +1,43 @@
1
+ module AgriController
2
+ module_function
3
+ ##
4
+ #++ watching ttyUSB* allow
5
+ #
6
+ # AgriController::ttyUSB_watchdog() # =>`chmod 777 /dev/ttyUSB*`
7
+ def ttyUSB_watchdog
8
+ ##
9
+ #watching ttyUSB* allow
10
+ str=`ls -l /dev/ttyUSB*`
11
+ print str if $DEBUG
12
+
13
+ flag=false
14
+ str.each_line do |line|
15
+ if line.include?("crwxrwxrwx")
16
+ #OK. Nothing to do
17
+ else
18
+ #puts line
19
+ #puts "ttyUSB ERROR"
20
+ flag=true
21
+ end
22
+ end
23
+
24
+ #/dev/ttyUSB* allow again
25
+ `sudo chmod 777 /dev/ttyUSB*` if flag
26
+ end
27
+ #++ ttyUSB_watchdog_loop(sec=30)
28
+ # run each 30 seconds(default)
29
+ # AgriController::ttyUSB_watchdog
30
+ def ttyUSB_watchdog_loop(sec=30)
31
+ loop do
32
+ print "." if $DEBUG
33
+ ttyUSB_watchdog
34
+ sleep sec
35
+ end
36
+ end
37
+ end
38
+
39
+ if $0==__FILE__
40
+ include AgriController
41
+ ttyUSB_watchdog_loop(30)
42
+ end
43
+
@@ -1,167 +1,209 @@
1
- #!ruby
2
- #coding:utf-8
3
-
4
- module AgriController
5
- class Value_controller
6
- attr_accessor:steps,:now_step,:up_sec,:down_sec,:acting
7
- attr_accessor:set_value,:controll_bool,:reset_time
8
-
9
- def initialize(steps=5,up_sec=60,down_sec=open_sec,sensitivity=1,set_value=20,dead_time=2,verbose=false)
10
- @bit=0
11
-
12
- @steps =steps #多段制御>=1
13
- @up_sec=up_sec
14
- @down_sec=down_sec #閉時動作時間(秒)
15
- @sensitivity =sensitivity #感度
16
- @set_value =set_value #設定値
17
- @dead_time =dead_time #不感時間
18
- @dead_bool =false
19
- @now_step=@steps #現在の段(2010.5.23変更)
20
-
21
- @controll_bool=false #割り込みswitch(0n,0ff)
22
- @time=Time.now
23
- @acting=false
24
- @bool=false #true(on) false(off)方向
25
- @verbose=verbose
26
- @reset_time=Time.now+@up_sec*@steps+3
27
- p "Value_controller initialized at #{@reset_time}" if @verbose
28
- end
29
-
30
- def switch
31
- if @now_step==0 or @now_step==@steps
32
- return true
33
- else
34
- return @controll_bool
35
- end
36
- end
37
-
38
- def switch_on
39
- @controll_bool = true
40
- end
41
-
42
- def switch_off
43
- @controll_bool = false
44
- end
45
-
46
- def value_controll(now_value)
47
- if Time.now < @reset_time
48
- return true
49
- #return false #common open when initialize
50
- end
51
- if @acting==false
52
- #now_value:nil or tempareture
53
- if now_value != nil
54
- high=(now_value <=> @set_value+@sensitivity*(@now_step+1))
55
- low =(now_value <=> (@set_value+@sensitivity*(@now_step))-2)
56
- else
57
- high=1#温度を下げる方向へセット
58
- low=0 #そのまま
59
- p Time.now.inspect+" :"+now_value.inspect
60
- raise "value_controller.rb:68 error!!"
61
- end
62
-
63
- #もし動作中なら、そのときの温度に関係なく動作続行(下記の判定は読みとばす)
64
- #動作してなくて、且つステップの範囲内でstep_up , step_downさせる
65
- if @dead_bool==false
66
- if high==1 && @now_step<@steps
67
- #且つ、スイッチがオフ
68
- if @controll_bool == false
69
- #時間
70
- @time=Time.now
71
- switch_on#スイッチオン
72
- @bool=true#return true
73
- #タイマー時間設定
74
- step_up
75
- end
76
- elsif low==-1 && @now_step>0
77
- #且つ、スイッチがオフ
78
- if @controll_bool == false
79
- #時間
80
- @time=Time.now
81
- switch_on#スイッチオン
82
- @bool=false#return true
83
- #タイマー時間設定
84
- step_down
85
- end
86
- elsif high==1 && @now_step==@steps
87
- @bool=true
88
- elsif low==-1 && @now_step==0
89
- @bool=false
90
- else
91
- #
92
- end
93
- end
94
- end
95
-
96
- ##
97
- #時刻設定
98
- #スイッチがオン
99
- #時間までタイマーオン
100
- #時間になったらスイッチオフ
101
- #デッドタイム処理
102
- #スイッチオフ
103
- #value_controllもnil
104
- if @bool==true
105
- x=pulse_timer([@time,@up_sec])
106
- y=pulse_timer([@time,@up_sec+@dead_time])
107
- else #@bool==false
108
- x=pulse_timer([@time,@down_sec])
109
- y=pulse_timer([@time,@down_sec+@dead_time])
110
- end
111
- if y==true
112
- @acting=true
113
- else
114
- @acting=false
115
- end
116
-
117
- if x==true
118
- elsif x==false && y==true
119
- switch_off
120
- @dead_bool = true
121
- else
122
- @dead_bool = false
123
- end
124
- return @bool
125
- end
126
-
127
- def step_up
128
- @now_step+=1 if @now_step < @steps
129
- return @now_step
130
- end
131
-
132
- def step_down
133
- @now_step=now_step-1 if @now_step > 0
134
- return @now_step
135
- end
136
- end
137
- end
138
-
139
- if $0==__FILE__
140
- require "multiple_pulse_timer"
141
- require "setting_io"
142
- include AgriController
143
- p a=Value_controller.new(
144
- name="house1a.yml",
145
- steps=5,
146
- open_sec=4,
147
- down_sec=3,
148
- sensitivity=2,
149
- set_value=5,
150
- dead_time=1.5)
151
- require "setting_io"
152
- require "n_dan_thermo"
153
- house1=N_dan_thermo.new(Setting_io::yaml_load("house_n_dan_thermo1.yml"),diff=4,300)
154
- p house1.set_now
155
- p a.set_value
156
- p a.value_controll(house1.set_now)
157
- p a.switch
158
-
159
- 60.times do |x|
160
- sleep 1
161
- p a if x%10==0
162
- if x>30
163
- a.set_value=25
164
- end
165
- p a.value_controll(house1.set_now).to_s+","+a.switch.to_s+","+a.now_step.to_s
166
- end
167
- end
1
+ #!ruby
2
+ #coding:utf-8
3
+
4
+ module AgriController
5
+ class Value_controller
6
+ attr_accessor:steps,:now_step,:up_sec,:down_sec,:acting
7
+ attr_accessor:set_value,:controll_bool,:reset_time,:emergency
8
+
9
+ def initialize(steps=5,up_sec=60,down_sec=open_sec,sensitivity=1,set_value=20,dead_time=2,verbose=false)
10
+ @bit=0
11
+
12
+ @steps =steps #多段制御>=1
13
+ @up_sec=up_sec
14
+ @down_sec=down_sec #閉時動作時間(秒)
15
+ @sensitivity =sensitivity #感度
16
+ @set_value =set_value #設定値
17
+ @dead_time =dead_time #不感時間
18
+ @dead_bool =false
19
+ @now_step=@steps #現在の段(2010.5.23変更)
20
+
21
+ @controll_bool=false #割り込みswitch(0n,0ff)
22
+ @time=Time.now
23
+ @acting=false
24
+ @bool=false #true(on) false(off)方向
25
+ @verbose=verbose
26
+ @reset_time=Time.now+@up_sec*@steps+3
27
+ @emergency=false
28
+ p "Value_controller initialized at #{@reset_time}" if @verbose
29
+ end
30
+
31
+ def switch
32
+ if @now_step==0 or @now_step==@steps or @emergency==true
33
+ return true
34
+ else
35
+ return @controll_bool
36
+ end
37
+ end
38
+
39
+ def switch_on
40
+ @controll_bool = true
41
+ end
42
+
43
+ def switch_off
44
+ @controll_bool = false
45
+ end
46
+
47
+ def before_value_controll(now_value)
48
+ if now_value > @set_value+@sensitivity*@steps+1
49
+ #too high
50
+ p "too high!" if $DEBUG
51
+
52
+ @emergency=true
53
+ return true
54
+
55
+ elsif now_value < @set_value-1
56
+ #too low
57
+ p "too low!" if $DEBUG
58
+
59
+ @emergency=true
60
+ return false
61
+
62
+ elsif Time.now < @reset_time
63
+ return true#open first signal(close:false)
64
+
65
+ else#normaly
66
+ @emergency=false
67
+ return @bool
68
+ end
69
+ end
70
+
71
+ def value_controll(now_value)
72
+ if @acting==false
73
+ #now_value:nil or tempareture
74
+ if now_value != nil
75
+ high=(now_value <=> @set_value+@sensitivity*(@now_step+1))
76
+ low =(now_value <=> (@set_value+@sensitivity*(@now_step))-2)
77
+ else
78
+ high=1#温度を下げる方向へセット
79
+ low=0 #そのまま
80
+ p Time.now.inspect+" :"+now_value.inspect
81
+ raise "value_controller.rb:60 error!!"
82
+ end
83
+
84
+ #もし動作中なら、そのときの温度に関係なく動作続行(下記の判定は読みとばす)
85
+ #動作してなくて、且つステップの範囲内でstep_up , step_downさせる
86
+ if @dead_bool==false
87
+ if high==1 && @now_step<@steps
88
+ #且つ、スイッチがオフ
89
+ if @controll_bool == false
90
+ #時間
91
+ @time=Time.now
92
+ switch_on#スイッチオン
93
+ @bool=true#return true
94
+ #タイマー時間設定
95
+ step_up
96
+ end
97
+ elsif low==-1 && @now_step>0
98
+ #且つ、スイッチがオフ
99
+ if @controll_bool == false
100
+ #時間
101
+ @time=Time.now
102
+ switch_on#スイッチオン
103
+ @bool=false#return true
104
+ #タイマー時間設定
105
+ step_down
106
+ end
107
+ elsif high==1 && @now_step==@steps
108
+ @bool=true
109
+ elsif low==-1 && @now_step==0
110
+ @bool=false
111
+ else
112
+ #
113
+ end
114
+ end
115
+ end
116
+
117
+ ##
118
+ #時刻設定
119
+ #スイッチがオン
120
+ #時間までタイマーオン
121
+ #時間になったらスイッチオフ
122
+ #デッドタイム処理
123
+ #スイッチオフ
124
+ #value_controllもnil
125
+ if @bool==true
126
+ x=pulse_timer([@time,@up_sec])
127
+ y=pulse_timer([@time,@up_sec+@dead_time])
128
+ else #@bool==false
129
+ x=pulse_timer([@time,@down_sec])
130
+ y=pulse_timer([@time,@down_sec+@dead_time])
131
+ end
132
+ if y==true
133
+ @acting=true
134
+ else
135
+ @acting=false
136
+ end
137
+
138
+ if x==true
139
+ elsif x==false && y==true
140
+ switch_off
141
+ @dead_bool = true
142
+ else
143
+ @dead_bool = false
144
+ end
145
+ before_value_controll(now_value)#return
146
+
147
+ =begin
148
+ if now_value > @set_value+@sensitivity*@steps+1
149
+ #too high
150
+ p "too high!" if $DEBUG
151
+ @emergency=true
152
+ return true
153
+ elsif now_value < @set_value-1
154
+ p "too low!" if $DEBUG
155
+ #too low
156
+ @emergency=true
157
+ return false
158
+ else#normaly
159
+ @emergency=false
160
+ return @bool
161
+ end
162
+ =end
163
+ end
164
+
165
+ def step_up
166
+ @now_step+=1 if @now_step < @steps
167
+ return @now_step
168
+ end
169
+
170
+ def step_down
171
+ @now_step=now_step-1 if @now_step > 0
172
+ return @now_step
173
+ end
174
+ end
175
+ end
176
+
177
+ if $0==__FILE__
178
+ require "multiple_pulse_timer"
179
+ require "setting_io"
180
+ require "n_dan_thermo"
181
+ include AgriController
182
+ p a=Value_controller.new(
183
+ steps=2,
184
+ open_sec=1,
185
+ down_sec=1,
186
+ sensitivity=1,
187
+ set_value=2,
188
+ dead_time=1)
189
+ require "setting_io"
190
+ require "n_dan_thermo"
191
+ house1=N_dan_thermo.new([["17:00",2]],diff=4,5)
192
+ p house1.set_now
193
+ p a.set_value
194
+ p a.value_controll(house1.set_now)
195
+ p a.switch
196
+
197
+ 30.times do |x|
198
+ sleep 0.3
199
+
200
+ a.set_value=house1.set_now
201
+ p a if x%5==0
202
+ if x>10
203
+ a.set_value=22
204
+ end
205
+ p a.value_controll(x).to_s+","+a.switch.to_s+","+
206
+ a.now_step.to_s+",set:"+a.set_value.to_s+","+
207
+ x.to_s+",e:"+a.emergency.to_s
208
+ end
209
+ end
@@ -1,5 +1,7 @@
1
- #!ruby
2
- #coding:utf-8
3
- module AgriController
4
- VERSION = "0.0.0"
5
- end
1
+ #!ruby
2
+ #coding:utf-8
3
+ module AgriController
4
+ module_function
5
+ VERSION = "0.0.8"
6
+ MINOR_VERSION="p0"
7
+ end
@@ -1,39 +1,39 @@
1
- #!ruby
2
- #coding:utf-8
3
- module AgriController
4
- module Web
5
- module_function
6
- def html_head(title="kansi_htm",tuika='')
7
- head=<<EOS
8
- <html>
9
- <head>
10
- <meta http-equiv="Content-Language" content="ja" />
11
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
12
- #{tuika}
13
- <link rel="stylesheet" type="text/css" href="../css/str.css" title="str"/>
14
- <title>#{title}</title>
15
- </head>
16
- <body>
17
- EOS
18
- end
19
-
20
- def html_end
21
- _end='
22
- </body>
23
- </html>'
24
- return _end
25
- end
26
-
27
- def html_head_refresh(title,time)
28
- #time:should be able to convert Integer
29
- str= <<eos
30
- <META HTTP-EQUIV="Refresh" CONTENT="#{time.to_s};URL=./main.cgi">
31
- eos
32
- html_head(title,str)
33
- end
34
- end
35
- end
36
-
37
- if $0==__FILE__
38
- print Web::html_end
39
- end
1
+ #!ruby
2
+ #coding:utf-8
3
+ module AgriController
4
+ module Web
5
+ module_function
6
+ def html_head(title="kansi_htm",tuika='')
7
+ head=<<EOS
8
+ <html>
9
+ <head>
10
+ <meta http-equiv="Content-Language" content="ja" />
11
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
12
+ #{tuika}
13
+ <link rel="stylesheet" type="text/css" href="../css/str.css" title="str"/>
14
+ <title>#{title}</title>
15
+ </head>
16
+ <body>
17
+ EOS
18
+ end
19
+
20
+ def html_end
21
+ _end='
22
+ </body>
23
+ </html>'
24
+ return _end
25
+ end
26
+
27
+ def html_head_refresh(title,time)
28
+ #time:should be able to convert Integer
29
+ str= <<eos
30
+ <META HTTP-EQUIV="Refresh" CONTENT="#{time.to_s};URL=./main.cgi">
31
+ eos
32
+ html_head(title,str)
33
+ end
34
+ end
35
+ end
36
+
37
+ if $0==__FILE__
38
+ print Web::html_end
39
+ end