summaryrefslogtreecommitdiff
path: root/scripts/speedlimiter.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/speedlimiter.lua')
-rw-r--r--[-rwxr-xr-x]scripts/speedlimiter.lua621
1 files changed, 546 insertions, 75 deletions
diff --git a/scripts/speedlimiter.lua b/scripts/speedlimiter.lua
index 8ce1f63..81bef78 100755..100644
--- a/scripts/speedlimiter.lua
+++ b/scripts/speedlimiter.lua
@@ -1,7 +1,7 @@
--- SLIMax Mgr Lua Script v3
+-- SLIMax Mgr Lua Script v3.3.1
-- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved.
-- this script builds all speed/pit-limiter feedback methods
--- last change by Zappadoc - 2013-02
+-- last change by Zappadoc - 2013-10
-- SLI-M, SLI-PRO speed limiter Methods
function spdLmtMethodEvent(idx)
@@ -33,8 +33,8 @@ function spdLmtMethodEvent(idx)
-- get global prefs
GetSLIMaxInfo()
- -- init table
- if idx >= 2 then
+ if mSpdLimitMethod >= 2 then
+ -- init table
initLedTable(mRPMLedTable, 0)
SetRPMLed("mRPMLedTable")
end
@@ -241,16 +241,16 @@ end
-- G27 speed limiter Methods
function spdLmtG27MethodEvent(idx)
- mSpdLimitMethod = idx
+ mSpdLimitG27Method = idx
-- call custom script
- local result = custom_spdLmtG27MethodEvent(mSpdLimitMethod)
+ local result = custom_spdLmtG27MethodEvent(mSpdLimitG27Method)
-- if result = 0 bypass the script below and return 0
-- if result = 1 bypass the script below and return 1
if result <= 1 then return result end
-- if result >= 2 continue
-- call global custom script
- result = global_custom_spdLmtG27MethodEvent(mSpdLimitMethod)
+ result = global_custom_spdLmtG27MethodEvent(mSpdLimitG27Method)
-- if result = 0 bypass the script below and return 0
-- if result = 1 bypass the script below and return 1
if result <= 1 then return result end
@@ -270,11 +270,11 @@ function spdLmtG27MethodEvent(idx)
-- init table
mG27Leds = 0
- if mNoBlink or mSpdLimitMethod == 0 then
+ if mNoBlink or mSpdLimitG27Method == 0 then
-- speedlimiter led NOT blinking
mG27Leds = 0x1F
- elseif mSpdLimitMethod == 1 then
+ elseif mSpdLimitG27Method == 1 then
-- speedlimiter led blinking, method 1
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -294,7 +294,7 @@ function spdLmtG27MethodEvent(idx)
mG27Leds = 0
end
- elseif mSpdLimitMethod >= 2 then
+ elseif mSpdLimitG27Method >= 2 then
-- speedlimiter alternate led blinking, method 2 to n
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -330,17 +330,17 @@ end
-- Fanatec speed/pit limiter Methods
function spdLmtFanatecMethodEvent(idx)
- mSpdLimitMethod = idx
+ mSpdLimitFanatecMethod = idx
mFanatecSpdLmtText = " "
-- call custom script
- local result = custom_spdLmtFanatecMethodEvent(mSpdLimitMethod)
+ local result = custom_spdLmtFanatecMethodEvent(mSpdLimitFanatecMethod)
-- if result = 0 bypass the script below and return 0
-- if result = 1 bypass the script below and return 1
if result <= 1 then return result end
-- if result >= 2 continue
-- call global custom script
- result = global_custom_spdLmtFanatecMethodEvent(mSpdLimitMethod)
+ result = global_custom_spdLmtFanatecMethodEvent(mSpdLimitFanatecMethod)
-- if result = 0 bypass the script below and return 0
-- if result = 1 bypass the script below and return 1
if result <= 1 then return result end
@@ -359,15 +359,22 @@ function spdLmtFanatecMethodEvent(idx)
-- init table
initLedTable(mRPMLedTable, 0)
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
- if mNoBlink or mSpdLimitMethod == 0 then
+ if mNoBlink or mSpdLimitFanatecMethod == 0 then
-- speedlimiter first rpm led NOT blinking
SetFanatecDigitsAllowed(true)
mRPMLedTable["RPM0"]= 1
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
+ if mLimiterChar then
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ else
+ SetFanatecDigitsAllowed(true)
+ end
- elseif mSpdLimitMethod == 1 then
+ elseif mSpdLimitFanatecMethod == 1 then
-- speedlimiter first rpm led blinking
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -380,28 +387,23 @@ function spdLmtFanatecMethodEvent(idx)
-- one led
mRPMLedTable["RPM0"]= 1
- SetFanatecDigitsAllowed(true)
-
- -- if not mSpdLmtRPMLedOnly then
- -- SetFanatecDigitsAllowed(false)
- -- if mLimiterChar then
- -- SetFanatecGear("L", false)
- -- else
- -- SetFanatecDigits( "---" )
- -- end
- -- end
+ if mLimiterChar then
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ end
end
if mSpdLmtBlink > (mBlinkTime / 2) then
mRPMLedTable["RPM0"]= 0
- -- if not mSpdLmtRPMLedOnly then
- -- SetFanatecDigitsAllowed(true)
- -- SetFanatecDigits( " " )
- -- end
+ if mLimiterChar then
+ oldGear = 110
+ SetFanatecDigitsAllowed(true)
+ end
end
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
- elseif mSpdLimitMethod == 2 then
+ elseif mSpdLimitFanatecMethod == 2 then
-- speedlimiter all rpm led blinking
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -410,30 +412,26 @@ function spdLmtFanatecMethodEvent(idx)
mSpdLmtBlink = 0
end
if mSpdLmtBlink <= (mBlinkTime / 2) then
-
initLedTable(mRPMLedTable, 1)
- SetFanatecDigitsAllowed(true)
- -- if not mSpdLmtRPMLedOnly then
- -- SetFanatecDigitsAllowed(false)
- -- if mLimiterChar then
- -- SetFanatecGear("L", false)
- -- else
- -- SetFanatecDigits( "---" )
- -- end
- -- end
+ if mLimiterChar then
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ end
end
if mSpdLmtBlink > (mBlinkTime / 2) then
initLedTable(mRPMLedTable, 0)
- -- if not mSpdLmtRPMLedOnly then
- -- SetFanatecDigitsAllowed(true)
- -- SetFanatecDigits( " " )
- -- end
+
+ if mLimiterChar then
+ oldGear = 110
+ SetFanatecDigitsAllowed(true)
+ end
end
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
- elseif mSpdLimitMethod == 3 or mSpdLimitMethod > 6 then
+ elseif mSpdLimitFanatecMethod == 3 or mSpdLimitFanatecMethod > 6 then
-- speedlimiter alternate RPM blinking
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -451,13 +449,12 @@ function spdLmtFanatecMethodEvent(idx)
mRPMLedTable[led] = 0
end
end
- if not mSpdLmtRPMLedOnly then
- SetFanatecDigitsAllowed(false)
- if mLimiterChar then
- SetFanatecGear("L", false)
- else
- SetFanatecDigits( "---" )
- end
+ SetFanatecDigitsAllowed(false)
+ if mLimiterChar then
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ else
+ SetFanatecDigits( "---" )
end
end
@@ -471,15 +468,12 @@ function spdLmtFanatecMethodEvent(idx)
end
end
- if not mSpdLmtRPMLedOnly then
- SetFanatecDigitsAllowed(true)
- --SetFanatecDigits( " " )
- end
+ SetFanatecDigitsAllowed(true)
end
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
- elseif mSpdLimitMethod == 4 or mSpdLimitMethod == 5 then
+ elseif mSpdLimitFanatecMethod == 4 or mSpdLimitFanatecMethod == 5 then
-- speedlimiter no led digits only
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -491,24 +485,31 @@ function spdLmtFanatecMethodEvent(idx)
if mSpdLmtBlink <= (mBlinkTime / 2) then
initLedTable(mRPMLedTable, 0)
- if mSpdLimitMethod == 4 then
- SetFanatecDigitsAllowed(true)
- else
+
+ if mLimiterChar then
SetFanatecDigitsAllowed(false)
- SetFanatecDigits( " " )
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ else
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( "---" )
end
end
if mSpdLmtBlink > (mBlinkTime / 2) then
- SetFanatecDigitsAllowed(false)
- SetFanatecDigits( "---" )
+ if mSpdLimitFanatecMethod == 4 then
+ SetFanatecDigitsAllowed(true)
+ else
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( " " )
+ end
initLedTable(mRPMLedTable, 0)
end
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
- elseif mSpdLimitMethod == 6 then
+ elseif mSpdLimitFanatecMethod == 6 then
-- speedlimiter freezed rpm + digits blinking
if GetTicks() > mOldTickCount then
mSpdLmtBlink = mSpdLmtBlink + 1
@@ -520,10 +521,14 @@ function spdLmtFanatecMethodEvent(idx)
if mSpdLmtBlink <= (mBlinkTime / 2) then
initLedTable(mRPMLedTable, 1)
- --if not mSpdLmtRPMLedOnly then
- SetFanatecDigitsAllowed(true)
- --SetFanatecDigits( " " )
- --end
+
+ if mLimiterChar then
+ SetFanatecDigitsAllowed(false)
+ SetFanatecDigits( " L " )
+ oldGear = 110
+ else
+ SetFanatecDigitsAllowed(true)
+ end
end
if mSpdLmtBlink > (mBlinkTime / 2) then
@@ -533,8 +538,474 @@ function spdLmtFanatecMethodEvent(idx)
initLedTable(mRPMLedTable, 1)
end
- SetFanatecLed("mRPMLedTable")
+ SetRPMLed("mRPMLedTable")
+
+ else
+ return 1
+ end
+
+ -- timebase
+ if GetTicks() > mOldTickCount then
+ mOldTickCount = GetTicks() + 20
+ end
+ return 1
+end
+
+-- SIM RACE Deluxe speed limiter Methods
+function spdLmtSRDlxMethodEvent(idx)
+ mSpdLimitSRDlxMethod = idx
+ mLeftSpdLmtText = " "
+ mRightSpdLmtText = " "
+ -- call custom script
+ local result = custom_spdLmtSRDlxMethodEvent(mSpdLimitSRDlxMethod)
+ -- if result = 0 bypass the script below and return 0
+ -- if result = 1 bypass the script below and return 1
+ if result <= 1 then return result end
+ -- if result >= 2 continue
+
+ -- call global custom script
+ result = global_custom_spdLmtSRDlxMethodEvent(mSpdLimitSRDlxMethod)
+ -- if result = 0 bypass the script below and return 0
+ -- if result = 1 bypass the script below and return 1
+ if result <= 1 then return result end
+ -- if result >= 2 continue
+
+ local led = ""
+
+ -- check if initialized
+ if isGlobalInitialized == 0 then
+ isGlobalInitialized = 1
+ -- init them
+ InitGlobals()
+ end
+ -- get global prefs
+ GetSLIMaxInfo()
+
+ -- init table
+ initLedTable(mRPMLedTable, 0)
+ SetRPMLed("mRPMLedTable")
+
+ if mNoBlink or (mSpdLimitSRDlxMethod == 0) then
+ -- speedlimiter led NOT blinking
+ SetWarnLed(mSpeedLimiterLED, 1)
+
+ elseif mSpdLimitSRDlxMethod == 1 then
+ -- speedlimiter led blinking, method 1
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+
+ elseif mSpdLimitSRDlxMethod == 2 then
+ -- speedlimiter led + RPM blinking, method 2
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+ initLedTable(mRPMLedTable, 1)
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+ initLedTable(mRPMLedTable, 0)
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRDlxMethod == 3 then
+ -- speedlimiter led + alternate RPM blinking, method 3
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then
+ SetGearDigit("L")
+ end
+ for i = 0,12 do
+ led = led.format("RPM%d",i)
+ if (i % 2)==0 then
+ mRPMLedTable[led] = 1
+ else
+ mRPMLedTable[led] = 0
+ end
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then
+ SetGearDigit(" ")
+ end
+ for i = 0,13 do
+ led = led.format("RPM%d",i)
+ if (i % 2)==0 then
+ mRPMLedTable[led] = 0
+ else
+ mRPMLedTable[led] = 1
+ end
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRDlxMethod == 4 then
+ -- speedlimiter led + RPM + digits blinking, method 4
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+
+ if mLimiterChar then SetGearDigit("L") end
+ SetDigitsAllowed(true)
+
+ for i = 0,2 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 0
+ end
+ for i = 10,12 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 0
+ end
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+
+ SetDigitsAllowed(false)
+
+ SetLeftDigits (mLeftSpdLmtText)
+ SetRightDigits (mRightSpdLmtText)
+
+ for i = 0,2 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 1
+ end
+ for i = 10,12 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 1
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRDlxMethod == 5 or mSpdLimitSRDlxMethod == 6 then
+ -- speedlimiter led + digits blinking, method 5
+ -- speedlimiter led + RPM fixed + Digits blinking, method 6
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+
+ SetDigitsAllowed (true)
+
+ local state = 0
+ if mSpdLimitSRDlxMethod == 6 then state = 1 end
+ initLedTable(mRPMLedTable, state)
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+
+ SetLeftDigits ( mLeftSpdLmtText)
+ SetRightDigits ( mRightSpdLmtText)
+
+ SetDigitsAllowed(false)
+
+ local state = 0
+ if mSpdLimitSRDlxMethod == 6 then state = 1 end
+ initLedTable(mRPMLedTable, state)
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ else
+ return 1
+ end
+
+ -- timebase
+ if GetTicks() > mOldTickCount then
+ mOldTickCount = GetTicks() + 20
+ end
+ return 1
+end
+-- SIM RACE F1 speed limiter Methods
+function spdLmtSRF1MethodEvent(idx)
+ mSpdLimitSRF1Method = idx
+ mLeftSpdLmtText = " "
+ mRightSpdLmtText = " "
+ -- call custom script
+ local result = custom_spdLmtSRF1MethodEvent(mSpdLimitSRF1Method)
+ -- if result = 0 bypass the script below and return 0
+ -- if result = 1 bypass the script below and return 1
+ if result <= 1 then return result end
+ -- if result >= 2 continue
+
+ -- call global custom script
+ result = global_custom_spdLmtSRF1MethodEvent(mSpdLimitSRF1Method)
+ -- if result = 0 bypass the script below and return 0
+ -- if result = 1 bypass the script below and return 1
+ if result <= 1 then return result end
+ -- if result >= 2 continue
+
+ local led = ""
+
+ -- check if initialized
+ if isGlobalInitialized == 0 then
+ isGlobalInitialized = 1
+ -- init them
+ InitGlobals()
+ end
+ -- get global prefs
+ GetSLIMaxInfo()
+
+ -- init table
+ initLedTable(mRPMLedTable, 0)
+ SetRPMLed("mRPMLedTable")
+
+ if mNoBlink or (mSpdLimitSRF1Method == 0) then
+ -- speedlimiter led NOT blinking
+ SetWarnLed(mSpeedLimiterLED, 1)
+
+ elseif mSpdLimitSRF1Method == 1 then
+ -- speedlimiter led blinking, method 1
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+
+ elseif mSpdLimitSRF1Method == 2 then
+ -- speedlimiter led + RPM blinking, method 2
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+ initLedTable(mRPMLedTable, 1)
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+ end
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+ initLedTable(mRPMLedTable, 0)
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRF1Method == 3 then
+ -- speedlimiter led + alternate RPM blinking, method 3
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then
+ SetGearDigit("L")
+ end
+ for i = 0,14 do
+ led = led.format("RPM%d",i)
+ if (i % 2)==0 then
+ mRPMLedTable[led] = 1
+ else
+ mRPMLedTable[led] = 0
+ end
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 1)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then
+ SetGearDigit(" ")
+ end
+ for i = 0,15 do
+ led = led.format("RPM%d",i)
+ if (i % 2)==0 then
+ mRPMLedTable[led] = 0
+ else
+ mRPMLedTable[led] = 1
+ end
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRF1Method == 4 then
+ -- speedlimiter led + RPM + digits blinking, method 4
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+
+ if mLimiterChar then SetGearDigit("L") end
+ SetDigitsAllowed(true)
+
+ for i = 0,4 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 0
+ end
+ for i = 10,14 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 0
+ end
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+
+ SetDigitsAllowed(false)
+
+ SetLeftDigits (mLeftSpdLmtText)
+ SetRightDigits (mRightSpdLmtText)
+
+ for i = 0,4 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 1
+ end
+ for i = 10,14 do
+ led = led.format("RPM%d",i)
+ mRPMLedTable[led] = 1
+ end
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+ elseif mSpdLimitSRF1Method == 5 or mSpdLimitSRF1Method == 6 then
+ -- speedlimiter led + digits blinking, method 5
+ -- speedlimiter led + RPM fixed + Digits blinking, method 6
+ if GetTicks() > mOldTickCount then
+ mSpdLmtBlink = mSpdLmtBlink + 1
+ end
+
+ if mSpdLmtBlink >= mBlinkTime then
+ mSpdLmtBlink = 0
+ end
+
+ if mSpdLmtBlink <= (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit("L") end
+
+ SetDigitsAllowed (true)
+
+ local state = 0
+ if mSpdLimitSRF1Method == 6 then state = 1 end
+ initLedTable(mRPMLedTable, state)
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+
+ if mSpdLmtBlink > (mBlinkTime / 2) then
+ if mLimiterChar then SetGearDigit(" ") end
+
+ SetLeftDigits ( mLeftSpdLmtText)
+ SetRightDigits ( mRightSpdLmtText)
+
+ SetDigitsAllowed(false)
+
+ local state = 0
+ if mSpdLimitSRF1Method == 6 then state = 1 end
+ initLedTable(mRPMLedTable, state)
+
+ if not mSpdLmtRPMLedOnly then
+ SetWarnLed(mSpeedLimiterLED, 0)
+ end
+ end
+ SetRPMLed("mRPMLedTable")
+
+
else
return 1
end