agri-controller 0.0.0

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 (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