nhtsa_vin 0.0.1
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 +7 -0
- data/.gitignore +6 -0
- data/.rspec +1 -0
- data/CHANGELOG.md +0 -0
- data/CONTRIBUTING.md +9 -0
- data/Gemfile +3 -0
- data/LICENSE +21 -0
- data/README.md +44 -0
- data/Rakefile +7 -0
- data/lib/nhtsa_vin.rb +13 -0
- data/lib/nhtsa_vin/query.rb +96 -0
- data/lib/nhtsa_vin/version.rb +3 -0
- data/nhtsa_vin.gemspec +24 -0
- data/spec/fixtures/not_found.json +586 -0
- data/spec/fixtures/success.json +586 -0
- data/spec/lib/nhtsa_vin/query_spec.rb +59 -0
- data/spec/spec_helper.rb +1 -0
- metadata +120 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 229a1d9a1796b76010ca429bfbb4bb8c81231f84
|
4
|
+
data.tar.gz: fa8190298f3a7c40c60c37cb56888f9423c18cb3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0d44d9bb2df77c7abc880d378a48e72700a8b75546ed454dee0bc06d17e35f2022459530ecca71ba46694a1bfcdb909ec230030e9da27623804c17ca64b38ac3
|
7
|
+
data.tar.gz: 852880cac552c1fa041811fd15caea7a495bb5cdd0fc38826247b99a375cbd58c1bc7283d84609c7213bca6b251905b6d04e386402dbd80a8e6971e0e80f49e4
|
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color --format documentation
|
data/CHANGELOG.md
ADDED
File without changes
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
## Contributing
|
2
|
+
|
3
|
+
1. Fork the nhtsa_vin project
|
4
|
+
2. Create your feature branch (`git checkout -b my-new-awesome-feature`)
|
5
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
6
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
7
|
+
5. Create new Pull Request
|
8
|
+
|
9
|
+
All incoming PRs are expected to be well documented, and have supporting tests.
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2018 Deliv
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# NHTSA Vin
|
2
|
+
----
|
3
|
+
|
4
|
+
A ruby gem for fetching and parsing vehicle identification via the vehicle identification number (VIN) from the [NHTSA webservice](https://vpic.nhtsa.dot.gov/api/Home). Note, this gem is not officially affiliated with the NHTSA.
|
5
|
+
|
6
|
+
Please note, this gem is currently in early development.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
gem 'nhsta_vin'
|
14
|
+
```
|
15
|
+
|
16
|
+
And then execute:
|
17
|
+
|
18
|
+
bundle
|
19
|
+
|
20
|
+
Or install it yourself as:
|
21
|
+
|
22
|
+
gem install nhsta_vin
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
Usage is fairly simple. Provide a VIN, and the gem will return a struct of vehicle data.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
query = NhtsaVin.get('1J4BA5H11AL143811')
|
30
|
+
query.valid? # => true
|
31
|
+
query.response # => <Struct::NhtsaResponse make="Jeep", model="Grand Cherokee", trim="Laredo/Rocky Mountain Edition", type="SUV", year="2008", size=nil, ... doors=4>
|
32
|
+
```
|
33
|
+
|
34
|
+
In the result no match is found, the result will be `nil`, and `#valid?` will return `false`.
|
35
|
+
|
36
|
+
Vehicle Types
|
37
|
+
----
|
38
|
+
|
39
|
+
For brievity, we're reducing the `Vehicle Type` response to an enumerated set of `["Car", "Truck", "Van", "SUV", "Minivan"]`. We're doing a rough parse of the type and body style to achieve this. It's probably not perfect.
|
40
|
+
|
41
|
+
|
42
|
+
## License
|
43
|
+
|
44
|
+
Licensed under the MIT License.
|
data/Rakefile
ADDED
data/lib/nhtsa_vin.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module NhtsaVin
|
5
|
+
class Query
|
6
|
+
|
7
|
+
NHTSA_URL = 'https://vpic.nhtsa.dot.gov/api/vehicles/decodevin/'.freeze
|
8
|
+
|
9
|
+
attr_reader :vin, :url, :response, :raw_response
|
10
|
+
|
11
|
+
def initialize(vin, options={})
|
12
|
+
@vin = vin
|
13
|
+
build_url
|
14
|
+
end
|
15
|
+
|
16
|
+
def get
|
17
|
+
@raw_response = fetch
|
18
|
+
parse(JSON.parse(@raw_response))
|
19
|
+
end
|
20
|
+
|
21
|
+
def valid?
|
22
|
+
@valid
|
23
|
+
end
|
24
|
+
|
25
|
+
def parse(json)
|
26
|
+
@data = json['Results']
|
27
|
+
|
28
|
+
# 0 - Good
|
29
|
+
# 1 - VIN decoded clean. Check Digit (9th position) does not calculate properly.
|
30
|
+
# 3 - VIN corrected, error in one position (assuming Check Digit is correct).
|
31
|
+
# 5 - VIN has errors in few positions.
|
32
|
+
# 6 - Incomplete VIN.
|
33
|
+
# 8 - No detailed data available currently.
|
34
|
+
# 11- Incorrect Model Year, decoded data may not be accurate!
|
35
|
+
@valid = (value_id_for('Error Code').to_i < 4) ? true : false
|
36
|
+
return unless valid?
|
37
|
+
|
38
|
+
make = value_for('Make').capitalize
|
39
|
+
model = value_for('Model')
|
40
|
+
trim = value_for('Trim')
|
41
|
+
year = value_for('Model Year')
|
42
|
+
style = value_for('Body Class')
|
43
|
+
type = vehicle_type(style, value_for('Vehicle Type'))
|
44
|
+
doors = value_for('Doors')&.to_i
|
45
|
+
|
46
|
+
@response = Struct::NhtsaResponse.new(@vin, make, model, trim, type, year,
|
47
|
+
style, value_for('Vehicle Type'), doors)
|
48
|
+
end
|
49
|
+
|
50
|
+
def vehicle_type(body_class, type)
|
51
|
+
return case type
|
52
|
+
when 'PASSENGER CAR'
|
53
|
+
'Car'
|
54
|
+
when 'TRUCK'
|
55
|
+
if body_class =~ /van/i
|
56
|
+
'Van'
|
57
|
+
else
|
58
|
+
'Truck'
|
59
|
+
end
|
60
|
+
when 'MULTIPURPOSE PASSENGER VEHICLE (MPV)'
|
61
|
+
if body_class =~ /Sport Utility/i
|
62
|
+
'SUV'
|
63
|
+
else
|
64
|
+
'Minivan'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def get_row(attr_name)
|
72
|
+
@data.select { |r| r['Variable'] == attr_name }.first
|
73
|
+
end
|
74
|
+
|
75
|
+
def value_for(attr_name)
|
76
|
+
get_row(attr_name)['Value']
|
77
|
+
end
|
78
|
+
|
79
|
+
def value_id_for(attr_name)
|
80
|
+
get_row(attr_name)['ValueId']
|
81
|
+
end
|
82
|
+
|
83
|
+
def build_url
|
84
|
+
@url = "#{NHTSA_URL}#{@vin}?format=json"
|
85
|
+
end
|
86
|
+
|
87
|
+
def fetch
|
88
|
+
Net::HTTP.get(URI.parse(@url))
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
Struct.new('NhtsaResponse', :vin, :make, :model, :trim, :type, :year,
|
94
|
+
:body_style, :vehicle_class, :doors)
|
95
|
+
end
|
96
|
+
|
data/nhtsa_vin.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.expand_path('../lib/nhtsa_vin/version', __FILE__)
|
2
|
+
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.name = 'nhtsa_vin'
|
5
|
+
gem.version = NhtsaVin::VERSION
|
6
|
+
gem.platform = Gem::Platform::RUBY
|
7
|
+
|
8
|
+
gem.summary = 'A ruby library for accessing vin records from the NHTSA'
|
9
|
+
gem.description = IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
10
|
+
gem.homepage = 'https://github.com/deliv/nhtsa_vin'
|
11
|
+
gem.licenses = ['MIT']
|
12
|
+
gem.authors = ['Barclay Loftus']
|
13
|
+
gem.email = ['barclay@deliv.co']
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($\)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ['lib']
|
19
|
+
|
20
|
+
gem.required_ruby_version = '>= 2.3.0'
|
21
|
+
gem.add_development_dependency 'rake'
|
22
|
+
gem.add_development_dependency 'bundler'
|
23
|
+
gem.add_development_dependency 'rspec'
|
24
|
+
end
|
@@ -0,0 +1,586 @@
|
|
1
|
+
{
|
2
|
+
"Count": 116,
|
3
|
+
"Message": "Results returned successfully",
|
4
|
+
"SearchCriteria": "VIN:tacos",
|
5
|
+
"Results": [{
|
6
|
+
"Value": "",
|
7
|
+
"ValueId": "",
|
8
|
+
"Variable": "Suggested VIN",
|
9
|
+
"VariableId": 142
|
10
|
+
}, {
|
11
|
+
"Value": "11- Incorrect Model Year, decoded data may not be accurate!",
|
12
|
+
"ValueId": "11",
|
13
|
+
"Variable": "Error Code",
|
14
|
+
"VariableId": 143
|
15
|
+
}, {
|
16
|
+
"Value": "",
|
17
|
+
"ValueId": "",
|
18
|
+
"Variable": "Possible Values",
|
19
|
+
"VariableId": 144
|
20
|
+
}, {
|
21
|
+
"Value": "",
|
22
|
+
"ValueId": "",
|
23
|
+
"Variable": "Additional Error Text",
|
24
|
+
"VariableId": 156
|
25
|
+
}, {
|
26
|
+
"Value": null,
|
27
|
+
"ValueId": null,
|
28
|
+
"Variable": "Destination Market",
|
29
|
+
"VariableId": 10
|
30
|
+
}, {
|
31
|
+
"Value": null,
|
32
|
+
"ValueId": null,
|
33
|
+
"Variable": "Make",
|
34
|
+
"VariableId": 26
|
35
|
+
}, {
|
36
|
+
"Value": null,
|
37
|
+
"ValueId": null,
|
38
|
+
"Variable": "Manufacturer Name",
|
39
|
+
"VariableId": 27
|
40
|
+
}, {
|
41
|
+
"Value": null,
|
42
|
+
"ValueId": null,
|
43
|
+
"Variable": "Model",
|
44
|
+
"VariableId": 28
|
45
|
+
}, {
|
46
|
+
"Value": null,
|
47
|
+
"ValueId": "",
|
48
|
+
"Variable": "Model Year",
|
49
|
+
"VariableId": 29
|
50
|
+
}, {
|
51
|
+
"Value": null,
|
52
|
+
"ValueId": "",
|
53
|
+
"Variable": "Plant City",
|
54
|
+
"VariableId": 31
|
55
|
+
}, {
|
56
|
+
"Value": null,
|
57
|
+
"ValueId": "",
|
58
|
+
"Variable": "Series",
|
59
|
+
"VariableId": 34
|
60
|
+
}, {
|
61
|
+
"Value": null,
|
62
|
+
"ValueId": "",
|
63
|
+
"Variable": "Trim",
|
64
|
+
"VariableId": 38
|
65
|
+
}, {
|
66
|
+
"Value": null,
|
67
|
+
"ValueId": null,
|
68
|
+
"Variable": "Vehicle Type",
|
69
|
+
"VariableId": 39
|
70
|
+
}, {
|
71
|
+
"Value": null,
|
72
|
+
"ValueId": null,
|
73
|
+
"Variable": "Plant Country",
|
74
|
+
"VariableId": 75
|
75
|
+
}, {
|
76
|
+
"Value": null,
|
77
|
+
"ValueId": "",
|
78
|
+
"Variable": "Plant Company Name",
|
79
|
+
"VariableId": 76
|
80
|
+
}, {
|
81
|
+
"Value": null,
|
82
|
+
"ValueId": "",
|
83
|
+
"Variable": "Plant State",
|
84
|
+
"VariableId": 77
|
85
|
+
}, {
|
86
|
+
"Value": null,
|
87
|
+
"ValueId": "",
|
88
|
+
"Variable": "Trim2",
|
89
|
+
"VariableId": 109
|
90
|
+
}, {
|
91
|
+
"Value": null,
|
92
|
+
"ValueId": "",
|
93
|
+
"Variable": "Series2",
|
94
|
+
"VariableId": 110
|
95
|
+
}, {
|
96
|
+
"Value": null,
|
97
|
+
"ValueId": "",
|
98
|
+
"Variable": "Note",
|
99
|
+
"VariableId": 114
|
100
|
+
}, {
|
101
|
+
"Value": null,
|
102
|
+
"ValueId": "",
|
103
|
+
"Variable": "Base Price ($)",
|
104
|
+
"VariableId": 136
|
105
|
+
}, {
|
106
|
+
"Value": null,
|
107
|
+
"ValueId": "",
|
108
|
+
"Variable": "Manufacturer Id",
|
109
|
+
"VariableId": 157
|
110
|
+
}, {
|
111
|
+
"Value": null,
|
112
|
+
"ValueId": "",
|
113
|
+
"Variable": "Cash For Clunkers",
|
114
|
+
"VariableId": 158
|
115
|
+
}, {
|
116
|
+
"Value": null,
|
117
|
+
"ValueId": null,
|
118
|
+
"Variable": "Body Class",
|
119
|
+
"VariableId": 5
|
120
|
+
}, {
|
121
|
+
"Value": null,
|
122
|
+
"ValueId": "",
|
123
|
+
"Variable": "Doors",
|
124
|
+
"VariableId": 14
|
125
|
+
}, {
|
126
|
+
"Value": null,
|
127
|
+
"ValueId": "",
|
128
|
+
"Variable": "Windows",
|
129
|
+
"VariableId": 40
|
130
|
+
}, {
|
131
|
+
"Value": null,
|
132
|
+
"ValueId": null,
|
133
|
+
"Variable": "Wheel Base Type",
|
134
|
+
"VariableId": 60
|
135
|
+
}, {
|
136
|
+
"Value": null,
|
137
|
+
"ValueId": "",
|
138
|
+
"Variable": "Track Width",
|
139
|
+
"VariableId": 159
|
140
|
+
}, {
|
141
|
+
"Value": null,
|
142
|
+
"ValueId": null,
|
143
|
+
"Variable": "Gross Vehicle Weight Rating",
|
144
|
+
"VariableId": 25
|
145
|
+
}, {
|
146
|
+
"Value": null,
|
147
|
+
"ValueId": "",
|
148
|
+
"Variable": "Bed Length (inches)",
|
149
|
+
"VariableId": 49
|
150
|
+
}, {
|
151
|
+
"Value": null,
|
152
|
+
"ValueId": "",
|
153
|
+
"Variable": "Curb Weight (pounds)",
|
154
|
+
"VariableId": 54
|
155
|
+
}, {
|
156
|
+
"Value": null,
|
157
|
+
"ValueId": "",
|
158
|
+
"Variable": "Wheel Base (inches)",
|
159
|
+
"VariableId": 111
|
160
|
+
}, {
|
161
|
+
"Value": null,
|
162
|
+
"ValueId": "",
|
163
|
+
"Variable": "Wheel Base (inches) up to",
|
164
|
+
"VariableId": 112
|
165
|
+
}, {
|
166
|
+
"Value": null,
|
167
|
+
"ValueId": null,
|
168
|
+
"Variable": "Bed Type",
|
169
|
+
"VariableId": 3
|
170
|
+
}, {
|
171
|
+
"Value": null,
|
172
|
+
"ValueId": null,
|
173
|
+
"Variable": "Cab Type",
|
174
|
+
"VariableId": 4
|
175
|
+
}, {
|
176
|
+
"Value": null,
|
177
|
+
"ValueId": null,
|
178
|
+
"Variable": "Trailer Type Connection",
|
179
|
+
"VariableId": 116
|
180
|
+
}, {
|
181
|
+
"Value": null,
|
182
|
+
"ValueId": null,
|
183
|
+
"Variable": "Trailer Body Type",
|
184
|
+
"VariableId": 117
|
185
|
+
}, {
|
186
|
+
"Value": null,
|
187
|
+
"ValueId": "",
|
188
|
+
"Variable": "Trailer Length (feet)",
|
189
|
+
"VariableId": 118
|
190
|
+
}, {
|
191
|
+
"Value": null,
|
192
|
+
"ValueId": "",
|
193
|
+
"Variable": "Other Trailer Info",
|
194
|
+
"VariableId": 155
|
195
|
+
}, {
|
196
|
+
"Value": null,
|
197
|
+
"ValueId": "",
|
198
|
+
"Variable": "Number of Wheels",
|
199
|
+
"VariableId": 115
|
200
|
+
}, {
|
201
|
+
"Value": null,
|
202
|
+
"ValueId": "",
|
203
|
+
"Variable": "Wheel Size Front (inches)",
|
204
|
+
"VariableId": 119
|
205
|
+
}, {
|
206
|
+
"Value": null,
|
207
|
+
"ValueId": "",
|
208
|
+
"Variable": "Wheel Size Rear (inches)",
|
209
|
+
"VariableId": 120
|
210
|
+
}, {
|
211
|
+
"Value": null,
|
212
|
+
"ValueId": null,
|
213
|
+
"Variable": "Entertainment System",
|
214
|
+
"VariableId": 23
|
215
|
+
}, {
|
216
|
+
"Value": null,
|
217
|
+
"ValueId": null,
|
218
|
+
"Variable": "Steering Location",
|
219
|
+
"VariableId": 36
|
220
|
+
}, {
|
221
|
+
"Value": null,
|
222
|
+
"ValueId": "",
|
223
|
+
"Variable": "Number of Seats",
|
224
|
+
"VariableId": 33
|
225
|
+
}, {
|
226
|
+
"Value": null,
|
227
|
+
"ValueId": "",
|
228
|
+
"Variable": "Number of Seat Rows",
|
229
|
+
"VariableId": 61
|
230
|
+
}, {
|
231
|
+
"Value": null,
|
232
|
+
"ValueId": null,
|
233
|
+
"Variable": "Transmission Style",
|
234
|
+
"VariableId": 37
|
235
|
+
}, {
|
236
|
+
"Value": null,
|
237
|
+
"ValueId": "",
|
238
|
+
"Variable": "Transmission Speeds",
|
239
|
+
"VariableId": 63
|
240
|
+
}, {
|
241
|
+
"Value": null,
|
242
|
+
"ValueId": null,
|
243
|
+
"Variable": "Drive Type",
|
244
|
+
"VariableId": 15
|
245
|
+
}, {
|
246
|
+
"Value": null,
|
247
|
+
"ValueId": "",
|
248
|
+
"Variable": "Axles",
|
249
|
+
"VariableId": 41
|
250
|
+
}, {
|
251
|
+
"Value": null,
|
252
|
+
"ValueId": null,
|
253
|
+
"Variable": "Axle Configuration",
|
254
|
+
"VariableId": 145
|
255
|
+
}, {
|
256
|
+
"Value": null,
|
257
|
+
"ValueId": null,
|
258
|
+
"Variable": "Brake System Type",
|
259
|
+
"VariableId": 42
|
260
|
+
}, {
|
261
|
+
"Value": null,
|
262
|
+
"ValueId": "",
|
263
|
+
"Variable": "Brake System Description",
|
264
|
+
"VariableId": 52
|
265
|
+
}, {
|
266
|
+
"Value": null,
|
267
|
+
"ValueId": "",
|
268
|
+
"Variable": "Battery Info",
|
269
|
+
"VariableId": 1
|
270
|
+
}, {
|
271
|
+
"Value": null,
|
272
|
+
"ValueId": null,
|
273
|
+
"Variable": "Battery Type",
|
274
|
+
"VariableId": 2
|
275
|
+
}, {
|
276
|
+
"Value": null,
|
277
|
+
"ValueId": "",
|
278
|
+
"Variable": "Number of Battery Cells per Module",
|
279
|
+
"VariableId": 48
|
280
|
+
}, {
|
281
|
+
"Value": null,
|
282
|
+
"ValueId": "",
|
283
|
+
"Variable": "Battery Current (Amps)",
|
284
|
+
"VariableId": 57
|
285
|
+
}, {
|
286
|
+
"Value": null,
|
287
|
+
"ValueId": "",
|
288
|
+
"Variable": "Battery Voltage (Volts)",
|
289
|
+
"VariableId": 58
|
290
|
+
}, {
|
291
|
+
"Value": null,
|
292
|
+
"ValueId": "",
|
293
|
+
"Variable": "Battery Energy (KWh)",
|
294
|
+
"VariableId": 59
|
295
|
+
}, {
|
296
|
+
"Value": null,
|
297
|
+
"ValueId": null,
|
298
|
+
"Variable": "EV Drive Unit",
|
299
|
+
"VariableId": 72
|
300
|
+
}, {
|
301
|
+
"Value": null,
|
302
|
+
"ValueId": "",
|
303
|
+
"Variable": "Battery Current (Amps) up to",
|
304
|
+
"VariableId": 132
|
305
|
+
}, {
|
306
|
+
"Value": null,
|
307
|
+
"ValueId": "",
|
308
|
+
"Variable": "Battery Voltage (Volts) up to",
|
309
|
+
"VariableId": 133
|
310
|
+
}, {
|
311
|
+
"Value": null,
|
312
|
+
"ValueId": "",
|
313
|
+
"Variable": "Battery Energy (KWh) up to",
|
314
|
+
"VariableId": 134
|
315
|
+
}, {
|
316
|
+
"Value": null,
|
317
|
+
"ValueId": "",
|
318
|
+
"Variable": "Number of Battery Modules per Pack",
|
319
|
+
"VariableId": 137
|
320
|
+
}, {
|
321
|
+
"Value": null,
|
322
|
+
"ValueId": "",
|
323
|
+
"Variable": "Number of Battery Packs per Vehicle",
|
324
|
+
"VariableId": 138
|
325
|
+
}, {
|
326
|
+
"Value": null,
|
327
|
+
"ValueId": null,
|
328
|
+
"Variable": "Charger Level",
|
329
|
+
"VariableId": 127
|
330
|
+
}, {
|
331
|
+
"Value": null,
|
332
|
+
"ValueId": "",
|
333
|
+
"Variable": "Charger Power (KW)",
|
334
|
+
"VariableId": 128
|
335
|
+
}, {
|
336
|
+
"Value": null,
|
337
|
+
"ValueId": "",
|
338
|
+
"Variable": "Engine Number of Cylinders",
|
339
|
+
"VariableId": 9
|
340
|
+
}, {
|
341
|
+
"Value": null,
|
342
|
+
"ValueId": "",
|
343
|
+
"Variable": "Displacement (CC)",
|
344
|
+
"VariableId": 11
|
345
|
+
}, {
|
346
|
+
"Value": null,
|
347
|
+
"ValueId": "",
|
348
|
+
"Variable": "Displacement (CI)",
|
349
|
+
"VariableId": 12
|
350
|
+
}, {
|
351
|
+
"Value": null,
|
352
|
+
"ValueId": "",
|
353
|
+
"Variable": "Displacement (L)",
|
354
|
+
"VariableId": 13
|
355
|
+
}, {
|
356
|
+
"Value": null,
|
357
|
+
"ValueId": "",
|
358
|
+
"Variable": "Engine Stroke Cycles",
|
359
|
+
"VariableId": 17
|
360
|
+
}, {
|
361
|
+
"Value": null,
|
362
|
+
"ValueId": "",
|
363
|
+
"Variable": "Engine Model",
|
364
|
+
"VariableId": 18
|
365
|
+
}, {
|
366
|
+
"Value": null,
|
367
|
+
"ValueId": "",
|
368
|
+
"Variable": "Engine Power (KW)",
|
369
|
+
"VariableId": 21
|
370
|
+
}, {
|
371
|
+
"Value": null,
|
372
|
+
"ValueId": null,
|
373
|
+
"Variable": "Fuel Type - Primary",
|
374
|
+
"VariableId": 24
|
375
|
+
}, {
|
376
|
+
"Value": null,
|
377
|
+
"ValueId": null,
|
378
|
+
"Variable": "Valve Train Design",
|
379
|
+
"VariableId": 62
|
380
|
+
}, {
|
381
|
+
"Value": null,
|
382
|
+
"ValueId": null,
|
383
|
+
"Variable": "Engine Configuration",
|
384
|
+
"VariableId": 64
|
385
|
+
}, {
|
386
|
+
"Value": null,
|
387
|
+
"ValueId": null,
|
388
|
+
"Variable": "Fuel Type - Secondary",
|
389
|
+
"VariableId": 66
|
390
|
+
}, {
|
391
|
+
"Value": null,
|
392
|
+
"ValueId": null,
|
393
|
+
"Variable": "Fuel Delivery \/ Fuel Injection Type",
|
394
|
+
"VariableId": 67
|
395
|
+
}, {
|
396
|
+
"Value": null,
|
397
|
+
"ValueId": "",
|
398
|
+
"Variable": "Engine Brake (hp)",
|
399
|
+
"VariableId": 71
|
400
|
+
}, {
|
401
|
+
"Value": null,
|
402
|
+
"ValueId": null,
|
403
|
+
"Variable": "Cooling Type",
|
404
|
+
"VariableId": 122
|
405
|
+
}, {
|
406
|
+
"Value": null,
|
407
|
+
"ValueId": "",
|
408
|
+
"Variable": "Engine Brake (hp) up to",
|
409
|
+
"VariableId": 125
|
410
|
+
}, {
|
411
|
+
"Value": null,
|
412
|
+
"ValueId": null,
|
413
|
+
"Variable": "Electrification Level",
|
414
|
+
"VariableId": 126
|
415
|
+
}, {
|
416
|
+
"Value": null,
|
417
|
+
"ValueId": "",
|
418
|
+
"Variable": "Other Engine Info",
|
419
|
+
"VariableId": 129
|
420
|
+
}, {
|
421
|
+
"Value": null,
|
422
|
+
"ValueId": null,
|
423
|
+
"Variable": "Turbo",
|
424
|
+
"VariableId": 135
|
425
|
+
}, {
|
426
|
+
"Value": null,
|
427
|
+
"ValueId": "",
|
428
|
+
"Variable": "Top Speed (MPH)",
|
429
|
+
"VariableId": 139
|
430
|
+
}, {
|
431
|
+
"Value": null,
|
432
|
+
"ValueId": "",
|
433
|
+
"Variable": "Engine Manufacturer",
|
434
|
+
"VariableId": 146
|
435
|
+
}, {
|
436
|
+
"Value": null,
|
437
|
+
"ValueId": null,
|
438
|
+
"Variable": "Pretensioner",
|
439
|
+
"VariableId": 78
|
440
|
+
}, {
|
441
|
+
"Value": null,
|
442
|
+
"ValueId": null,
|
443
|
+
"Variable": "Seat Belts Type",
|
444
|
+
"VariableId": 79
|
445
|
+
}, {
|
446
|
+
"Value": null,
|
447
|
+
"ValueId": "",
|
448
|
+
"Variable": "Other Restraint System Info",
|
449
|
+
"VariableId": 121
|
450
|
+
}, {
|
451
|
+
"Value": null,
|
452
|
+
"ValueId": null,
|
453
|
+
"Variable": "Curtain Air Bag Locations",
|
454
|
+
"VariableId": 55
|
455
|
+
}, {
|
456
|
+
"Value": null,
|
457
|
+
"ValueId": null,
|
458
|
+
"Variable": "Seat Cushion Air Bag Locations",
|
459
|
+
"VariableId": 56
|
460
|
+
}, {
|
461
|
+
"Value": null,
|
462
|
+
"ValueId": null,
|
463
|
+
"Variable": "Front Air Bag Locations",
|
464
|
+
"VariableId": 65
|
465
|
+
}, {
|
466
|
+
"Value": null,
|
467
|
+
"ValueId": null,
|
468
|
+
"Variable": "Knee Air Bag Locations",
|
469
|
+
"VariableId": 69
|
470
|
+
}, {
|
471
|
+
"Value": null,
|
472
|
+
"ValueId": null,
|
473
|
+
"Variable": "Side Air Bag Locations",
|
474
|
+
"VariableId": 107
|
475
|
+
}, {
|
476
|
+
"Value": null,
|
477
|
+
"ValueId": null,
|
478
|
+
"Variable": "Driver Assist",
|
479
|
+
"VariableId": 16
|
480
|
+
}, {
|
481
|
+
"Value": null,
|
482
|
+
"ValueId": null,
|
483
|
+
"Variable": "Adaptive Cruise Control",
|
484
|
+
"VariableId": 81
|
485
|
+
}, {
|
486
|
+
"Value": null,
|
487
|
+
"ValueId": null,
|
488
|
+
"Variable": "Adaptive Headlights",
|
489
|
+
"VariableId": 82
|
490
|
+
}, {
|
491
|
+
"Value": null,
|
492
|
+
"ValueId": null,
|
493
|
+
"Variable": "Anti-lock Braking System (ABS)",
|
494
|
+
"VariableId": 86
|
495
|
+
}, {
|
496
|
+
"Value": null,
|
497
|
+
"ValueId": null,
|
498
|
+
"Variable": "Auto Brake \/ Auto Emergency Braking",
|
499
|
+
"VariableId": 87
|
500
|
+
}, {
|
501
|
+
"Value": null,
|
502
|
+
"ValueId": null,
|
503
|
+
"Variable": "Blind Spot Monitoring \/ Detection",
|
504
|
+
"VariableId": 88
|
505
|
+
}, {
|
506
|
+
"Value": null,
|
507
|
+
"ValueId": null,
|
508
|
+
"Variable": "Electronic Stability Control (ESC)",
|
509
|
+
"VariableId": 99
|
510
|
+
}, {
|
511
|
+
"Value": null,
|
512
|
+
"ValueId": null,
|
513
|
+
"Variable": "Traction Control",
|
514
|
+
"VariableId": 100
|
515
|
+
}, {
|
516
|
+
"Value": null,
|
517
|
+
"ValueId": null,
|
518
|
+
"Variable": "Forward Collision Warning",
|
519
|
+
"VariableId": 101
|
520
|
+
}, {
|
521
|
+
"Value": null,
|
522
|
+
"ValueId": null,
|
523
|
+
"Variable": "Lane Departure Warning",
|
524
|
+
"VariableId": 102
|
525
|
+
}, {
|
526
|
+
"Value": null,
|
527
|
+
"ValueId": null,
|
528
|
+
"Variable": "Lane Keep System",
|
529
|
+
"VariableId": 103
|
530
|
+
}, {
|
531
|
+
"Value": null,
|
532
|
+
"ValueId": null,
|
533
|
+
"Variable": "Rear Visibility Camera",
|
534
|
+
"VariableId": 104
|
535
|
+
}, {
|
536
|
+
"Value": null,
|
537
|
+
"ValueId": null,
|
538
|
+
"Variable": "Park Assist",
|
539
|
+
"VariableId": 105
|
540
|
+
}, {
|
541
|
+
"Value": null,
|
542
|
+
"ValueId": null,
|
543
|
+
"Variable": "TPMS",
|
544
|
+
"VariableId": 168
|
545
|
+
}, {
|
546
|
+
"Value": null,
|
547
|
+
"ValueId": "",
|
548
|
+
"Variable": "Bus Length (feet)",
|
549
|
+
"VariableId": 147
|
550
|
+
}, {
|
551
|
+
"Value": null,
|
552
|
+
"ValueId": null,
|
553
|
+
"Variable": "Bus Floor Configuration Type",
|
554
|
+
"VariableId": 148
|
555
|
+
}, {
|
556
|
+
"Value": null,
|
557
|
+
"ValueId": null,
|
558
|
+
"Variable": "Bus Type",
|
559
|
+
"VariableId": 149
|
560
|
+
}, {
|
561
|
+
"Value": null,
|
562
|
+
"ValueId": "",
|
563
|
+
"Variable": "Other Bus Info",
|
564
|
+
"VariableId": 150
|
565
|
+
}, {
|
566
|
+
"Value": null,
|
567
|
+
"ValueId": null,
|
568
|
+
"Variable": "Custom Motorcycle Type",
|
569
|
+
"VariableId": 151
|
570
|
+
}, {
|
571
|
+
"Value": null,
|
572
|
+
"ValueId": null,
|
573
|
+
"Variable": "Motorcycle Suspension Type",
|
574
|
+
"VariableId": 152
|
575
|
+
}, {
|
576
|
+
"Value": null,
|
577
|
+
"ValueId": null,
|
578
|
+
"Variable": "Motorcycle Chassis Type",
|
579
|
+
"VariableId": 153
|
580
|
+
}, {
|
581
|
+
"Value": null,
|
582
|
+
"ValueId": "",
|
583
|
+
"Variable": "Other Motorcycle Info",
|
584
|
+
"VariableId": 154
|
585
|
+
}]
|
586
|
+
}
|