agri-controller 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/bin/main.bat +2 -0
  2. data/bin/main.bat /202/326/202/314/203V/203/207/201[/203g/203J/203b/203g.lnk +0 -0
  3. data/bin/main.rb +23 -0
  4. data/bin/memo.txt +4 -0
  5. data/bin/server.bat +1 -0
  6. data/bin/server.bat /202/326/202/314/203V/203/207/201[/203g/203J/203b/203g.lnk +0 -0
  7. data/bin/server.rb +4 -0
  8. data/bin/set_config.rb +47 -0
  9. data/bin/usual.rb +3 -0
  10. data/bin//203R/203}/203/223/203h /203v/203/215/203/223/203v/203g.lnk +0 -0
  11. data/lib/agri-controller.rb +33 -0
  12. data/lib/agri-controller/bcc.rb +53 -0
  13. data/lib/agri-controller/bit.rb +143 -0
  14. data/lib/agri-controller/dacs.rb +114 -0
  15. data/lib/agri-controller/dircopy.rb +30 -0
  16. data/lib/agri-controller/error_caption.rb +46 -0
  17. data/lib/agri-controller/kr.rb +34 -0
  18. data/lib/agri-controller/kr_2.rb +78 -0
  19. data/lib/agri-controller/loger.rb +51 -0
  20. data/lib/agri-controller/main.rb +0 -0
  21. data/lib/agri-controller/main_new.rb +401 -0
  22. data/lib/agri-controller/multiple_pulse_timer.rb +169 -0
  23. data/lib/agri-controller/n_dan_thermo.rb +154 -0
  24. data/lib/agri-controller/save_threads.rb +172 -0
  25. data/lib/agri-controller/serial.rb +114 -0
  26. data/lib/agri-controller/setting_io.rb +53 -0
  27. data/lib/agri-controller/thermo_data_each_day.rb +67 -0
  28. data/lib/agri-controller/thermo_gruff.rb +109 -0
  29. data/lib/agri-controller/thermo_gruff_generate.rb +28 -0
  30. data/lib/agri-controller/thermo_gruff_loop.rb +35 -0
  31. data/lib/agri-controller/value_controller.rb +167 -0
  32. data/lib/agri-controller/version.rb +5 -0
  33. data/lib/agri-controller/web.rb +39 -0
  34. data/lib/agri-controller/webrick_test.rb +46 -0
  35. data/lib/agri-controller/wetsensor.rb +119 -0
  36. data/lib/agri-controller/wr1010.rb +316 -0
  37. data/lib/agri-controller/wr1010_2.rb +0 -0
  38. data/lib/cgi-bin/auto01.cgi +0 -0
  39. data/lib/cgi-bin/auto02.cgi +0 -0
  40. data/lib/cgi-bin/change_step.cgi +42 -0
  41. data/lib/cgi-bin/config/change_step +4 -0
  42. data/lib/cgi-bin/config/house1 +20 -0
  43. data/lib/cgi-bin/config/house2 +8 -0
  44. data/lib/cgi-bin/config/kr01_readable.txt +2 -0
  45. data/lib/cgi-bin/config/kr02_readable.txt +2 -0
  46. data/lib/cgi-bin/config/kr1_bit.txt +2 -0
  47. data/lib/cgi-bin/config/kr2_bit.txt +2 -0
  48. data/lib/cgi-bin/config/last_bit.txt +1 -0
  49. data/lib/cgi-bin/config/last_thermo_data +22 -0
  50. data/lib/cgi-bin/config/last_thermo_time +2 -0
  51. data/lib/cgi-bin/config/manual_bool01.txt +2 -0
  52. data/lib/cgi-bin/config/manual_bool02.txt +2 -0
  53. data/lib/cgi-bin/config/reload_flag +2 -0
  54. data/lib/cgi-bin/config/run_check +2 -0
  55. data/lib/cgi-bin/config/thermo_define.yml +4 -0
  56. data/lib/cgi-bin/config/time_array +10 -0
  57. data/lib/cgi-bin/config/wait_time +2 -0
  58. data/lib/cgi-bin/config/wet0 +3 -0
  59. data/lib/cgi-bin/config/wet0_drain +2 -0
  60. data/lib/cgi-bin/config/wet1 +3 -0
  61. data/lib/cgi-bin/config/wet1_drain +2 -0
  62. data/lib/cgi-bin/config/wet_input.txt +1 -0
  63. data/lib/cgi-bin/curtain_h1.cgi +43 -0
  64. data/lib/cgi-bin/curtain_h1_setting.cgi +43 -0
  65. data/lib/cgi-bin/curtain_h2.cgi +43 -0
  66. data/lib/cgi-bin/curtain_h2_setting.cgi +43 -0
  67. data/lib/cgi-bin/dacs_port.cgi +43 -0
  68. data/lib/cgi-bin/delay_time_0.cgi +43 -0
  69. data/lib/cgi-bin/delay_time_1.cgi +43 -0
  70. data/lib/cgi-bin/error_clear.cgi +0 -0
  71. data/lib/cgi-bin/house1.cgi +42 -0
  72. data/lib/cgi-bin/house1a.cgi +43 -0
  73. data/lib/cgi-bin/house2.cgi +42 -0
  74. data/lib/cgi-bin/house2b.cgi +43 -0
  75. data/lib/cgi-bin/house_n_dan_thermo1.cgi +43 -0
  76. data/lib/cgi-bin/house_n_dan_thermo2.cgi +0 -0
  77. data/lib/cgi-bin/keitai.cgi +25 -0
  78. data/lib/cgi-bin/kr01.cgi +0 -0
  79. data/lib/cgi-bin/kr01_readable.txt.cgi +42 -0
  80. data/lib/cgi-bin/kr02.cgi +0 -0
  81. data/lib/cgi-bin/kr02_readable.txt.cgi +42 -0
  82. data/lib/cgi-bin/kr1_bit.txt.cgi +42 -0
  83. data/lib/cgi-bin/kr2_bit.txt.cgi +42 -0
  84. data/lib/cgi-bin/kr_log.cgi +18 -0
  85. data/lib/cgi-bin/last_bit.txt.cgi +42 -0
  86. data/lib/cgi-bin/last_thermo_data.cgi +42 -0
  87. data/lib/cgi-bin/last_thermo_time.cgi +42 -0
  88. data/lib/cgi-bin/log.cgi +19 -0
  89. data/lib/cgi-bin/log/errors.txt +1 -0
  90. data/lib/cgi-bin/log/errors_.txt +93 -0
  91. data/lib/cgi-bin/log/kr_command_log.txt +240 -0
  92. data/lib/cgi-bin/log/log.txt +441 -0
  93. data/lib/cgi-bin/log/old_log/log_.txt +15 -0
  94. data/lib/cgi-bin/log/thermo/2010-05-22_thermo.csv +1438 -0
  95. data/lib/cgi-bin/log/thermo/2010-06-12_thermo.csv +3 -0
  96. data/lib/cgi-bin/log/thermo/2010-06-13_thermo.csv +2 -0
  97. data/lib/cgi-bin/log/thermo/2010-06-16_thermo.csv +85 -0
  98. data/lib/cgi-bin/log/thermo/2010-06-17_thermo.csv +285 -0
  99. data/lib/cgi-bin/log/thermo_data.csv +643 -0
  100. data/lib/cgi-bin/log/thermo_graph_loop.txt +1 -0
  101. data/lib/cgi-bin/main.cgi +98 -0
  102. data/lib/cgi-bin/manual_bool01.txt.cgi +42 -0
  103. data/lib/cgi-bin/manual_bool02.txt.cgi +42 -0
  104. data/lib/cgi-bin/post_change_step.cgi +44 -0
  105. data/lib/cgi-bin/post_house1.cgi +44 -0
  106. data/lib/cgi-bin/post_house2.cgi +44 -0
  107. data/lib/cgi-bin/post_kr01.cgi +0 -0
  108. data/lib/cgi-bin/post_kr01_readable.txt.cgi +44 -0
  109. data/lib/cgi-bin/post_kr02.cgi +0 -0
  110. data/lib/cgi-bin/post_kr02_readable.txt.cgi +44 -0
  111. data/lib/cgi-bin/post_kr1_bit.txt.cgi +44 -0
  112. data/lib/cgi-bin/post_kr2_bit.txt.cgi +44 -0
  113. data/lib/cgi-bin/post_last_bit.txt.cgi +44 -0
  114. data/lib/cgi-bin/post_last_thermo_data.cgi +44 -0
  115. data/lib/cgi-bin/post_last_thermo_time.cgi +44 -0
  116. data/lib/cgi-bin/post_manual_bool01.txt.cgi +44 -0
  117. data/lib/cgi-bin/post_manual_bool02.txt.cgi +44 -0
  118. data/lib/cgi-bin/post_reload_flag.cgi +44 -0
  119. data/lib/cgi-bin/post_run_check.cgi +44 -0
  120. data/lib/cgi-bin/post_thermo_define.yml.cgi +44 -0
  121. data/lib/cgi-bin/post_time_array.cgi +44 -0
  122. data/lib/cgi-bin/post_wait_time.cgi +44 -0
  123. data/lib/cgi-bin/post_wet0.cgi +44 -0
  124. data/lib/cgi-bin/post_wet0_drain.cgi +44 -0
  125. data/lib/cgi-bin/post_wet1.cgi +44 -0
  126. data/lib/cgi-bin/post_wet1_drain.cgi +44 -0
  127. data/lib/cgi-bin/post_wet_input.txt.cgi +44 -0
  128. data/lib/cgi-bin/reload_flag.cgi +42 -0
  129. data/lib/cgi-bin/reset_.cgi +0 -0
  130. data/lib/cgi-bin/run_check.cgi +42 -0
  131. data/lib/cgi-bin/set.cgi +33 -0
  132. data/lib/cgi-bin/set_post_yml_each.rb +72 -0
  133. data/lib/cgi-bin/set_yml_cgi_each.rb +0 -0
  134. data/lib/cgi-bin/setting.cgi +0 -0
  135. data/lib/cgi-bin/setting.cgi.1 +0 -0
  136. data/lib/cgi-bin/setting_io.rb +53 -0
  137. data/lib/cgi-bin/thermo_data_graphs.cgi +0 -0
  138. data/lib/cgi-bin/thermo_data_list.cgi +0 -0
  139. data/lib/cgi-bin/thermo_define.yml.cgi +42 -0
  140. data/lib/cgi-bin/thermo_graph.cgi +0 -0
  141. data/lib/cgi-bin/time_array.cgi +42 -0
  142. data/lib/cgi-bin/wait_time.cgi +42 -0
  143. data/lib/cgi-bin/web.rb +39 -0
  144. data/lib/cgi-bin/wet0.cgi +42 -0
  145. data/lib/cgi-bin/wet0_drain.cgi +42 -0
  146. data/lib/cgi-bin/wet1.cgi +42 -0
  147. data/lib/cgi-bin/wet1_drain.cgi +42 -0
  148. data/lib/cgi-bin/wet_input.txt.cgi +42 -0
  149. data/lib/htdocs/css/str.css +89 -0
  150. data/lib/htdocs/favicon.ico +0 -0
  151. data/lib/htdocs/thermo/thermo_data.jpg +0 -0
  152. data/lib/htdocs/thermo/thumb/thermo_data.jpg +0 -0
  153. data/test/tc_bit.rb +15 -0
  154. data/test/tc_bit.rb.1 +15 -0
  155. data/test/tc_bit.rb.2 +21 -0
  156. data/test/ts_agri-controller.rb +10 -0
  157. data/test/ts_agri-controller.rb.1 +8 -0
  158. metadata +229 -0
data/bin/main.bat ADDED
@@ -0,0 +1,2 @@
1
+ ruby main.rb
2
+ pause
data/bin/main.rb ADDED
@@ -0,0 +1,23 @@
1
+
2
+ #$:.unshift("../lib") if $0==__FILE__
3
+ require "rubygems"
4
+ require "agri-controller"
5
+ include AgriController
6
+
7
+ Thread.abort_on_exception=true
8
+
9
+ #Save program-ID
10
+ p pid=Process.pid
11
+ open("main_pid","w"){|io| io.print pid.to_s}
12
+
13
+ #Set TRAP
14
+ trap(:KILL){Process.kill(:QUIT, Process.pid)}
15
+
16
+ #config setting
17
+ dircopy
18
+
19
+ #Run
20
+ a=Thread.start{thermo_gruff_loop}
21
+ #main loop
22
+ kr_run
23
+ a.join
data/bin/memo.txt ADDED
@@ -0,0 +1,4 @@
1
+ memo
2
+ cgi-bin�̕Ґ�����������
3
+ �@�@log
4
+ �@�@�@old_log
data/bin/server.bat ADDED
@@ -0,0 +1 @@
1
+ ruby server.rb
data/bin/server.rb ADDED
@@ -0,0 +1,4 @@
1
+ require "rubygems"
2
+ require "agri-controller"
3
+ include AgriController
4
+ webrick_start(root=Dir.pwd)
data/bin/set_config.rb ADDED
@@ -0,0 +1,47 @@
1
+ #x="./cgi-bin/log/"
2
+ #p File.exist?(x)
3
+ require "rubygems"
4
+ require "agri-controller"
5
+ include AgriController
6
+ #require "pp"
7
+ list=Dir.glob("cgi-bin/config/*").sort
8
+ #if $ARGV ==nil
9
+ catch(:exit) do
10
+ loop do
11
+ x=0
12
+ hash={}
13
+
14
+ list.each do |file|
15
+ #print x.to_s," : ",File.read(file),"\n"
16
+ if File.file?(file)
17
+ base=File.basename(file)
18
+ y=yaml_dbr(base,file)
19
+ print x.to_s,":",base,": ",y.inspect,"\n"
20
+ #config object to Hash
21
+ hash[x.to_s]=[file,y]
22
+ x+=1
23
+ end
24
+ end
25
+
26
+ print "<0-#{x-1}>input_number:"
27
+ a=gets().chomp.upcase
28
+ if hash.has_key?(a)
29
+ y2=hash[a]
30
+ print y2[0].inspect," # => ",y2[1].inspect,"\nnew_data:"
31
+ x=gets.chomp
32
+ if x!=""
33
+ begin
34
+ p yaml_db(File.basename(y2[0]),eval(x),y2[0])
35
+ rescue
36
+ p yaml_dbr(File.basename(y2[0]),y2[0])
37
+ end
38
+ sleep 0.3
39
+ end
40
+ elsif a.include?("E") or a.include?("Q") or a.include?("B")
41
+ throw :exit
42
+ else
43
+ end
44
+ a="",x=""
45
+ end
46
+ end
47
+ print "bye!\n"
data/bin/usual.rb ADDED
@@ -0,0 +1,3 @@
1
+ require "rubygems"
2
+ require "agri-controller"
3
+ include AgriController
@@ -0,0 +1,33 @@
1
+ #!ruby
2
+ #coding:utf-8
3
+ $KCODE="s" if RUBY_VERSION < "1.9.0"
4
+
5
+ #File.expand_path(File.dirname(__FILE__))
6
+ Dir.glob(File.dirname(__FILE__)+"/agri-controller/*.rb").each do |file|
7
+ #p file
8
+ require file
9
+ end
10
+
11
+ module AgriController
12
+ module_function
13
+ end
14
+
15
+ if $0==__FILE__
16
+ include AgriController
17
+
18
+ p WR1010_2::list(6,3)
19
+ p KR::export("%01#RCCX00000000**\r",5)# Dir_log="./log"
20
+ # Dir_config="./config"
21
+ # Dir_thermo_data="./thermo_data"
22
+ # Dir_cgi="../cgi-bin"
23
+ # Dir_gruff="../htdocs/thermo"
24
+ # Dir_gruff_small="../htdocs/thermo/thumb"
25
+
26
+ #t1=Thread.start{thermo_gruff_loop}
27
+ #t2=Thread.start{webrick_start(root=Dir.pwd)}
28
+
29
+ #main_new
30
+
31
+ #t1.join
32
+ #t2.join
33
+ end
@@ -0,0 +1,53 @@
1
+ module AgriController
2
+ module Bcc
3
+ module_function
4
+ def _xor(x,y)
5
+ x1=Bit.new(x.ord)
6
+ y1=Bit.new(y.ord)
7
+ #p x1.tos(8,2)
8
+ #p y1.tos(8,2)
9
+ (0..7).each do |i|
10
+ x1.boolbit(!(((x1.on?(i) && y1.on?(i))or x1.off?(i) && y1.off?(i))),i)
11
+ end
12
+ #p ret=x1.tos(8,2)
13
+
14
+ x1.bit
15
+
16
+ end
17
+
18
+ #xor check SUM
19
+ def bcc(str)
20
+ x=str[0]
21
+ (str.size-1).times do |i|
22
+ x=_xor(x,str[i+1])
23
+ end
24
+ #p x
25
+ ret=Bit.new(x).tos(2,16).upcase
26
+ end
27
+ end
28
+ def bcc?(str,bcc_char=nil)
29
+ str2=str.chomp.upcase
30
+ unless bcc_char && str2.size>2
31
+ bcc_char=str2[-2..-1]
32
+ str2=str2[0..-3]
33
+ else
34
+ bcc_char=bcc_char.chomp.upcase
35
+ end
36
+ bcc_char==bcc(str2)
37
+ end
38
+ end
39
+
40
+ if $0==__FILE__
41
+ require "bit"
42
+
43
+ str="%01#RCSX0000"
44
+ include AgriController
45
+ AgriController::Bcc::bcc(str)
46
+ str1="%01#RCSX0000"+"1d\r"
47
+ str2="%01#RCSX0000"
48
+ p Bcc::bcc?(str1)==true
49
+ p Bcc::bcc?(str2,"1D")==true
50
+ p Bcc::bcc?(str2,"1d\r")==true
51
+
52
+
53
+ end
@@ -0,0 +1,143 @@
1
+ ##
2
+ #class Bit
3
+ # is simple bit culcurater.
4
+ # if on or off
5
+ # on(bit) # => on bit
6
+ # on(1) # =>2 (if @bit==0)
7
+ # on(1) # =>3 (if @bit==1)
8
+ # on(1) # =>7 (if @bit==5)
9
+ # bit_on(bit) # => on bit
10
+ #
11
+ # off(1) # =>0 (if @bit==2)
12
+ # off(1) # =>1 (if @bit==3)
13
+ # off(1) # =>5 (if @bit==7)
14
+ # bit_off(bit)# => off bit
15
+ #
16
+ # if check_bit
17
+ # on?(bit)# =>true or false
18
+ # off?(bit)# =>true or false
19
+ #
20
+ # boolbit(true,bit) # ==on(bit)
21
+ # boolbit(false,bit)# ==off(bit)
22
+ module AgriController
23
+ class Bit
24
+ attr_accessor:bit
25
+ def initialize(bit=0)
26
+ @bit=bit
27
+ end
28
+
29
+ def boolbit(bool,bit)
30
+ if bool
31
+ bit_on(bit)
32
+ else
33
+ bit_off(bit)
34
+ end
35
+ end
36
+
37
+ def bit_on(bit)
38
+ unless on?(bit)
39
+ @bit+= 2**bit
40
+ end
41
+ @bit
42
+ end
43
+
44
+ def tos(int=6,bit_num=16)
45
+ x=@bit.to_s(bit_num)
46
+ (int-x.size).times do
47
+ x="0"+x
48
+ end
49
+ return x.upcase
50
+ end
51
+
52
+ def bit_off(bit)
53
+ if on?(bit)
54
+ @bit=@bit - 2**bit
55
+ end
56
+ @bit
57
+ end
58
+
59
+ def on?(bit)
60
+ str=tos(24,2)
61
+ case str.slice(-1-bit,1)
62
+ when "1"
63
+ true
64
+ when "0"
65
+ false
66
+ else
67
+ nil
68
+ end
69
+ end
70
+ def off?(bit)
71
+ not(on?(bit))
72
+ end
73
+ def help
74
+ "##
75
+ #class Bit
76
+ # is simple bit culcurater.
77
+ # if on or off
78
+ # on(bit) # => on bit
79
+ # on(1) # =>2 (if @bit==0)
80
+ # on(1) # =>3 (if @bit==1)
81
+ # on(1) # =>7 (if @bit==5)
82
+ # bit_on(bit) # => on bit
83
+ #
84
+ # off(1) # =>0 (if @bit==2)
85
+ # off(1) # =>1 (if @bit==3)
86
+ # off(1) # =>5 (if @bit==7)
87
+ # bit_off(bit)# => off bit
88
+ #
89
+ # if check_bit
90
+ # on?(bit)# =>true or false
91
+ # off?(bit)# =>true or false
92
+ #
93
+ # boolbit(true,bit) # ==on(bit)
94
+ # boolbit(false,bit)# ==off(bit)
95
+ #
96
+ "
97
+ end
98
+ alias on bit_on
99
+ alias off bit_off
100
+ end
101
+ end
102
+ if $0==__FILE__
103
+ #require "profile"
104
+ #Test of class Bit
105
+ a=AgriController::Bit.new
106
+ p a
107
+ a.bit_on(1)
108
+ a.bit_on(0)
109
+ a.bit_on(23)
110
+
111
+ 1000.times do
112
+ a.bit_on(1)
113
+ end
114
+ a.bit_on(3)
115
+ a.bit_off(1)
116
+ a.bit_off(1)
117
+ p x=a.bit
118
+ p x.to_s(16)
119
+ a.bit_off(4)
120
+ p x.to_s(2)
121
+ p a.off?(3)
122
+ p a.off?(2)
123
+ p a.off?(1)
124
+ p a.off?(0)
125
+ p a.on?(3)
126
+ p a.on?(2)
127
+ p a.on?(1)
128
+ p a.on?(0)
129
+ p a
130
+ p b=AgriController::Bit.new(11)
131
+ p b.bit.to_s(2)
132
+ print b.help
133
+ c=AgriController::Bit.new(8388621)
134
+ p c
135
+ p c.tos
136
+ p c.boolbit(true,4)
137
+ p c.tos
138
+ p c.boolbit(false,4)
139
+ p c.tos
140
+ p c.on(4)
141
+ p c.bit
142
+
143
+ end
@@ -0,0 +1,114 @@
1
+ #require "serial"
2
+ #require "Win32API" #for windows.
3
+
4
+ module AgriController
5
+ ##
6
+ #use Dacs_32bit_I/O_photoMOS_reray on usb_serial_port (win,linux compatible)
7
+ module Dacs
8
+ #export is a simple IO_command send(set),and recieve(import)
9
+ # search com_port(3-19) and communicate
10
+ # export("ffffff")# =>"R0FFFFFF&"
11
+ #
12
+ #com_port number recommended
13
+ #com_port=6 #(see system infomation)
14
+ # export("ffffff",com_port,0)#return =>"R0FFFFFF&"
15
+ # export("000000",com_port,0)#return =>"R0FFFFFF&"
16
+ # export("R",com_port,1) #return =>"R883DFFF&"
17
+ # export("R",com_port) #return =>"R0FFFFFF&"
18
+ #
19
+ #hex_6
20
+ #ex. # =>"FBD017","ffffff"
21
+ #recieve only.# =>"R"
22
+ def export(hex_6,com_port=port?,io_port=0,dip=0)
23
+ #hex_6
24
+ #ex. # =>"FBD017","ffffff"
25
+ #recieve only.# =>"R"
26
+
27
+ case io_port
28
+ #io_port must be io_port*8+dip_switch(on board)
29
+ when 1
30
+ io_port=8*io_port+dip#2nd word
31
+ else#io_port should be 0
32
+ io_port=dip#2nd word
33
+ end
34
+ a=Serial.new
35
+ #search COM port 3-9
36
+ if a.open(com_port,0,57600,8,0,0,4096,4096)!=-1
37
+ command="W#{(io_port).to_s}#{hex_6}&"
38
+
39
+ yield command if block_given?
40
+ #p command
41
+ a.send(command)
42
+ sleep 0.04
43
+ receive=a.receive
44
+ a.close
45
+ return receive
46
+ else
47
+ return false
48
+ end
49
+ nil
50
+ end
51
+
52
+ ##
53
+ #search ports COM3-19
54
+ #if sucsess return int(port number)
55
+ #else return nil.
56
+ def port?(x=3)
57
+ a=Serial.new
58
+ #search COM port 3-19
59
+ bool=false#serch flag
60
+
61
+ while bool==false
62
+ x+=1
63
+ if x > 20
64
+ return nil
65
+ end
66
+
67
+ if a.open(x,0,57600,8,0,0,108,324) == -1
68
+ if x > 20
69
+ return nil
70
+ end
71
+ else
72
+ a.send("W0R&")
73
+ sleep 0.1
74
+ receive=a.receive#should_be "R0xxxxxx&",x=hex
75
+ #p receive.split(//).last
76
+ #p x
77
+ #p receive
78
+ if receive
79
+ if receive.split(//).last=="&"
80
+ if receive.split(//).first=="R"
81
+ bool=true
82
+ end
83
+ end
84
+ end
85
+ a.close
86
+ end
87
+ end
88
+
89
+ return x
90
+ end
91
+
92
+ def import(com_port=port?,io_port=0,dip=0)
93
+ export("R",com_port,io_port,dip)
94
+ end
95
+
96
+ def import_bit(com_port=port?,io_port=0,dip=0)
97
+
98
+ port_bit=import(com_port=port?,io_port,dip)
99
+ if port_bit
100
+ import_bits=port_bit.slice(2,6).to_i(16)
101
+ else
102
+ import_bits=0
103
+ end
104
+ return import_bits
105
+ end
106
+ end
107
+ end
108
+
109
+ if $0==__FILE__
110
+ include AgriController::Dacs
111
+ p port?
112
+ p x=export("FFFFFF",5)
113
+ #p x.to_s(16)
114
+ end