prova-vhm-raw2xml 0.1.4 → 0.2.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.
- data/VERSION +1 -1
- data/lib/libZVLParser/{libZVLParser32.so → linux/libZVLParser32.so} +0 -0
- data/lib/libZVLParser/{libZVLParser64.so → linux/libZVLParser64.so} +0 -0
- data/lib/libZVLParser/mac/libZVLParser32.so +0 -0
- data/lib/libZVLParser/mac/libZVLParser64.so +0 -0
- data/lib/prova-vhm-raw2xml.rb +36 -23
- data/prova-vhm-raw2xml.gemspec +10 -5
- data/spec/prova-vhm-raw2xml_spec.rb +24 -3
- data/spec/spec_helper.rb +5 -3
- data/spec/support/file_helpers.rb +26 -0
- data/spec/support/test.raw +0 -0
- data/spec/support/xml_helpers.rb +471 -0
- metadata +10 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
File without changes
|
File without changes
|
Binary file
|
Binary file
|
data/lib/prova-vhm-raw2xml.rb
CHANGED
@@ -1,31 +1,44 @@
|
|
1
1
|
require 'ffi'
|
2
2
|
|
3
|
-
module
|
4
|
-
module
|
5
|
-
|
6
|
-
extend FFI::Library
|
3
|
+
module ProvaVHM
|
4
|
+
module Raw2Xml
|
5
|
+
extend FFI::Library
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
class << self
|
8
|
+
def shared_library_path
|
9
|
+
abort("Windows isn't supported by this gem") if running_on_windows?
|
10
|
+
File.expand_path(File.dirname(__FILE__) +
|
11
|
+
"/libZVLParser/#{running_on_a_mac? ? 'mac' : 'linux'}/libZVLParser64.so")
|
12
|
+
end
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
#
|
16
|
-
# Fleetio::ProvaVHM::Raw2Xml.convert(raw_file_path, metric, xml_file_path)
|
17
|
-
#
|
18
|
-
# raw_file_path - The String path of the raw file to convert.
|
19
|
-
# metric - Boolean flag should be true for metric units, false for imperial units.
|
20
|
-
# xml_file_path - The String path of the XML file output.
|
21
|
-
#
|
22
|
-
# Examples
|
23
|
-
#
|
24
|
-
# Fleetio::ProvaVHM::Raw2Xml.convert('test.raw', false, 'test.xml')
|
25
|
-
#
|
26
|
-
# Returns true if the operation was successful, false if not.
|
27
|
-
attach_function :convert, :ZVLP_ConvertRawToXML, [:string, :bool, :string], :bool
|
14
|
+
def running_on_windows?
|
15
|
+
RUBY_PLATFORM =~ /mswin32|mingw32/
|
16
|
+
end
|
28
17
|
|
18
|
+
def running_on_a_mac?
|
19
|
+
RUBY_PLATFORM =~ /-darwin\d/
|
20
|
+
end
|
29
21
|
end
|
22
|
+
|
23
|
+
# Loads the C shared library
|
24
|
+
ffi_lib(shared_library_path)
|
25
|
+
|
26
|
+
# Public: Converts a raw file from a Prova Systems VHM into an XML file.
|
27
|
+
#
|
28
|
+
# Signature
|
29
|
+
#
|
30
|
+
# Fleetio::ProvaVHM::Raw2Xml.convert(raw_file_path, metric, xml_file_path)
|
31
|
+
#
|
32
|
+
# raw_file_path - The String path of the raw file to convert.
|
33
|
+
# metric - Boolean flag should be true for metric units, false for imperial units.
|
34
|
+
# xml_file_path - The String path of the XML file output.
|
35
|
+
#
|
36
|
+
# Examples
|
37
|
+
#
|
38
|
+
# Fleetio::ProvaVHM::Raw2Xml.convert('test.raw', false, 'test.xml')
|
39
|
+
#
|
40
|
+
# Returns true if the operation was successful, false if not.
|
41
|
+
attach_function :convert, :ZVLP_ConvertRawToXML, [:string, :bool, :string], :bool
|
42
|
+
|
30
43
|
end
|
31
44
|
end
|
data/prova-vhm-raw2xml.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "prova-vhm-raw2xml"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tony Summerville"]
|
12
|
-
s.date = "2012-03-
|
12
|
+
s.date = "2012-03-10"
|
13
13
|
s.description = "Converts raw data from a Prova Systems Vehicle Health Monitor (VHM) to plain old XML."
|
14
14
|
s.email = "tsummerville@rarestep.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,12 +25,17 @@ Gem::Specification.new do |s|
|
|
25
25
|
"README.rdoc",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
|
-
"lib/libZVLParser/libZVLParser32.so",
|
29
|
-
"lib/libZVLParser/libZVLParser64.so",
|
28
|
+
"lib/libZVLParser/linux/libZVLParser32.so",
|
29
|
+
"lib/libZVLParser/linux/libZVLParser64.so",
|
30
|
+
"lib/libZVLParser/mac/libZVLParser32.so",
|
31
|
+
"lib/libZVLParser/mac/libZVLParser64.so",
|
30
32
|
"lib/prova-vhm-raw2xml.rb",
|
31
33
|
"prova-vhm-raw2xml.gemspec",
|
32
34
|
"spec/prova-vhm-raw2xml_spec.rb",
|
33
|
-
"spec/spec_helper.rb"
|
35
|
+
"spec/spec_helper.rb",
|
36
|
+
"spec/support/file_helpers.rb",
|
37
|
+
"spec/support/test.raw",
|
38
|
+
"spec/support/xml_helpers.rb"
|
34
39
|
]
|
35
40
|
s.homepage = "http://github.com/rarestep/prova-vhm-raw2xml"
|
36
41
|
s.licenses = ["MIT"]
|
@@ -1,7 +1,28 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
3
|
+
describe ProvaVHM::Raw2Xml do
|
4
|
+
|
5
|
+
it "responds to helper methods" do
|
6
|
+
ProvaVHM::Raw2Xml.should respond_to :running_on_windows?
|
7
|
+
ProvaVHM::Raw2Xml.should respond_to :running_on_a_mac?
|
8
|
+
ProvaVHM::Raw2Xml.should respond_to :shared_library_path
|
9
|
+
end
|
10
|
+
|
11
|
+
it "responds to :convert" do
|
12
|
+
ProvaVHM::Raw2Xml.should respond_to :convert
|
13
|
+
end
|
14
|
+
|
15
|
+
context do
|
16
|
+
|
17
|
+
it "converts a raw file with imperial units" do
|
18
|
+
ProvaVHM::Raw2Xml.convert(raw_file, false, xml_file).should be true
|
19
|
+
compare_xml(File.read(xml_file), expected_imperial_xml).should be true
|
20
|
+
end
|
21
|
+
|
22
|
+
it "converts a raw file with metric units" do
|
23
|
+
ProvaVHM::Raw2Xml.convert(raw_file, true, xml_file).should be true
|
24
|
+
compare_xml(File.read(xml_file), expected_metric_xml).should be true
|
25
|
+
end
|
6
26
|
end
|
27
|
+
|
7
28
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,8 +5,10 @@ require 'prova-vhm-raw2xml'
|
|
5
5
|
|
6
6
|
# Requires supporting files with custom matchers and macros, etc,
|
7
7
|
# in ./support/ and its subdirectories.
|
8
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
9
9
|
|
10
|
-
RSpec.configure do |
|
11
|
-
|
10
|
+
RSpec.configure do |c|
|
11
|
+
c.include XmlHelpers
|
12
|
+
c.include FileHelpers
|
13
|
+
c.after(:all) { cleanup_xml_file }
|
12
14
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module FileHelpers
|
2
|
+
|
3
|
+
# Internal: Returns a String with the current directory path of this file.
|
4
|
+
def current_directory
|
5
|
+
File.expand_path(File.dirname(__FILE__))
|
6
|
+
end
|
7
|
+
|
8
|
+
# Internal: Returns a String with the path to the raw file.
|
9
|
+
def raw_file
|
10
|
+
current_directory + '/test.raw'
|
11
|
+
end
|
12
|
+
|
13
|
+
# Internal: Returns a String with the path to the XML file.
|
14
|
+
def xml_file
|
15
|
+
current_directory + '/test.xml'
|
16
|
+
end
|
17
|
+
|
18
|
+
# Internal: Deletes the XML file if it exists.
|
19
|
+
def cleanup_xml_file
|
20
|
+
if File.exists?(xml_file)
|
21
|
+
File.delete(xml_file)
|
22
|
+
puts "\nDeleted XML file: #{xml_file}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
Binary file
|
@@ -0,0 +1,471 @@
|
|
1
|
+
require 'rexml/document'
|
2
|
+
|
3
|
+
module XmlHelpers
|
4
|
+
|
5
|
+
# Internal: Compares two XML strings and determines whether or not they're equal.
|
6
|
+
#
|
7
|
+
# Comparing XML is always a b-i-a-t-c-h in any testing environment. Borrowed from:
|
8
|
+
# http://drawohara.com/post/89110816/ruby-comparing-xml
|
9
|
+
#
|
10
|
+
# a - String of XML
|
11
|
+
# b - String of XML
|
12
|
+
#
|
13
|
+
# Returns true if the XML strings are equal, false if not.
|
14
|
+
def compare_xml(a, b)
|
15
|
+
a = REXML::Document.new(a.to_s)
|
16
|
+
b = REXML::Document.new(b.to_s)
|
17
|
+
|
18
|
+
normalized = Class.new(REXML::Formatters::Pretty) do
|
19
|
+
def write_text(node, output)
|
20
|
+
super(node.to_s.strip, output)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
normalized.new(indentation=0, ie_hack=false).write(node=a, a_normalized='')
|
25
|
+
normalized.new(indentation=0, ie_hack=false).write(node=b, b_normalized='')
|
26
|
+
|
27
|
+
a_normalized == b_normalized
|
28
|
+
end
|
29
|
+
|
30
|
+
# Internal: Returns a string containing the expected XML when converting the `test.raw` file
|
31
|
+
# using imperial units (e.g. miles, gallons).
|
32
|
+
def expected_imperial_xml
|
33
|
+
<<-EOXML
|
34
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
35
|
+
<event_list device_id="0013A20040552925" ap_id="0013A20040552940" conversion="english">
|
36
|
+
<event type="EV_RADIO_SN">
|
37
|
+
0013A20040552925
|
38
|
+
</event>
|
39
|
+
<event type="EV_VIN">
|
40
|
+
OZENELEKTRONIK123
|
41
|
+
</event>
|
42
|
+
<event type="EV_SW_VERSION">
|
43
|
+
....
|
44
|
+
</event>
|
45
|
+
<event type="EV_HW_VERSION">
|
46
|
+
1.0.0.0
|
47
|
+
</event>
|
48
|
+
<event type="EV_ZVL_TEMPERATURE" units="F">
|
49
|
+
77
|
50
|
+
</event>
|
51
|
+
<event type="EV_MIL_STATUS" dtc_count="0">
|
52
|
+
off
|
53
|
+
</event>
|
54
|
+
<event type="EV_MONITOR_STATUS">
|
55
|
+
<monitor_status name="Misfire">
|
56
|
+
complete
|
57
|
+
</monitor_status>
|
58
|
+
<monitor_status name="Fuel System">
|
59
|
+
complete
|
60
|
+
</monitor_status>
|
61
|
+
<monitor_status name="Comprehensive Component">
|
62
|
+
complete
|
63
|
+
</monitor_status>
|
64
|
+
<monitor_status name="Evaporative System">
|
65
|
+
complete
|
66
|
+
</monitor_status>
|
67
|
+
<monitor_status name="Oxygen Sensor">
|
68
|
+
complete
|
69
|
+
</monitor_status>
|
70
|
+
<monitor_status name="Oxygen Sensor Heater">
|
71
|
+
complete
|
72
|
+
</monitor_status>
|
73
|
+
<monitor_status name="Catalyst">
|
74
|
+
complete
|
75
|
+
</monitor_status>
|
76
|
+
<monitor_status name="Heated Catalyst">
|
77
|
+
not supported
|
78
|
+
</monitor_status>
|
79
|
+
<monitor_status name="AC System Refrigerant">
|
80
|
+
not supported
|
81
|
+
</monitor_status>
|
82
|
+
<monitor_status name="Secondary Air System">
|
83
|
+
not supported
|
84
|
+
</monitor_status>
|
85
|
+
<monitor_status name="EGR System">
|
86
|
+
complete
|
87
|
+
</monitor_status>
|
88
|
+
</event>
|
89
|
+
<event type="EV_CLOCK_SET" date="04/20/2011" time="10:51:55"/>
|
90
|
+
<event type="EV_HOST_DISCONNECT" date="04/20/2011" time="10:52:00"/>
|
91
|
+
<event type="EV_TRIP_RECORD" date="04/19/2011" time="16:59:12">
|
92
|
+
<trip_duration units="seconds">
|
93
|
+
6048
|
94
|
+
</trip_duration>
|
95
|
+
<idling_duration units="seconds">
|
96
|
+
0
|
97
|
+
</idling_duration>
|
98
|
+
<trip_distance units="miles">
|
99
|
+
131.531
|
100
|
+
</trip_distance>
|
101
|
+
<moving_fuel_efficiency units="mpg">
|
102
|
+
28.2091
|
103
|
+
</moving_fuel_efficiency>
|
104
|
+
<idling_fuel_efficiency units="gal/hr">
|
105
|
+
0
|
106
|
+
</idling_fuel_efficiency>
|
107
|
+
<total_fuel_efficiency units="mpg">
|
108
|
+
28.2091
|
109
|
+
</total_fuel_efficiency>
|
110
|
+
<total_fuel_used units="gallons">
|
111
|
+
4.66269
|
112
|
+
</total_fuel_used>
|
113
|
+
<idling_fuel_used units="gallons">
|
114
|
+
0
|
115
|
+
</idling_fuel_used>
|
116
|
+
<maximum_speed units="mph" date="04/19/2011" time="17:00:46">
|
117
|
+
78.9141
|
118
|
+
</maximum_speed>
|
119
|
+
<average_speed units="mph">
|
120
|
+
78.2964
|
121
|
+
</average_speed>
|
122
|
+
<maximum_rpm units="RPM" date="04/19/2011" time="16:59:12">
|
123
|
+
4576
|
124
|
+
</maximum_rpm>
|
125
|
+
<average_rpm units="RPM">
|
126
|
+
4558.9
|
127
|
+
</average_rpm>
|
128
|
+
<maximum_tp units="%" date="00/00/0000" time="00:00:00">
|
129
|
+
0
|
130
|
+
</maximum_tp>
|
131
|
+
<average_tp units="%">
|
132
|
+
0
|
133
|
+
</average_tp>
|
134
|
+
<maximum_ect units="F" date="04/20/2011" time="12:15:18">
|
135
|
+
120.2
|
136
|
+
</maximum_ect>
|
137
|
+
<average_ect units="F">
|
138
|
+
118.4
|
139
|
+
</average_ect>
|
140
|
+
<maximum_acceleration units="G" date="04/20/2011" time="10:54:43">
|
141
|
+
0.027
|
142
|
+
</maximum_acceleration>
|
143
|
+
<maximum_deceleration units="G" date="04/20/2011" time="10:54:44">
|
144
|
+
0.027
|
145
|
+
</maximum_deceleration>
|
146
|
+
<speed_histogram>
|
147
|
+
<bin units="mph" lower_threshold="1.243" upper_threshold="9.942">
|
148
|
+
0
|
149
|
+
</bin>
|
150
|
+
<bin units="mph" lower_threshold="9.942" upper_threshold="19.884">
|
151
|
+
0
|
152
|
+
</bin>
|
153
|
+
<bin units="mph" lower_threshold="19.884" upper_threshold="29.826">
|
154
|
+
0
|
155
|
+
</bin>
|
156
|
+
<bin units="mph" lower_threshold="29.826" upper_threshold="39.768">
|
157
|
+
0
|
158
|
+
</bin>
|
159
|
+
<bin units="mph" lower_threshold="39.768" upper_threshold="49.710">
|
160
|
+
0
|
161
|
+
</bin>
|
162
|
+
<bin units="mph" lower_threshold="49.710" upper_threshold="59.652">
|
163
|
+
0
|
164
|
+
</bin>
|
165
|
+
<bin units="mph" lower_threshold="59.652" upper_threshold="70.215">
|
166
|
+
0
|
167
|
+
</bin>
|
168
|
+
<bin units="mph" lower_threshold="70.215" upper_threshold="80.157">
|
169
|
+
5841
|
170
|
+
</bin>
|
171
|
+
<bin units="mph" lower_threshold="80.157" upper_threshold="90.099">
|
172
|
+
0
|
173
|
+
</bin>
|
174
|
+
<bin units="mph" lower_threshold="90.099">
|
175
|
+
0
|
176
|
+
</bin>
|
177
|
+
</speed_histogram>
|
178
|
+
<acceleration_histogram>
|
179
|
+
<bin units="G" lower_threshold="0.2" upper_threshold="0.25">
|
180
|
+
0
|
181
|
+
</bin>
|
182
|
+
<bin units="G" lower_threshold="0.25" upper_threshold="0.3">
|
183
|
+
0
|
184
|
+
</bin>
|
185
|
+
<bin units="G" lower_threshold="0.3" upper_threshold="0.35">
|
186
|
+
0
|
187
|
+
</bin>
|
188
|
+
<bin units="G" lower_threshold="0.35" upper_threshold="0.4">
|
189
|
+
0
|
190
|
+
</bin>
|
191
|
+
<bin units="G" lower_threshold="0.4" upper_threshold="0.45">
|
192
|
+
0
|
193
|
+
</bin>
|
194
|
+
<bin units="G" lower_threshold="0.45" upper_threshold="0.5">
|
195
|
+
0
|
196
|
+
</bin>
|
197
|
+
<bin units="G" lower_threshold="0.5" upper_threshold="0.6">
|
198
|
+
0
|
199
|
+
</bin>
|
200
|
+
<bin units="G" lower_threshold="0.6" upper_threshold="0.8">
|
201
|
+
0
|
202
|
+
</bin>
|
203
|
+
<bin units="G" lower_threshold="0.8" upper_threshold="1">
|
204
|
+
0
|
205
|
+
</bin>
|
206
|
+
<bin units="G" lower_threshold="1">
|
207
|
+
0
|
208
|
+
</bin>
|
209
|
+
</acceleration_histogram>
|
210
|
+
<deceleration_histogram>
|
211
|
+
<bin units="G" lower_threshold="0.2" upper_threshold="0.3">
|
212
|
+
0
|
213
|
+
</bin>
|
214
|
+
<bin units="G" lower_threshold="0.3" upper_threshold="0.4">
|
215
|
+
0
|
216
|
+
</bin>
|
217
|
+
<bin units="G" lower_threshold="0.4" upper_threshold="0.5">
|
218
|
+
0
|
219
|
+
</bin>
|
220
|
+
<bin units="G" lower_threshold="0.5" upper_threshold="0.6">
|
221
|
+
0
|
222
|
+
</bin>
|
223
|
+
<bin units="G" lower_threshold="0.6" upper_threshold="0.7">
|
224
|
+
0
|
225
|
+
</bin>
|
226
|
+
<bin units="G" lower_threshold="0.7" upper_threshold="0.8">
|
227
|
+
0
|
228
|
+
</bin>
|
229
|
+
<bin units="G" lower_threshold="0.8" upper_threshold="0.9">
|
230
|
+
0
|
231
|
+
</bin>
|
232
|
+
<bin units="G" lower_threshold="0.9" upper_threshold="1">
|
233
|
+
0
|
234
|
+
</bin>
|
235
|
+
<bin units="G" lower_threshold="1" upper_threshold="2">
|
236
|
+
0
|
237
|
+
</bin>
|
238
|
+
<bin units="G" lower_threshold="2">
|
239
|
+
0
|
240
|
+
</bin>
|
241
|
+
</deceleration_histogram>
|
242
|
+
</event>
|
243
|
+
<event type="EV_DLC_DISCONNECT" date="04/20/2011" time="12:15:18"/>
|
244
|
+
<event type="EV_DLC_CONNECT" date="04/20/2011" time="12:58:57"/>
|
245
|
+
<event type="EV_HOST_CONNECT" date="04/20/2011" time="13:18:35"/>
|
246
|
+
</event_list>
|
247
|
+
EOXML
|
248
|
+
end
|
249
|
+
|
250
|
+
# Internal: Returns a string containing the expected XML when converting the `test.raw` file
|
251
|
+
# using metric units (e.g. kilometers, liters).
|
252
|
+
def expected_metric_xml
|
253
|
+
<<-EOXML
|
254
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
255
|
+
<event_list device_id="0013A20040552925" ap_id="0013A20040552940" conversion="metric">
|
256
|
+
<event type="EV_RADIO_SN">
|
257
|
+
0013A20040552925
|
258
|
+
</event>
|
259
|
+
<event type="EV_VIN">
|
260
|
+
OZENELEKTRONIK123
|
261
|
+
</event>
|
262
|
+
<event type="EV_SW_VERSION">
|
263
|
+
....
|
264
|
+
</event>
|
265
|
+
<event type="EV_HW_VERSION">
|
266
|
+
1.0.0.0
|
267
|
+
</event>
|
268
|
+
<event type="EV_ZVL_TEMPERATURE" units="C">
|
269
|
+
25
|
270
|
+
</event>
|
271
|
+
<event type="EV_MIL_STATUS" dtc_count="0">
|
272
|
+
off
|
273
|
+
</event>
|
274
|
+
<event type="EV_MONITOR_STATUS">
|
275
|
+
<monitor_status name="Misfire">
|
276
|
+
complete
|
277
|
+
</monitor_status>
|
278
|
+
<monitor_status name="Fuel System">
|
279
|
+
complete
|
280
|
+
</monitor_status>
|
281
|
+
<monitor_status name="Comprehensive Component">
|
282
|
+
complete
|
283
|
+
</monitor_status>
|
284
|
+
<monitor_status name="Evaporative System">
|
285
|
+
complete
|
286
|
+
</monitor_status>
|
287
|
+
<monitor_status name="Oxygen Sensor">
|
288
|
+
complete
|
289
|
+
</monitor_status>
|
290
|
+
<monitor_status name="Oxygen Sensor Heater">
|
291
|
+
complete
|
292
|
+
</monitor_status>
|
293
|
+
<monitor_status name="Catalyst">
|
294
|
+
complete
|
295
|
+
</monitor_status>
|
296
|
+
<monitor_status name="Heated Catalyst">
|
297
|
+
not supported
|
298
|
+
</monitor_status>
|
299
|
+
<monitor_status name="AC System Refrigerant">
|
300
|
+
not supported
|
301
|
+
</monitor_status>
|
302
|
+
<monitor_status name="Secondary Air System">
|
303
|
+
not supported
|
304
|
+
</monitor_status>
|
305
|
+
<monitor_status name="EGR System">
|
306
|
+
complete
|
307
|
+
</monitor_status>
|
308
|
+
</event>
|
309
|
+
<event type="EV_CLOCK_SET" date="04/20/2011" time="10:51:55"/>
|
310
|
+
<event type="EV_HOST_DISCONNECT" date="04/20/2011" time="10:52:00"/>
|
311
|
+
<event type="EV_TRIP_RECORD" date="04/19/2011" time="16:59:12">
|
312
|
+
<trip_duration units="seconds">
|
313
|
+
6048
|
314
|
+
</trip_duration>
|
315
|
+
<idling_duration units="seconds">
|
316
|
+
0
|
317
|
+
</idling_duration>
|
318
|
+
<trip_distance units="km">
|
319
|
+
211.678
|
320
|
+
</trip_distance>
|
321
|
+
<moving_fuel_efficiency units="km/l">
|
322
|
+
11.9929
|
323
|
+
</moving_fuel_efficiency>
|
324
|
+
<idling_fuel_efficiency units="l/hr">
|
325
|
+
0
|
326
|
+
</idling_fuel_efficiency>
|
327
|
+
<total_fuel_efficiency units="km/l">
|
328
|
+
11.9929
|
329
|
+
</total_fuel_efficiency>
|
330
|
+
<total_fuel_used units="liters">
|
331
|
+
17.6502
|
332
|
+
</total_fuel_used>
|
333
|
+
<idling_fuel_used units="liters">
|
334
|
+
0
|
335
|
+
</idling_fuel_used>
|
336
|
+
<maximum_speed units="kph" date="04/19/2011" time="17:00:46">
|
337
|
+
127
|
338
|
+
</maximum_speed>
|
339
|
+
<average_speed units="kph">
|
340
|
+
126.006
|
341
|
+
</average_speed>
|
342
|
+
<maximum_rpm units="RPM" date="04/19/2011" time="16:59:12">
|
343
|
+
4576
|
344
|
+
</maximum_rpm>
|
345
|
+
<average_rpm units="RPM">
|
346
|
+
4558.9
|
347
|
+
</average_rpm>
|
348
|
+
<maximum_tp units="%" date="00/00/0000" time="00:00:00">
|
349
|
+
0
|
350
|
+
</maximum_tp>
|
351
|
+
<average_tp units="%">
|
352
|
+
0
|
353
|
+
</average_tp>
|
354
|
+
<maximum_ect units="C" date="04/20/2011" time="12:15:18">
|
355
|
+
49
|
356
|
+
</maximum_ect>
|
357
|
+
<average_ect units="C">
|
358
|
+
48.0002
|
359
|
+
</average_ect>
|
360
|
+
<maximum_acceleration units="G" date="04/20/2011" time="10:54:43">
|
361
|
+
0.027
|
362
|
+
</maximum_acceleration>
|
363
|
+
<maximum_deceleration units="G" date="04/20/2011" time="10:54:44">
|
364
|
+
0.027
|
365
|
+
</maximum_deceleration>
|
366
|
+
<speed_histogram>
|
367
|
+
<bin units="kph" lower_threshold="2" upper_threshold="16">
|
368
|
+
0
|
369
|
+
</bin>
|
370
|
+
<bin units="kph" lower_threshold="16" upper_threshold="32">
|
371
|
+
0
|
372
|
+
</bin>
|
373
|
+
<bin units="kph" lower_threshold="32" upper_threshold="48">
|
374
|
+
0
|
375
|
+
</bin>
|
376
|
+
<bin units="kph" lower_threshold="48" upper_threshold="64">
|
377
|
+
0
|
378
|
+
</bin>
|
379
|
+
<bin units="kph" lower_threshold="64" upper_threshold="80">
|
380
|
+
0
|
381
|
+
</bin>
|
382
|
+
<bin units="kph" lower_threshold="80" upper_threshold="96">
|
383
|
+
0
|
384
|
+
</bin>
|
385
|
+
<bin units="kph" lower_threshold="96" upper_threshold="113">
|
386
|
+
0
|
387
|
+
</bin>
|
388
|
+
<bin units="kph" lower_threshold="113" upper_threshold="129">
|
389
|
+
5841
|
390
|
+
</bin>
|
391
|
+
<bin units="kph" lower_threshold="129" upper_threshold="145">
|
392
|
+
0
|
393
|
+
</bin>
|
394
|
+
<bin units="kph" lower_threshold="145">
|
395
|
+
0
|
396
|
+
</bin>
|
397
|
+
</speed_histogram>
|
398
|
+
<acceleration_histogram>
|
399
|
+
<bin units="G" lower_threshold="0.2" upper_threshold="0.25">
|
400
|
+
0
|
401
|
+
</bin>
|
402
|
+
<bin units="G" lower_threshold="0.25" upper_threshold="0.3">
|
403
|
+
0
|
404
|
+
</bin>
|
405
|
+
<bin units="G" lower_threshold="0.3" upper_threshold="0.35">
|
406
|
+
0
|
407
|
+
</bin>
|
408
|
+
<bin units="G" lower_threshold="0.35" upper_threshold="0.4">
|
409
|
+
0
|
410
|
+
</bin>
|
411
|
+
<bin units="G" lower_threshold="0.4" upper_threshold="0.45">
|
412
|
+
0
|
413
|
+
</bin>
|
414
|
+
<bin units="G" lower_threshold="0.45" upper_threshold="0.5">
|
415
|
+
0
|
416
|
+
</bin>
|
417
|
+
<bin units="G" lower_threshold="0.5" upper_threshold="0.6">
|
418
|
+
0
|
419
|
+
</bin>
|
420
|
+
<bin units="G" lower_threshold="0.6" upper_threshold="0.8">
|
421
|
+
0
|
422
|
+
</bin>
|
423
|
+
<bin units="G" lower_threshold="0.8" upper_threshold="1">
|
424
|
+
0
|
425
|
+
</bin>
|
426
|
+
<bin units="G" lower_threshold="1">
|
427
|
+
0
|
428
|
+
</bin>
|
429
|
+
</acceleration_histogram>
|
430
|
+
<deceleration_histogram>
|
431
|
+
<bin units="G" lower_threshold="0.2" upper_threshold="0.3">
|
432
|
+
0
|
433
|
+
</bin>
|
434
|
+
<bin units="G" lower_threshold="0.3" upper_threshold="0.4">
|
435
|
+
0
|
436
|
+
</bin>
|
437
|
+
<bin units="G" lower_threshold="0.4" upper_threshold="0.5">
|
438
|
+
0
|
439
|
+
</bin>
|
440
|
+
<bin units="G" lower_threshold="0.5" upper_threshold="0.6">
|
441
|
+
0
|
442
|
+
</bin>
|
443
|
+
<bin units="G" lower_threshold="0.6" upper_threshold="0.7">
|
444
|
+
0
|
445
|
+
</bin>
|
446
|
+
<bin units="G" lower_threshold="0.7" upper_threshold="0.8">
|
447
|
+
0
|
448
|
+
</bin>
|
449
|
+
<bin units="G" lower_threshold="0.8" upper_threshold="0.9">
|
450
|
+
0
|
451
|
+
</bin>
|
452
|
+
<bin units="G" lower_threshold="0.9" upper_threshold="1">
|
453
|
+
0
|
454
|
+
</bin>
|
455
|
+
<bin units="G" lower_threshold="1" upper_threshold="2">
|
456
|
+
0
|
457
|
+
</bin>
|
458
|
+
<bin units="G" lower_threshold="2">
|
459
|
+
0
|
460
|
+
</bin>
|
461
|
+
</deceleration_histogram>
|
462
|
+
</event>
|
463
|
+
<event type="EV_DLC_DISCONNECT" date="04/20/2011" time="12:15:18"/>
|
464
|
+
<event type="EV_DLC_CONNECT" date="04/20/2011" time="12:58:57"/>
|
465
|
+
<event type="EV_HOST_CONNECT" date="04/20/2011" time="13:18:35"/>
|
466
|
+
</event_list>
|
467
|
+
|
468
|
+
EOXML
|
469
|
+
end
|
470
|
+
|
471
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: prova-vhm-raw2xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Tony Summerville
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-03-
|
13
|
+
date: 2012-03-10 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ffi
|
@@ -85,12 +85,17 @@ files:
|
|
85
85
|
- README.rdoc
|
86
86
|
- Rakefile
|
87
87
|
- VERSION
|
88
|
-
- lib/libZVLParser/libZVLParser32.so
|
89
|
-
- lib/libZVLParser/libZVLParser64.so
|
88
|
+
- lib/libZVLParser/linux/libZVLParser32.so
|
89
|
+
- lib/libZVLParser/linux/libZVLParser64.so
|
90
|
+
- lib/libZVLParser/mac/libZVLParser32.so
|
91
|
+
- lib/libZVLParser/mac/libZVLParser64.so
|
90
92
|
- lib/prova-vhm-raw2xml.rb
|
91
93
|
- prova-vhm-raw2xml.gemspec
|
92
94
|
- spec/prova-vhm-raw2xml_spec.rb
|
93
95
|
- spec/spec_helper.rb
|
96
|
+
- spec/support/file_helpers.rb
|
97
|
+
- spec/support/test.raw
|
98
|
+
- spec/support/xml_helpers.rb
|
94
99
|
homepage: http://github.com/rarestep/prova-vhm-raw2xml
|
95
100
|
licenses:
|
96
101
|
- MIT
|
@@ -104,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
109
|
requirements:
|
105
110
|
- - ">="
|
106
111
|
- !ruby/object:Gem::Version
|
107
|
-
hash: -
|
112
|
+
hash: -1305777079584967746
|
108
113
|
segments:
|
109
114
|
- 0
|
110
115
|
version: "0"
|