From 3bbcdbf124f534800c47b4ebecd9ef96ba805bcb Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 15 Nov 2013 18:13:32 +0100 Subject: [Gugus] speedlimiter --- scripts/gugus/speedlimiter.lua | 779 ----------------------------------------- 1 file changed, 779 deletions(-) diff --git a/scripts/gugus/speedlimiter.lua b/scripts/gugus/speedlimiter.lua index 8468038..553336d 100644 --- a/scripts/gugus/speedlimiter.lua +++ b/scripts/gugus/speedlimiter.lua @@ -220,782 +220,3 @@ function custom_spdLmtMethodEvent(idx) end return 1 end - - --- G27 speed limiter Methods -function spdLmtG27MethodEvent(idx) - mSpdLimitG27Method = idx - -- call custom script - 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(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 - - local led = "" - - -- check if initialized - if isGlobalInitialized == 0 then - isGlobalInitialized = 1 - -- init them - InitGlobals() - end - -- get global prefs - GetSLIMaxInfo() - - -- init table - mG27Leds = 0 - - if mNoBlink or mSpdLimitG27Method == 0 then - -- speedlimiter led NOT blinking - mG27Leds = 0x1F - - elseif mSpdLimitG27Method == 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 - - mG27Leds = 0x1F - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - - mG27Leds = 0 - end - - elseif mSpdLimitG27Method >= 2 then - -- speedlimiter alternate led blinking, method 2 to n - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - - if mSpdLmtBlink <= (mBlinkTime / 2) then - - mG27Leds = 0x0A - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - - mG27Leds = 0x15 - end - - else - return 1 - end - - SetG27Led(mG27Leds) - - -- timebase - if GetTicks() > mOldTickCount then - mOldTickCount = GetTicks() + 20 - end - return 1 -end - - - -- Fanatec speed/pit limiter Methods -function spdLmtFanatecMethodEvent(idx) - mSpdLimitFanatecMethod = idx - mFanatecSpdLmtText = " " - -- call custom script - 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(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 - - 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 mSpdLimitFanatecMethod == 0 then - -- speedlimiter first rpm led NOT blinking - SetFanatecDigitsAllowed(true) - mRPMLedTable["RPM0"]= 1 - SetRPMLed("mRPMLedTable") - if mLimiterChar then - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " L " ) - oldGear = 110 - else - SetFanatecDigitsAllowed(true) - end - - elseif mSpdLimitFanatecMethod == 1 then - -- speedlimiter first rpm led blinking - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - - if mSpdLmtBlink <= (mBlinkTime / 2) then - -- one led - mRPMLedTable["RPM0"]= 1 - - if mLimiterChar then - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " L " ) - oldGear = 110 - end - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - mRPMLedTable["RPM0"]= 0 - if mLimiterChar then - oldGear = 110 - SetFanatecDigitsAllowed(true) - end - end - SetRPMLed("mRPMLedTable") - - elseif mSpdLimitFanatecMethod == 2 then - -- speedlimiter all rpm led blinking - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - if mSpdLmtBlink <= (mBlinkTime / 2) then - initLedTable(mRPMLedTable, 1) - - if mLimiterChar then - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " L " ) - oldGear = 110 - end - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - initLedTable(mRPMLedTable, 0) - - if mLimiterChar then - oldGear = 110 - SetFanatecDigitsAllowed(true) - end - end - SetRPMLed("mRPMLedTable") - - elseif mSpdLimitFanatecMethod == 3 or mSpdLimitFanatecMethod > 6 then - -- speedlimiter alternate RPM blinking - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - if mSpdLmtBlink <= (mBlinkTime / 2) then - - for i = 0,8 do - led = led.format("RPM%d",i) - if (i % 2)==0 then - mRPMLedTable[led] = 1 - else - mRPMLedTable[led] = 0 - end - end - SetFanatecDigitsAllowed(false) - if mLimiterChar then - SetFanatecDigits( " L " ) - oldGear = 110 - else - SetFanatecDigits( "---" ) - end - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - for i = 0,8 do - led = led.format("RPM%d",i) - if (i % 2)==0 then - mRPMLedTable[led] = 0 - else - mRPMLedTable[led] = 1 - end - end - - SetFanatecDigitsAllowed(true) - end - SetRPMLed("mRPMLedTable") - - - elseif mSpdLimitFanatecMethod == 4 or mSpdLimitFanatecMethod == 5 then - -- speedlimiter no led digits only - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - - if mSpdLmtBlink <= (mBlinkTime / 2) then - initLedTable(mRPMLedTable, 0) - - if mLimiterChar then - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " L " ) - oldGear = 110 - else - SetFanatecDigitsAllowed(false) - SetFanatecDigits( "---" ) - end - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - - if mSpdLimitFanatecMethod == 4 then - SetFanatecDigitsAllowed(true) - else - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " " ) - end - - initLedTable(mRPMLedTable, 0) - end - SetRPMLed("mRPMLedTable") - - elseif mSpdLimitFanatecMethod == 6 then - -- speedlimiter freezed rpm + digits blinking - if GetTicks() > mOldTickCount then - mSpdLmtBlink = mSpdLmtBlink + 1 - end - - if mSpdLmtBlink >= mBlinkTime then - mSpdLmtBlink = 0 - end - - if mSpdLmtBlink <= (mBlinkTime / 2) then - initLedTable(mRPMLedTable, 1) - - if mLimiterChar then - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " L " ) - oldGear = 110 - else - SetFanatecDigitsAllowed(true) - end - end - - if mSpdLmtBlink > (mBlinkTime / 2) then - - SetFanatecDigitsAllowed(false) - SetFanatecDigits( " " ) - - initLedTable(mRPMLedTable, 1) - end - 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 - - -- timebase - if GetTicks() > mOldTickCount then - mOldTickCount = GetTicks() + 20 - end - return 1 -end -- cgit v1.2.3