RUIC 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY +23 -0
- data/README.md +2 -2
- data/lib/ruic.rb +11 -3
- data/lib/ruic/application.rb +28 -22
- data/lib/ruic/attributes.rb +10 -2
- data/lib/ruic/behaviors.rb +2 -15
- data/lib/ruic/effect.rb +32 -0
- data/lib/ruic/interfaces.rb +51 -13
- data/lib/ruic/presentation.rb +46 -20
- data/lib/ruic/renderplugin.rb +18 -0
- data/lib/ruic/ripl.rb +45 -0
- data/lib/ruic/statemachine.rb +142 -25
- data/lib/ruic/version.rb +1 -1
- data/test/customclasses.ruic +0 -1
- data/test/filtering.ruic +0 -1
- data/test/futureassets.ruic +0 -1
- data/test/nonmaster.ruic +0 -1
- data/test/paths.ruic +0 -2
- data/test/projects/MissingAssets/Existing.uip +87 -0
- data/test/projects/MissingAssets/MissingAssets.uia +21 -0
- data/test/projects/MissingAssets/MissingAssets.uia-user +14 -0
- data/test/projects/MissingAssets/RoundedPlane-1/RoundedPlane-1.import +18 -0
- data/test/projects/MissingAssets/RoundedPlane-1/meshes/RoundedPlane.mesh +0 -0
- data/test/projects/MissingAssets/effects/effects.txt +3 -0
- data/test/projects/MissingAssets/effects/existing.effect +38 -0
- data/test/projects/MissingAssets/fonts/Arimo-Regular.ttf +0 -0
- data/test/projects/MissingAssets/fonts/Chivo-Black.ttf +0 -0
- data/test/projects/MissingAssets/fonts/OFL.txt +92 -0
- data/test/projects/MissingAssets/maps/effects/brushnoise.dds +0 -0
- data/test/projects/MissingAssets/maps/existing.png +0 -0
- data/test/projects/MissingAssets/maps/existing2.png +0 -0
- data/test/projects/MissingAssets/maps/maps.txt +2 -0
- data/test/projects/MissingAssets/maps/materials/concrete_plain.png +0 -0
- data/test/projects/MissingAssets/maps/materials/concrete_plain_bump.png +0 -0
- data/test/projects/MissingAssets/maps/materials/spherical_checker.png +0 -0
- data/test/projects/MissingAssets/maps/unused.png +0 -0
- data/test/projects/MissingAssets/materials/concrete.material +251 -0
- data/test/projects/MissingAssets/materials/materials.txt +3 -0
- data/test/projects/MissingAssets/scripts/existing1.lua +2 -0
- data/test/projects/MissingAssets/scripts/existing2.lua +470 -0
- data/test/projects/MissingAssets/states/existing.scxml +4 -0
- data/test/projects/MissingAssets/tests/interface-navigation.scxml-test +3 -0
- data/test/properties.ruic +0 -2
- data/test/referencematerials.ruic +0 -2
- data/test/usage.ruic +38 -4
- metadata +53 -3
- data/lib/ruic/ripl-after-result.rb +0 -25
@@ -0,0 +1,470 @@
|
|
1
|
+
-- Copyright (c) 2013 NVIDIA, Inc.
|
2
|
+
-- Provided under the MIT License: http://opensource.org/licenses/MIT
|
3
|
+
|
4
|
+
-- If we do not have the CAN bindings (from the CAN .dll or .so) then
|
5
|
+
-- this simulation code will be used to fire similar CAN events for testing.
|
6
|
+
if not CAN then
|
7
|
+
output( "CAN module not loaded, continuing with Lua simulation." )
|
8
|
+
|
9
|
+
-- *************************************************************************************************
|
10
|
+
-- *** CUSTOMIZE THE CODE BELOW ********************************************************************
|
11
|
+
-- *************************************************************************************************
|
12
|
+
|
13
|
+
local thePresentationAssetId = 'main' -- <presentation id="..."/> in the .uia for the initial presentation
|
14
|
+
local theRepeatDelay = 250 -- Milliseconds before a held key starts firing repeat events
|
15
|
+
local theRepeatPerSecond = 10 -- Number of events to fire each second while a key is held
|
16
|
+
|
17
|
+
function self:getSimulations()
|
18
|
+
-- See the reference manual for the keyboard KEY_ constants available.
|
19
|
+
return {
|
20
|
+
-- Menu Controls
|
21
|
+
{ key=KEY_TAB, messages={"input.menu"} },
|
22
|
+
{ key=KEY_LEFT, messages={"input.prev"} },
|
23
|
+
{ key=KEY_RIGHT, messages={"input.next"} },
|
24
|
+
{ key=KEY_UP, messages={"input.up"} },
|
25
|
+
{ key=KEY_DOWN, messages={"input.down"} },
|
26
|
+
{ key=KEY_BACK, messages={"input.back"} },
|
27
|
+
{ key=KEY_RETURN, messages={"input.ok"} },
|
28
|
+
|
29
|
+
-- Gears; each key press cycles through the messages
|
30
|
+
{ key=KEY_G, messages={"gear.p", "gear.r", "gear.n", "gear.d"} },
|
31
|
+
|
32
|
+
-- Warnings; each key press cycles through the messages
|
33
|
+
{ key=KEY_A, messages={"abs.on", "abs.off"} },
|
34
|
+
{ key=KEY_Y, messages={"battery.on", "battery.off"} },
|
35
|
+
{ key=KEY_R, messages={"brakefluid.on", "brakefluid.off"} },
|
36
|
+
{ key=KEY_E, messages={"checkengine.on", "checkengine.off"} },
|
37
|
+
{ key=KEY_C, messages={"cruise.on", "cruise.off"} },
|
38
|
+
{ key=KEY_D, messages={"fuellevel.on", "fuellevel.off"} },
|
39
|
+
{ key=KEY_Q, messages={"seatbelt.on", "seatbelt.off"} },
|
40
|
+
{ key=KEY_L, messages={"oilpressure.on", "oilpressure.off"} },
|
41
|
+
{ key=KEY_T, messages={"lowtire.on", "lowtire.off"} },
|
42
|
+
{ key=KEY_W, messages={"washerfluid.on", "washerfluid.off"} },
|
43
|
+
{ key=KEY_O, messages={"parkingbrake.on", "parkingbrake.off"} },
|
44
|
+
|
45
|
+
-- Indicators; each key press cycles through the messages
|
46
|
+
{ key=KEY_J, messages={"blinker.left.on", "blinker.off"} },
|
47
|
+
{ key=KEY_K, messages={"blinker.right.on", "blinker.off"} },
|
48
|
+
{ key=KEY_P, messages={"blinker.hazard.on", "blinker.off"} },
|
49
|
+
{ key=KEY_U, messages={"highbeam.on", "highbeam.off"} },
|
50
|
+
{ key=KEY_H, messages={"headlamp.on", "headlamp.off"} },
|
51
|
+
|
52
|
+
-- Media
|
53
|
+
{ key=KEY_V, messages={"media.volume.increase"} },
|
54
|
+
{ key=KEY_B, messages={"media.volume.decrease"} },
|
55
|
+
{ key=KEY_N, messages={"media.pause"} },
|
56
|
+
{ key=KEY_M, messages={"media.play"} },
|
57
|
+
|
58
|
+
-- Property values to simulate changes over time; new value is generated each frame
|
59
|
+
{ update=self.speedSim, messages={"vehicleSpeed"} },
|
60
|
+
{ update=self.tachSim, messages={"engineSpeed"} },
|
61
|
+
{ update=self.odoSim, messages={"odo"} },
|
62
|
+
{ update=self.odoSim, messages={"trip"} },
|
63
|
+
{ update=self.fuelSim, messages={"fuelLevel"} },
|
64
|
+
{ update=self.coolantSim, messages={"coolantTemp"} },
|
65
|
+
{ update=self.oilSim, messages={"oilTemp"} },
|
66
|
+
{ update=self.tireTempSim, messages={"tireTemp"} },
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
function self.speedSim( inController, inElapsedTime )
|
71
|
+
-- data based on 60fps
|
72
|
+
actualFrameNumber = math.floor(inElapsedTime * 60)
|
73
|
+
local theSample = (actualFrameNumber-1) % #self.vehicleSpeedData + 1
|
74
|
+
inController.value = self.vehicleSpeedData[theSample] * .06
|
75
|
+
end
|
76
|
+
|
77
|
+
function self.tachSim( inController, inElapsedTime )
|
78
|
+
-- data based on 60fps
|
79
|
+
actualFrameNumber = math.floor(inElapsedTime * 60)
|
80
|
+
local theSample = (actualFrameNumber-1) % #self.engineSpeedData + 1
|
81
|
+
inController.value = self.engineSpeedData[theSample] / 100
|
82
|
+
end
|
83
|
+
|
84
|
+
function self.odoSim( inController, inElapsedTime )
|
85
|
+
inController.value = inController.value + .0002
|
86
|
+
end
|
87
|
+
|
88
|
+
function self.fuelSim( inController, inElapsedTime )
|
89
|
+
inController.value = self.linearSampler( 0, 100, 60, inElapsedTime )
|
90
|
+
end
|
91
|
+
|
92
|
+
function self.tempSim( inController, inElapsedTime )
|
93
|
+
inController.value = self.sineSampler( 0, 260, 40, inElapsedTime )
|
94
|
+
end
|
95
|
+
|
96
|
+
function self.coolantSim( inController, inElapsedTime )
|
97
|
+
inController.value = self.sineSampler( 0, 300, 40, inElapsedTime )
|
98
|
+
end
|
99
|
+
|
100
|
+
function self.oilSim( inController, inElapsedTime )
|
101
|
+
inController.value = self.sineSampler( 0, 300, 200, inElapsedTime )
|
102
|
+
end
|
103
|
+
|
104
|
+
function self.tireTempSim( inController, inElapsedTime )
|
105
|
+
inController.value = self.sineSampler( 0, 300, 200, inElapsedTime )
|
106
|
+
end
|
107
|
+
|
108
|
+
-- *************************************************************************************************
|
109
|
+
-- *** END USER CUSTOMIZATIONS *********************************************************************
|
110
|
+
-- *************************************************************************************************
|
111
|
+
|
112
|
+
local theCatalog = {}
|
113
|
+
local theMessages = {}
|
114
|
+
CAN = {}
|
115
|
+
------------------------------------------------------------------------------------------
|
116
|
+
-- Return the current message catalog; typically only called a single time at startup
|
117
|
+
------------------------------------------------------------------------------------------
|
118
|
+
function CAN.getCatalog()
|
119
|
+
return theCatalog
|
120
|
+
end
|
121
|
+
|
122
|
+
------------------------------------------------------------------------------------------
|
123
|
+
-- Return the current queue of messages and clear the list for the next call.
|
124
|
+
-- This is typically called every frame.
|
125
|
+
------------------------------------------------------------------------------------------
|
126
|
+
function CAN.getMessages( inTime )
|
127
|
+
local theFrameMessages = theMessages
|
128
|
+
theMessages = {} -- Clear the current message buffer for the next frame
|
129
|
+
|
130
|
+
return theFrameMessages
|
131
|
+
end
|
132
|
+
|
133
|
+
----------------------------------------------------------------
|
134
|
+
-- Called once at startup to initialize the settings
|
135
|
+
----------------------------------------------------------------
|
136
|
+
function self:onInitialize()
|
137
|
+
self.bindings = {} -- key-based simulations, indexed by key code
|
138
|
+
self.controllers = {} -- list of update-based simulations
|
139
|
+
self.repeatTimeByBinding = {}
|
140
|
+
|
141
|
+
self.repeatDelay = theRepeatDelay / 1000
|
142
|
+
self.repeatPeriod = 1 / theRepeatPerSecond
|
143
|
+
|
144
|
+
for _,theEntry in ipairs(self:getSimulations()) do
|
145
|
+
-- Build the catalog messages from each entry
|
146
|
+
for _,theMessage in ipairs(theEntry.messages) do
|
147
|
+
theCatalog[theMessage] = theMessage
|
148
|
+
end
|
149
|
+
|
150
|
+
-- Build the key bindings from applicable entries
|
151
|
+
if theEntry.key then
|
152
|
+
self.bindings[theEntry.key] = {messages=theEntry.messages, value=0}
|
153
|
+
|
154
|
+
-- Else if this does not have a key binding and is updated each frame
|
155
|
+
elseif theEntry.update then
|
156
|
+
table.insert( self.controllers, {messages=theEntry.messages, value=0, update=theEntry.update} )
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
-- Register for key presses
|
161
|
+
local theScene = getElement( thePresentationAssetId..":Scene" )
|
162
|
+
registerForEvent( "onKeyDown", theScene, self.onKeyDown )
|
163
|
+
registerForEvent( "onKeyUp", theScene, self.onKeyUp )
|
164
|
+
end
|
165
|
+
|
166
|
+
function self:onKeyDown( inEventTarget, inKeyCode )
|
167
|
+
self:fireBinding( self.bindings[inKeyCode], self.repeatDelay )
|
168
|
+
end
|
169
|
+
|
170
|
+
function self:onKeyUp( inEventTarget, inKeyCode )
|
171
|
+
local theBinding = self.bindings[inKeyCode]
|
172
|
+
if theBinding then self.repeatTimeByBinding[theBinding] = nil end
|
173
|
+
end
|
174
|
+
|
175
|
+
function self:fireBinding( inBinding, inRepeatTime)
|
176
|
+
if inBinding then
|
177
|
+
local _,now = getElapsedTime()
|
178
|
+
-- Increment the state of the binding, wrapping as needed
|
179
|
+
inBinding.value = (inBinding.value % #inBinding.messages) + 1
|
180
|
+
|
181
|
+
-- Add the resulting message to the queue; do not pass a data field,
|
182
|
+
-- else this will be treated as a data value instead of an event
|
183
|
+
table.insert( theMessages, {command=inBinding.messages[inBinding.value]} )
|
184
|
+
self.repeatTimeByBinding[inBinding] = now + inRepeatTime
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
----------------------------------------------------------------
|
189
|
+
-- Called once per frame to update the simulations
|
190
|
+
----------------------------------------------------------------
|
191
|
+
function self:onUpdate()
|
192
|
+
local _,now = getElapsedTime()
|
193
|
+
|
194
|
+
for _,theController in ipairs(self.controllers) do
|
195
|
+
-- Update the value of the controller by calling its update function
|
196
|
+
theController.update( theController, now )
|
197
|
+
|
198
|
+
-- Generate messages for every associated message for this controller
|
199
|
+
for _,theMessage in ipairs(theController.messages) do
|
200
|
+
table.insert( theMessages, {command=theMessage, data=theController.value} )
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
-- If any binding keys are still down (waiting to repeat) check them
|
205
|
+
if next(self.repeatTimeByBinding) then
|
206
|
+
for theBinding,repeatTime in pairs(self.repeatTimeByBinding) do
|
207
|
+
if repeatTime <= now then self:fireBinding(theBinding,self.repeatPeriod) end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
-- A sine wave for for simulating various inputs
|
213
|
+
function self.sineSampler( inMin, inMax, inPeriod, inElapsedTime )
|
214
|
+
local theAmplitude = (inMax - inMin)/2
|
215
|
+
return inMin + theAmplitude * (math.cos( inElapsedTime*(math.pi*2)/inPeriod - math.pi ) + 1)
|
216
|
+
end
|
217
|
+
|
218
|
+
-- Simulate from Max value to Min value linearly over Period seconds, looping
|
219
|
+
function self.linearSampler( inMin, inMax, inPeriod, inElapsedTime )
|
220
|
+
local theAmplitude = inMax - inMin
|
221
|
+
return inMin + (theAmplitude - inElapsedTime*(theAmplitude/inPeriod)) % theAmplitude
|
222
|
+
end
|
223
|
+
|
224
|
+
self.vehicleSpeedData = {
|
225
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
226
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,8,10,12,14,16,18,24,32,40,48,56,64,72,80,
|
227
|
+
88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,
|
228
|
+
248,256,264,272,280,288,296,304,312,320,328,336,344,352,360,368,376,384,392,400,
|
229
|
+
408,416,424,432,440,448,456,462,468,474,480,486,492,498,504,510,516,522,528,534,
|
230
|
+
540,546,552,558,564,570,576,582,588,594,600,606,612,618,624,630,636,642,648,654,
|
231
|
+
660,666,672,678,684,690,696,702,708,714,720,726,732,738,744,750,756,762,768,774,
|
232
|
+
780,786,792,798,804,810,816,820,824,828,832,836,840,844,848,852,856,860,864,868,
|
233
|
+
872,876,880,884,888,892,896,900,904,908,912,916,920,924,928,932,936,940,944,948,
|
234
|
+
952,956,960,964,968,972,976,980,984,988,992,996,1000,1004,1008,1012,1016,1020,
|
235
|
+
1024,1028,1032,1036,1040,1044,1048,1052,1056,1054,1052,1050,1048,1046,1044,1042,
|
236
|
+
1040,1038,1036,1034,1032,1030,1028,1026,1024,1022,1020,1018,1016,1014,1012,1010,
|
237
|
+
1008,1006,1004,1002,1000,998,996,994,992,990,988,986,984,982,980,978,976,974,
|
238
|
+
972,970,968,966,964,962,960,958,956,954,952,950,948,946,944,942,940,938,936,934,
|
239
|
+
932,930,928,926,924,922,920,918,916,914,912,910,908,906,904,902,900,898,896,894,
|
240
|
+
892,890,888,886,884,882,880,878,876,874,872,870,868,866,864,862,860,858,856,854,
|
241
|
+
852,850,848,846,844,842,840,838,836,834,832,830,828,826,824,822,820,818,816,823,
|
242
|
+
830,837,844,851,858,865,872,879,886,893,900,907,914,921,928,935,942,949,956,963,
|
243
|
+
970,977,984,991,998,1005,1012,1019,1026,1033,1040,1047,1054,1061,1068,1075,1082,
|
244
|
+
1089,1096,1103,1110,1117,1124,1131,1138,1145,1152,1159,1166,1173,1180,1187,1194,
|
245
|
+
1201,1208,1215,1222,1229,1236,1246,1256,1266,1276,1286,1296,1306,1316,1326,1336,
|
246
|
+
1346,1356,1366,1376,1386,1396,1406,1416,1426,1436,1446,1456,1466,1476,1486,1496,
|
247
|
+
1506,1516,1526,1536,1546,1556,1566,1576,1586,1596,1606,1616,1626,1636,1646,1656,
|
248
|
+
1666,1676,1686,1696,1706,1716,1726,1736,1746,1756,1766,1776,1786,1796,1806,1816,
|
249
|
+
1826,1836,1836,1836,1836,1834,1832,1830,1828,1826,1824,1822,1820,1818,1816,1814,
|
250
|
+
1812,1810,1808,1806,1804,1802,1800,1798,1796,1794,1792,1790,1788,1786,1784,1782,
|
251
|
+
1780,1778,1776,1774,1772,1770,1768,1766,1764,1762,1760,1758,1756,1754,1752,1750,
|
252
|
+
1748,1746,1744,1742,1740,1738,1736,1734,1732,1730,1728,1726,1724,1722,1723,1724,
|
253
|
+
1725,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1753,1756,
|
254
|
+
1759,1762,1765,1768,1771,1774,1777,1780,1783,1786,1789,1792,1795,1798,1801,1804,
|
255
|
+
1807,1810,1813,1816,1819,1822,1825,1828,1831,1834,1837,1840,1843,1846,1849,1852,
|
256
|
+
1855,1858,1861,1864,1867,1870,1873,1876,1879,1882,1885,1888,1891,1894,1897,1900,
|
257
|
+
1903,1906,1909,1912,1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945,1948,
|
258
|
+
1951,1954,1957,1960,1963,1966,1969,1972,1975,1978,1981,1984,1987,1990,1993,1996,
|
259
|
+
1999,2002,2005,2008,2011,2014,2017,2020,2023,2026,2029,2032,2035,2038,2041,2044,
|
260
|
+
2047,2050,2053,2056,2059,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,
|
261
|
+
2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,
|
262
|
+
2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,
|
263
|
+
2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,
|
264
|
+
2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,
|
265
|
+
2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,
|
266
|
+
2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,
|
267
|
+
2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2301,2300,
|
268
|
+
2299,2298,2297,2296,2295,2294,2293,2292,2291,2290,2289,2288,2287,2286,2285,2284,
|
269
|
+
2283,2282,2281,2280,2279,2278,2277,2276,2275,2274,2273,2272,2271,2270,2269,2268,
|
270
|
+
2267,2266,2265,2264,2263,2262,2261,2260,2259,2258,2257,2256,2255,2254,2253,2252,
|
271
|
+
2251,2250,2249,2248,2247,2246,2245,2244,2243,2242,2239,2236,2233,2230,2227,2224,
|
272
|
+
2221,2218,2215,2212,2209,2206,2203,2200,2197,2194,2191,2188,2185,2182,2179,2176,
|
273
|
+
2173,2170,2167,2164,2161,2158,2155,2152,2149,2146,2143,2140,2137,2134,2131,2128,
|
274
|
+
2125,2122,2119,2116,2113,2110,2107,2104,2101,2098,2095,2092,2089,2086,2083,2080,
|
275
|
+
2077,2074,2071,2068,2065,2062,2058,2054,2050,2046,2042,2038,2034,2030,2026,2022,
|
276
|
+
2018,2014,2010,2006,2001,1996,1991,1986,1981,1976,1971,1966,1961,1956,1951,1946,
|
277
|
+
1941,1936,1931,1926,1921,1916,1911,1906,1901,1896,1891,1886,1881,1876,1871,1866,
|
278
|
+
1861,1856,1851,1846,1841,1836,1831,1826,1821,1816,1811,1806,1801,1796,1791,1786,
|
279
|
+
1781,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,
|
280
|
+
1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,
|
281
|
+
1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,
|
282
|
+
1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1776,1779,1782,
|
283
|
+
1785,1788,1791,1794,1797,1800,1803,1806,1809,1812,1815,1818,1821,1824,1827,1830,
|
284
|
+
1833,1836,1839,1842,1845,1848,1851,1854,1857,1860,1863,1866,1869,1872,1875,1878,
|
285
|
+
1881,1884,1887,1890,1893,1896,1899,1902,1905,1908,1911,1914,1917,1920,1923,1926,
|
286
|
+
1929,1932,1935,1938,1941,1944,1947,1950,1953,1956,1958,1960,1962,1964,1966,1968,
|
287
|
+
1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,
|
288
|
+
2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,
|
289
|
+
2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,
|
290
|
+
2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,
|
291
|
+
2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,
|
292
|
+
2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,
|
293
|
+
2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,
|
294
|
+
2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,
|
295
|
+
2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,
|
296
|
+
2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,
|
297
|
+
2290,2292,2294,2296,2298,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,
|
298
|
+
2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,
|
299
|
+
2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,
|
300
|
+
2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,
|
301
|
+
2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2366,2364,2362,2360,2358,2356,
|
302
|
+
2354,2352,2350,2348,2346,2344,2342,2340,2338,2336,2334,2332,2330,2328,2326,2324,
|
303
|
+
2322,2320,2318,2316,2314,2312,2310,2308,2306,2304,2302,2300,2298,2296,2294,2292,
|
304
|
+
2290,2288,2286,2284,2282,2280,2278,2276,2274,2272,2270,2268,2266,2264,2262,2260,
|
305
|
+
2258,2256,2254,2252,2250,2248,2240,2230,2220,2210,2200,2190,2180,2170,2160,2150,
|
306
|
+
2140,2130,2120,2110,2100,2090,2080,2070,2060,2050,2040,2030,2020,2010,2000,1990,
|
307
|
+
1980,1970,1960,1950,1940,1930,1920,1910,1900,1890,1880,1870,1860,1850,1840,1830,
|
308
|
+
1820,1810,1800,1790,1780,1770,1760,1750,1740,1730,1720,1710,1700,1690,1680,1670,
|
309
|
+
1660,1650,1645,1640,1635,1630,1625,1620,1615,1610,1605,1600,1595,1590,1585,1580,
|
310
|
+
1575,1570,1565,1560,1555,1550,1545,1540,1535,1530,1525,1520,1515,1510,1505,1500,
|
311
|
+
1495,1490,1485,1480,1475,1470,1465,1460,1455,1450,1445,1440,1435,1430,1425,1420,
|
312
|
+
1415,1410,1405,1400,1395,1390,1385,1380,1375,1370,1365,1360,1355,1350,1345,1340,
|
313
|
+
1335,1330,1325,1320,1315,1310,1305,1300,1295,1290,1285,1280,1275,1270,1265,1260,
|
314
|
+
1255,1250,1245,1240,1235,1230,1225,1220,1215,1210,1205,1200,1195,1190,1185,1180,
|
315
|
+
1175,1170,1165,1160,1155,1150,1145,1140,1135,1130,1125,1120,1115,1110,1105,1100,
|
316
|
+
1090,1088,1086,1084,1082,1080,1078,1076,1074,1072,1070,1065,1060,1055,1050,1045,
|
317
|
+
1040,1035,1030,1025,1020,1015,1010,1005,1000,995,990,985,980,975,970,965,960,
|
318
|
+
955,950,945,940,935,930,925,920,915,910,905,900,895,890,885,880,875,870,865,860,
|
319
|
+
855,850,845,840,835,830,825,820,815,810,805,800,795,790,785,780,775,772,769,766,
|
320
|
+
763,760,757,754,751,748,745,742,739,736,733,730,727,724,721,718,715,712,709,706,
|
321
|
+
703,700,697,694,691,688,685,682,679,676,673,670,667,664,661,658,655,652,649,646,
|
322
|
+
643,640,637,634,631,628,625,622,619,616,613,610,607,604,601,598,595,597,599,601,
|
323
|
+
603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,
|
324
|
+
643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,
|
325
|
+
683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,715,715,715,
|
326
|
+
715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
|
327
|
+
715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
|
328
|
+
715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,710,705,700,
|
329
|
+
695,690,685,680,675,670,665,660,655,650,645,640,635,630,625,620,615,610,605,600,
|
330
|
+
595,590,585,580,575,570,565,560,555,550,545,540,535,530,525,520,515,510,505,500,
|
331
|
+
495,490,485,480,475,470,465,460,455,450,445,440,435,430,425,420,415,417,419,421,
|
332
|
+
423,425,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,
|
333
|
+
463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,
|
334
|
+
503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,536,532,528,
|
335
|
+
524,520,516,512,508,504,500,496,492,488,484,480,476,472,468,464,460,456,452,448,
|
336
|
+
444,440,436,432,428,424,420,416,412,408,404,400,396,392,388,384,380,376,372,368,
|
337
|
+
364,360,356,352,348,344,340,336,332,328,324,320,316,312,308,304,300,295,290,285,
|
338
|
+
280,275,270,265,260,255,250,245,240,235,230,225,220,215,210,205,200,195,190,185,
|
339
|
+
180,175,170,165,160,155,150,145,140,135,130,125,120,115,110,105,100,95,90,85,80,
|
340
|
+
75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0
|
341
|
+
}
|
342
|
+
|
343
|
+
self.engineSpeedData = {
|
344
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
345
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,20,30,40,50,60,70,80,90,120,160,200,240,280,320,
|
346
|
+
360,400,440,480,520,560,600,640,680,720,760,800,840,880,920,960,1000,1040,1080,
|
347
|
+
1120,1160,1200,1240,1280,1320,1360,1400,1440,1480,1520,1560,1600,1640,1680,1720,
|
348
|
+
1760,1800,1840,1880,1920,1960,2000,2040,2080,2120,2160,2200,2240,2280,2320,2360,
|
349
|
+
2380,2400,2420,2440,2460,2480,2500,2520,2540,2560,2580,2600,2620,2640,2660,2680,
|
350
|
+
2700,2720,2740,2760,2780,2800,2820,2840,2860,2880,2900,2920,2940,2960,2980,3000,
|
351
|
+
3020,3040,3060,3080,3100,3120,3140,3160,3180,3200,3220,3240,3260,3280,3300,3320,
|
352
|
+
3340,3360,3380,3400,3420,3440,3460,3480,3500,3520,3540,3560,3570,3580,3590,3600,
|
353
|
+
3610,3620,3630,3640,3650,3660,3670,3680,3690,3700,3710,3720,3730,3740,3750,3760,
|
354
|
+
3770,3780,3790,3800,3810,3820,3830,3840,3850,3860,3870,3880,3890,3900,3910,3920,
|
355
|
+
3930,3940,3950,3960,3970,3980,3990,4000,4010,4020,4030,4040,4050,4060,4070,4080,
|
356
|
+
4090,4100,4110,4120,4130,4140,4150,4160,4155,4150,4145,4140,4135,4130,4125,4120,
|
357
|
+
4115,4110,4105,4100,4095,4090,4085,4080,4075,4070,4065,4060,4055,4050,4045,4040,
|
358
|
+
4035,4030,4025,4020,4015,4010,4005,4000,3995,3990,3985,3980,3975,3970,3965,3960,
|
359
|
+
3955,3950,3945,3940,3935,3930,3925,3920,3915,3910,3905,3900,3895,3890,3885,3880,
|
360
|
+
3875,3870,3865,3860,3850,3840,3830,3820,3810,3800,3790,3780,3770,3760,3750,3740,
|
361
|
+
3730,3720,3710,3700,3690,3680,3670,3660,3650,3640,3630,3620,3610,3600,3590,3580,
|
362
|
+
3570,3560,3550,3540,3530,3520,3510,3500,3490,3480,3470,3460,3450,3440,3430,3420,
|
363
|
+
3410,3400,3390,3380,3370,3360,3350,3340,3330,3320,3310,3300,3290,3280,3270,3260,
|
364
|
+
3300,3340,3380,3420,3460,3500,3540,3580,3620,3660,3700,3740,3780,3820,3860,3900,
|
365
|
+
3940,3980,4020,4060,4100,4140,4180,4220,4260,4300,4340,4380,4420,4460,4500,4540,
|
366
|
+
4580,4620,4660,4700,4740,4780,4820,4860,4900,4940,4980,5020,5060,5100,5140,5180,
|
367
|
+
5220,5260,5300,5340,5380,5420,5460,5500,5540,5580,5620,5660,5690,5720,5750,5780,
|
368
|
+
5810,5840,5870,5900,5930,5960,5990,6020,6050,6080,6110,6140,6170,6200,6230,6260,
|
369
|
+
6290,6320,6350,6380,6410,6440,6470,6500,6530,6560,6590,6620,6650,6680,6710,6740,
|
370
|
+
6770,6800,6830,6860,6890,6920,6950,6980,6990,7000,7010,7020,7030,7040,7050,7060,
|
371
|
+
7070,7080,7090,7100,7110,7120,7130,7140,7125,7110,7095,7080,7065,7050,7035,7020,
|
372
|
+
7005,6990,6975,6960,6945,6930,6915,6900,6885,6870,6855,6845,6835,6825,6815,6805,
|
373
|
+
6795,6785,6775,6765,6755,6745,6735,6725,6715,6705,6695,6685,6675,6665,6655,6650,
|
374
|
+
6645,6640,6635,6630,6625,6620,6615,6610,6605,6600,6595,6590,6585,6580,6575,6570,
|
375
|
+
6570,6570,6570,6570,6570,6575,6575,6580,6585,6590,6595,6600,6605,6610,6615,6620,
|
376
|
+
6625,6630,6635,6640,6645,6650,6655,6660,6665,6670,6675,6680,6685,6690,6695,6700,
|
377
|
+
6705,6710,6715,6720,6725,6730,6735,6740,6745,6750,6755,6760,6765,6770,6775,6780,
|
378
|
+
6785,6790,6795,6800,6805,6810,6815,6820,6825,6830,6835,6840,6845,6850,6855,6860,
|
379
|
+
6864,6868,6872,6876,6880,6884,6888,6892,6896,6900,6904,6908,6912,6916,6920,6924,
|
380
|
+
6928,6932,6936,6940,6944,6948,6952,6956,6960,6964,6968,6972,6976,6980,6984,6988,
|
381
|
+
6992,6996,7000,7004,7008,7012,7016,7020,7024,7028,7032,7036,7040,7044,7048,7052,
|
382
|
+
7056,7060,7064,7068,7072,7076,7080,7084,7088,7092,7096,7100,7103,7106,7109,7112,
|
383
|
+
7115,7118,7121,7124,7127,7130,7133,7136,7139,7142,7145,7148,7151,7154,7157,7160,
|
384
|
+
7163,7166,7169,7172,7175,7178,7181,7184,7187,7190,7193,7196,7199,7202,7205,7208,
|
385
|
+
7211,7214,7217,7220,7223,7226,7229,7232,7235,7238,7241,7244,7247,7250,7253,7256,
|
386
|
+
7259,7262,7265,7268,7271,7274,7277,7280,7283,7286,7289,7292,7295,7298,7301,7304,
|
387
|
+
7307,7310,7313,7316,7319,7322,7325,7328,7331,7334,7337,7340,7343,7346,7349,7352,
|
388
|
+
7355,7358,7361,7364,7367,7370,7373,7376,7379,7382,7385,7388,7391,7394,7397,7400,
|
389
|
+
7403,7406,7409,7412,7415,7418,7421,7424,7427,7430,7433,7436,7439,7442,7445,7448,
|
390
|
+
7451,7454,7457,7460,7455,7450,7445,7440,7435,7430,7425,7420,7415,7410,7405,7400,
|
391
|
+
7395,7390,7385,7380,7375,7370,7365,7360,7355,7350,7345,7340,7335,7330,7325,7320,
|
392
|
+
7315,7310,7304,7298,7292,7286,7280,7274,7268,7262,7256,7250,7244,7238,7232,7226,
|
393
|
+
7220,7214,7208,7202,7196,7190,7184,7178,7172,7166,7160,7154,7148,7140,7130,7120,
|
394
|
+
7100,7080,7060,7040,7020,7000,6980,6960,6940,6920,6900,6880,6860,6840,6820,6800,
|
395
|
+
6780,6760,6740,6720,6700,6680,6660,6640,6620,6600,6580,6560,6540,6520,6500,6480,
|
396
|
+
6460,6440,6420,6400,6380,6360,6340,6320,6300,6280,6260,6240,6220,6200,6180,6160,
|
397
|
+
6140,6120,6100,6080,6060,6040,6020,6000,5980,5960,5940,5920,5902,5884,5866,5848,
|
398
|
+
5830,5812,5794,5776,5758,5740,5722,5704,5686,5668,5650,5632,5614,5596,5578,5560,
|
399
|
+
5542,5524,5506,5488,5470,5452,5434,5416,5398,5380,5362,5344,5326,5308,5290,5272,
|
400
|
+
5254,5236,5218,5200,5182,5164,5146,5128,5110,5092,5074,5056,5038,5020,5002,4984,
|
401
|
+
4966,4948,4930,4912,4894,4876,4858,4840,4840,4840,4840,4840,4840,4840,4840,4840,
|
402
|
+
4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,
|
403
|
+
4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,
|
404
|
+
4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,4840,
|
405
|
+
4840,4840,4840,4840,4845,4850,4855,4860,4865,4870,4875,4880,4885,4890,4895,4900,
|
406
|
+
4905,4910,4915,4920,4925,4930,4935,4940,4945,4950,4955,4960,4965,4970,4975,4980,
|
407
|
+
4985,4990,4995,5000,5005,5010,5015,5020,5025,5030,5035,5040,5045,5050,5055,5060,
|
408
|
+
5070,5080,5100,5120,5140,5160,5180,5200,5220,5240,5260,5280,5300,5320,5340,5360,
|
409
|
+
5375,5390,5405,5420,5435,5450,5465,5480,5495,5510,5525,5540,5555,5570,5585,5600,
|
410
|
+
5615,5630,5645,5660,5675,5690,5705,5720,5735,5750,5765,5780,5795,5810,5825,5840,
|
411
|
+
5855,5870,5885,5900,5915,5930,5945,5960,5975,5990,6005,6020,6035,6050,6065,6080,
|
412
|
+
6095,6110,6125,6140,6155,6170,6185,6200,6215,6230,6245,6260,6272,6284,6296,6308,
|
413
|
+
6320,6332,6344,6356,6368,6380,6392,6404,6416,6428,6440,6452,6464,6476,6488,6500,
|
414
|
+
6512,6524,6536,6548,6560,6572,6584,6596,6608,6620,6632,6644,6656,6668,6680,6692,
|
415
|
+
6704,6716,6728,6740,6752,6764,6776,6788,6800,6812,6824,6836,6848,6860,6872,6884,
|
416
|
+
6896,6908,6920,6932,6944,6956,6968,6980,6988,6996,7004,7012,7020,7028,7036,7044,
|
417
|
+
7052,7060,7068,7076,7084,7092,7100,7108,7116,7124,7132,7140,7148,7156,7164,7172,
|
418
|
+
7180,7188,7196,7204,7212,7220,7228,7236,7244,7252,7260,7268,7276,7284,7292,7300,
|
419
|
+
7308,7316,7324,7332,7340,7348,7356,7364,7372,7380,7388,7396,7404,7412,7420,7428,
|
420
|
+
7436,7444,7452,7460,7465,7470,7475,7480,7485,7490,7495,7500,7505,7510,7515,7520,
|
421
|
+
7525,7530,7535,7540,7545,7550,7555,7560,7565,7570,7575,7580,7585,7590,7595,7600,
|
422
|
+
7605,7610,7615,7620,7625,7630,7635,7640,7645,7650,7655,7660,7665,7670,7675,7680,
|
423
|
+
7685,7690,7695,7700,7705,7710,7715,7720,7725,7730,7735,7740,7745,7750,7755,7760,
|
424
|
+
7750,7740,7730,7720,7710,7700,7690,7680,7670,7660,7650,7640,7630,7620,7610,7600,
|
425
|
+
7590,7580,7570,7560,7550,7540,7530,7520,7510,7500,7490,7480,7470,7460,7450,7440,
|
426
|
+
7430,7420,7410,7400,7390,7380,7370,7360,7350,7340,7330,7320,7310,7300,7290,7280,
|
427
|
+
7270,7260,7250,7240,7230,7220,7210,7200,7190,7180,7170,7160,7090,7030,6970,6910,
|
428
|
+
6850,6790,6730,6670,6610,6550,6490,6430,6370,6310,6250,6190,6130,6070,6010,5950,
|
429
|
+
5890,5830,5770,5710,5650,5590,5530,5470,5410,5350,5290,5230,5170,5110,5050,4990,
|
430
|
+
4930,4870,4810,4750,4690,4630,4570,4510,4450,4390,4330,4270,4210,4150,4090,4030,
|
431
|
+
3970,3910,3850,3790,3730,3670,3610,3550,3540,3530,3520,3510,3500,3490,3480,3470,
|
432
|
+
3460,3450,3440,3430,3420,3410,3400,3390,3380,3370,3360,3350,3340,3330,3320,3310,
|
433
|
+
3300,3290,3280,3270,3260,3250,3240,3230,3220,3210,3200,3190,3180,3170,3160,3150,
|
434
|
+
3140,3130,3120,3110,3100,3090,3080,3070,3060,3050,3040,3030,3020,3010,3000,2990,
|
435
|
+
2980,2970,2960,2950,2947,2944,2941,2938,2935,2932,2929,2926,2923,2920,2917,2914,
|
436
|
+
2911,2908,2905,2902,2899,2896,2893,2890,2887,2884,2881,2878,2875,2872,2869,2866,
|
437
|
+
2863,2860,2857,2854,2851,2848,2845,2842,2839,2836,2833,2830,2827,2824,2821,2818,
|
438
|
+
2815,2812,2809,2806,2803,2800,2797,2794,2791,2788,2780,2770,2760,2750,2740,2730,
|
439
|
+
2720,2710,2700,2690,2680,2670,2660,2650,2640,2630,2620,2610,2600,2590,2580,2570,
|
440
|
+
2560,2550,2540,2530,2520,2510,2500,2490,2480,2470,2460,2450,2440,2430,2420,2410,
|
441
|
+
2400,2390,2380,2370,2360,2350,2340,2330,2320,2310,2300,2290,2280,2270,2260,2250,
|
442
|
+
2240,2230,2220,2210,2200,2190,2180,2170,2160,2150,2140,2130,2128,2126,2124,2122,
|
443
|
+
2120,2118,2116,2114,2112,2110,2108,2106,2104,2102,2100,2098,2096,2094,2092,2090,
|
444
|
+
2088,2086,2084,2082,2080,2078,2076,2074,2072,2070,2068,2066,2064,2062,2060,2058,
|
445
|
+
2056,2054,2052,2050,2048,2046,2044,2042,2040,2038,2036,2034,2032,2030,2028,2026,
|
446
|
+
2024,2022,2020,2018,2016,2014,2012,2010,2013,2016,2019,2022,2025,2028,2031,2034,
|
447
|
+
2037,2040,2043,2046,2049,2052,2055,2058,2061,2064,2067,2070,2073,2076,2079,2082,
|
448
|
+
2085,2088,2091,2094,2097,2100,2103,2106,2109,2112,2115,2118,2121,2124,2127,2130,
|
449
|
+
2133,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2169,2172,2175,2178,
|
450
|
+
2181,2184,2187,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,
|
451
|
+
2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,
|
452
|
+
2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,
|
453
|
+
2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,2190,
|
454
|
+
2185,2180,2175,2170,2165,2160,2155,2150,2145,2140,2135,2130,2125,2120,2115,2110,
|
455
|
+
2105,2100,2095,2090,2085,2080,2075,2070,2065,2060,2055,2050,2045,2040,2035,2030,
|
456
|
+
2025,2020,2015,2010,2005,2000,1995,1990,1985,1980,1975,1970,1965,1960,1955,1950,
|
457
|
+
1945,1940,1935,1930,1925,1920,1915,1910,1905,1900,1895,1890,1894,1898,1902,1906,
|
458
|
+
1910,1914,1918,1922,1926,1930,1934,1938,1942,1946,1950,1954,1958,1962,1966,1970,
|
459
|
+
1974,1978,1982,1986,1990,1994,1998,2002,2006,2010,2014,2018,2022,2026,2030,2034,
|
460
|
+
2038,2042,2046,2050,2054,2058,2062,2066,2070,2074,2078,2082,2086,2090,2094,2098,
|
461
|
+
2102,2106,2110,2114,2118,2122,2126,2130,2125,2120,2115,2110,2105,2100,2095,2090,
|
462
|
+
2085,2080,2075,2070,2065,2060,2055,2050,2045,2040,2035,2030,2025,2020,2015,2010,
|
463
|
+
2005,2000,1995,1990,1985,1980,1975,1970,1965,1960,1955,1950,1945,1940,1935,1930,
|
464
|
+
1925,1920,1915,1910,1905,1900,1894,1888,1882,1876,1870,1864,1858,1852,1846,1840,
|
465
|
+
1830,1820,1810,1800,1770,1740,1710,1680,1650,1620,1590,1560,1530,1500,1470,1440,
|
466
|
+
1410,1380,1350,1320,1290,1260,1230,1200,1170,1140,1110,1080,1050,1020,990,960,
|
467
|
+
930,900,870,840,810,780,750,720,690,660,630,600,570,540,510,480,450,420,390,360,
|
468
|
+
330,300,270,240,210,180,150,120,90,60,30,0
|
469
|
+
}
|
470
|
+
end
|