ruby_astm 1.2.5 → 1.2.6
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.
- checksums.yaml +4 -4
- data/lib/ruby_astm/lab_interface.rb +75 -33
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34dfde956008c06eeb01284d7094a1a641eeee761688883c15973d82b27b395b
|
4
|
+
data.tar.gz: e82af600dfdb7f790e3f18282a14b2963cd307a9eaa9281b6f00bc1a8c72edd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 137bbe38d4e0273d68db494c313a969d6bda3e6ce078e048551364b2f086e7358edde9236ce21aeb8e2484d0d205b92804813b3c1a4858d7dc3da0d5bc59c955
|
7
|
+
data.tar.gz: 283cac2f5215effe5d55d379f8984b37caac8bd15fa7aa6d44b6a3e803ce2c28697444203ba4d7bd465fe7231d0ba3f68b396c0cc91e8a6d3a635238e6a50c5c
|
@@ -22,6 +22,9 @@ module LabInterface
|
|
22
22
|
mattr_accessor :usb_parity
|
23
23
|
mattr_accessor :mid_frame_end_detected
|
24
24
|
|
25
|
+
## gather bytes to store for us to test.
|
26
|
+
mattr_accessor :test_data_bytes
|
27
|
+
|
25
28
|
|
26
29
|
|
27
30
|
mattr_accessor :headers
|
@@ -50,6 +53,8 @@ module LabInterface
|
|
50
53
|
end
|
51
54
|
|
52
55
|
|
56
|
+
|
57
|
+
|
53
58
|
def terminator
|
54
59
|
"L|1|N\r"
|
55
60
|
end
|
@@ -91,50 +96,57 @@ module LabInterface
|
|
91
96
|
end
|
92
97
|
|
93
98
|
def is_mid_frame_end?(bytes_array)
|
99
|
+
|
100
|
+
## if you get 13,10,2 anywhere, ignore that and the subsequent digit.
|
101
|
+
bytes_indices_to_delete = []
|
94
102
|
unless bytes_array.blank?
|
95
|
-
|
96
|
-
if bytes_array
|
97
|
-
|
98
|
-
|
103
|
+
bytes_array.each_with_index{|val,key|
|
104
|
+
if bytes_array.size >= (key + 2)
|
105
|
+
if bytes_array[key..(key+2)] == [13,10,2]
|
106
|
+
bytes_indices_to_delete.push(key - 3)
|
107
|
+
bytes_indices_to_delete.push(key - 2)
|
108
|
+
bytes_indices_to_delete.push(key - 1)
|
109
|
+
bytes_indices_to_delete.push(key)
|
110
|
+
bytes_indices_to_delete.push(key + 1)
|
111
|
+
bytes_indices_to_delete.push(key + 2)
|
112
|
+
end
|
99
113
|
end
|
100
|
-
|
114
|
+
}
|
101
115
|
end
|
102
|
-
|
116
|
+
bytes_indices_to_delete
|
103
117
|
end
|
104
118
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
begin
|
119
|
+
def pre_process_bytes(byte_arr,concat)
|
109
120
|
|
121
|
+
puts byte_arr.to_s
|
122
|
+
indices_to_delete = is_mid_frame_end?(byte_arr)
|
123
|
+
#puts "indices to delete"
|
124
|
+
#puts indices_to_delete.to_s
|
110
125
|
|
111
|
-
self.
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
concat = ""
|
116
|
-
|
117
|
-
#puts data.bytes.to_a.to_s
|
118
|
-
|
119
|
-
|
120
|
-
## if the bytes end in 13,10,2
|
121
|
-
## that means frame ends and restarts
|
122
|
-
## ignore those three bytes
|
123
|
-
byte_arr = data.bytes.to_a
|
124
|
-
#puts "byte arr is:"
|
125
|
-
#puts byte_arr
|
126
|
-
|
127
|
-
if is_mid_frame_end?(byte_arr)
|
128
|
-
#puts "mid frame end is true---------------!!!!!!!!!!"
|
129
|
-
byte_arr = byte_arr[0..-7]
|
130
|
-
#puts "byte arr BECOMES mid frame end is true---------------!!!!!!!!!!"
|
131
|
-
#puts byte_arr.pack('c*')
|
132
|
-
elsif self.mid_frame_end_detected == true
|
133
|
-
## we ignore the frame number.
|
126
|
+
if self.mid_frame_end_detected == true
|
127
|
+
#puts "deletected mid fram is true, so deleting first byte before delete"
|
128
|
+
#puts byte_arr.to_s
|
134
129
|
byte_arr = byte_arr[1..-1]
|
130
|
+
#puts "after deleteing"
|
131
|
+
#puts byte_arr.to_s
|
135
132
|
self.mid_frame_end_detected = false
|
136
133
|
end
|
137
134
|
|
135
|
+
unless indices_to_delete.blank?
|
136
|
+
if byte_arr[(indices_to_delete[-1] + 1)]
|
137
|
+
#puts "before deleting frame number "
|
138
|
+
#puts byte_arr.to_s
|
139
|
+
byte_arr.delete_at((indices_to_delete[-1] + 1))
|
140
|
+
#puts "after deleting"
|
141
|
+
#puts byte_arr.to_s
|
142
|
+
else
|
143
|
+
self.mid_frame_end_detected = true
|
144
|
+
end
|
145
|
+
end
|
146
|
+
#puts "byte arr before reject"
|
147
|
+
byte_arr = byte_arr.reject.with_index{|c,i| indices_to_delete.include? i}
|
148
|
+
|
149
|
+
|
138
150
|
byte_arr.each do |byte|
|
139
151
|
x = [byte].pack('c*').force_encoding('UTF-8')
|
140
152
|
if x == "\r"
|
@@ -148,6 +160,31 @@ module LabInterface
|
|
148
160
|
concat+=x
|
149
161
|
end
|
150
162
|
end
|
163
|
+
|
164
|
+
concat
|
165
|
+
|
166
|
+
end
|
167
|
+
|
168
|
+
def receive_data(data)
|
169
|
+
|
170
|
+
|
171
|
+
begin
|
172
|
+
|
173
|
+
|
174
|
+
self.data_buffer ||= ''
|
175
|
+
|
176
|
+
#puts "incoming data bytes."
|
177
|
+
|
178
|
+
concat = ""
|
179
|
+
|
180
|
+
|
181
|
+
byte_arr = data.bytes.to_a
|
182
|
+
self.test_data_bytes ||= []
|
183
|
+
self.test_data_bytes.push(byte_arr)
|
184
|
+
|
185
|
+
concat = pre_process_bytes(byte_arr,concat)
|
186
|
+
|
187
|
+
|
151
188
|
|
152
189
|
#puts "concat is:"
|
153
190
|
|
@@ -163,6 +200,10 @@ module LabInterface
|
|
163
200
|
if data.bytes.to_a[-1] == 4
|
164
201
|
#puts "GOT EOT --- PROCESSING BUFFER, AND CLEARING."
|
165
202
|
process_text(self.data_buffer)
|
203
|
+
#root_path = File.dirname __dir
|
204
|
+
#puts "root path #{root_path}"
|
205
|
+
#IO.write((File.join root_path,'test','resources','roche_multi_frame_bytes.txt'),self.test_data_bytes.to_s)
|
206
|
+
#puts self.test_data_bytes.flatten.to_s
|
166
207
|
self.data_buffer = ''
|
167
208
|
if self.headers[-1].queries.blank?
|
168
209
|
#puts "no queries in header so sending ack after getting EOT and processing the buffer"
|
@@ -240,6 +281,7 @@ module LabInterface
|
|
240
281
|
puts "text is:"
|
241
282
|
puts text
|
242
283
|
text.split("\n").each do |l|
|
284
|
+
puts "doing line:#{l}"
|
243
285
|
line = Line.new({:text => l})
|
244
286
|
process_type(line)
|
245
287
|
end
|