From db7d99359d62b05a1f6e2c551106b7bf26764889 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Mon, 18 Nov 2013 21:04:19 +0100 Subject: 3.3.0.3 -> 3.3.0.5 --- scripts/controls.lua | 491 +++++++++++++++++++++++++-------------------------- 1 file changed, 244 insertions(+), 247 deletions(-) (limited to 'scripts/controls.lua') diff --git a/scripts/controls.lua b/scripts/controls.lua index f7a532f..3fa3de3 100644 --- a/scripts/controls.lua +++ b/scripts/controls.lua @@ -44,256 +44,253 @@ function controlsEvent(deviceType, ctrlType, ctrlPos, value, funcIndex, targetDe local oldTcks = GetTicks() - local delay = 333 + local delay = 600 if funcIndex ~= -1 then - if IsSLIFunction("maxgear", funcIndex) and mMaxGearFeedbackAllowed then - -- max gear switch - -- value from 4 to 7 - local mxgear = 0 - mxgear = GetCarInfo("maxgear") - - leftStr = "GEAR " - rightStr = rightStr.format( "MAX%1d ", mxgear) - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("brightness", funcIndex) and mBrightnessFeedbackAllowed then - -- brightness feedback (switch or buttons) - BrightnessFeedBack(targetdev) - - leftStr = "888888" - rightStr = "888888" - - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("ospfactor", funcIndex) then - print "ospfactor: " .. ospf - if mOSPFeedbackAllowed then - -- OSP Factor feedback - leftStr = "OSP " - - local ospf = GetContextInfo("ospfactor") - rightStr = rightStr.format(" %03d ", ospf) - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - end - - elseif IsSLIFunction("speedmetric", funcIndex) and mUnitFeedbackAllowed then - -- metric KPH or MPH - local spdm = false - spdm = GetContextInfo("speedmetric") - - leftStr = "SPD " - rightStr = " KPH " - if spdm then rightStr = " MPH " end - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif dev == "FANATEC" and IsSLIFunction("ospmethod", funcIndex) and mFanatecOSPFeedbackAllowed then - -- fanatec speedlimitermethod feedback - local info = GetContextInfo("ospmethod") - ftecStr = ftecStr.format("P%2d", info+1) - - -- set digits - SetFanatecDigits(ftecStr) - FanatecSendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - elseif dev == "FANATEC" and IsSLIFunction("shiftlightsmethod", funcIndex) and mFanatecShiftlightsFeedbackAllowed then - -- fanatec speedlimitermethod feedback - local info = GetContextInfo("shiftlightsmethod") - ftecStr = ftecStr.format("P%2d", info+1) - - -- set digits - SetFanatecDigits(ftecStr) - FanatecSendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - elseif dev == "FANATEC" and IsSLIFunction("speedlimitermethod", funcIndex) and mFanatecSpeedLimiterFeedbackAllowed then - -- fanatec speedlimitermethod feedback - local info = GetContextInfo("speedlimitermethod") - ftecStr = ftecStr.format("P%2d", info+1) - - -- set digits - SetFanatecDigits(ftecStr) - FanatecSendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("fanatecdigits", funcIndex) and mFanatecDigitsFeedbackAllowed then - -- fanatecdigits feedback - local info = GetContextInfo("fanatecdigits") - ftecStr = ftecStr.format("P%2d", info+1) - - -- set digits - SetFanatecDigits(ftecStr) - FanatecSendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("rightdigits", funcIndex) and mRightDigitsFeedbackAllowed then - -- rightdigits feedback - local info = GetContextInfo("rightdigits") - - if ctrlType == 1 then - leftStr = leftStr.format("B%02d ", ctrlPos) - else - leftStr = leftStr.format("S%1d ", ctrlPos) - end - rightStr = rightStr.format("P%02d ", info+1) - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("leftdigits", funcIndex) and mLeftDigitsFeedbackAllowed then - -- leftdigits feedback - local info = GetContextInfo("leftdigits") - rightStr = leftStr.format("P%02d ", info+1) - - if ctrlType == 1 then - leftStr = rightStr.format("B%02d ", ctrlPos) - else - leftStr = rightStr.format("S%1d ", ctrlPos) - end - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - - elseif IsSLIFunction("lowfuel", funcIndex) and mLowFuelFeedbackAllowed then - -- lowfuel feedback - -- get the option - local info = GetContextInfo("lowfuel") - - -- set digits - leftStr = leftStr.format("FUEL ", ctrlPos) - rightStr = rightStr.format("L %02d ", info) - - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - end + if IsSLIFunction("maxgear", funcIndex) and mMaxGearFeedbackAllowed then + -- max gear switch + -- value from 4 to 7 + local mxgear = 0 + mxgear = GetCarInfo("maxgear") + + leftStr = "GEAR " + rightStr = rightStr.format( "MAX%1d ", mxgear) + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("brightness", funcIndex) and mBrightnessFeedbackAllowed then + -- brightness feedback (switch or buttons) + BrightnessFeedBack(targetdev) + + leftStr = "888888" + rightStr = "888888" + + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("ospfactor", funcIndex) and mOSPFeedbackAllowed then + -- OSP Factor feedback + leftStr = "OSP " + + local ospf = GetContextInfo("ospfactor") + rightStr = rightStr.format(" %03d ", ospf) + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("speedmetric", funcIndex) and mUnitFeedbackAllowed then + -- metric KPH or MPH + local spdm = false + spdm = GetContextInfo("speedmetric") + + leftStr = "SPD " + rightStr = " KPH " + if spdm then rightStr = " MPH " end + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif dev == "FANATEC" and IsSLIFunction("ospmethod", funcIndex) and mFanatecOSPFeedbackAllowed then + -- fanatec speedlimitermethod feedback + local info = GetContextInfo("ospmethod") + ftecStr = ftecStr.format("P%2d", info+1) + + -- set digits + SetFanatecDigits(ftecStr) + FanatecSendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + elseif dev == "FANATEC" and IsSLIFunction("shiftlightsmethod", funcIndex) and mFanatecShiftlightsFeedbackAllowed then + -- fanatec speedlimitermethod feedback + local info = GetContextInfo("shiftlightsmethod") + ftecStr = ftecStr.format("P%2d", info+1) + + -- set digits + SetFanatecDigits(ftecStr) + FanatecSendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + elseif dev == "FANATEC" and IsSLIFunction("speedlimitermethod", funcIndex) and mFanatecSpeedLimiterFeedbackAllowed then + -- fanatec speedlimitermethod feedback + local info = GetContextInfo("speedlimitermethod") + ftecStr = ftecStr.format("P%2d", info+1) + + -- set digits + SetFanatecDigits(ftecStr) + FanatecSendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("fanatecdigits", funcIndex) and mFanatecDigitsFeedbackAllowed then + -- fanatecdigits feedback + local info = GetContextInfo("fanatecdigits") + ftecStr = ftecStr.format("P%2d", info+1) + + -- set digits + SetFanatecDigits(ftecStr) + FanatecSendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("rightdigits", funcIndex) and mRightDigitsFeedbackAllowed then + -- rightdigits feedback + local info = GetContextInfo("rightdigits") + + if ctrlType == 1 then + leftStr = leftStr.format("B%02d ", ctrlPos) else + leftStr = leftStr.format("S%1d ", ctrlPos) + end + rightStr = rightStr.format("P%02d ", info+1) + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("leftdigits", funcIndex) and mLeftDigitsFeedbackAllowed then + -- leftdigits feedback + local info = GetContextInfo("leftdigits") + rightStr = leftStr.format("P%02d ", info+1) - if ctrlType == 0 then - -- switch - - if mDemoMapToKeyAllowed and ctrlPos == mDemoMapToKeySwitch then - -- demo script - -- mapping a keystroke (see global.lua to set the targeted switch) - local key = "" - if value == 2 then key = "v" end - -- if value == 3 then key = "K" end - -- if value == 4 then key = "v" end - -- if value == 5 then key = "F5" end - if key ~= "" then - -- params: key, delay, modifier - SetKeystroke(key, 100, "") - end - end - - if mSwitchFeedbackAllowed then - -- general switch feedback (see global.lua to activate) - leftStr = leftStr.format("S%1d ", ctrlPos) - rightStr = rightStr.format("P%02d ", value) - - -- set digits - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - end - elseif ctrlType == 1 then - if ctrlPos == mDumpLapButton and dev == "SLI-PRO" and value>0 and mDumpLapAllowed then - -- sample script using button of SLI-PRO to - -- toggle telemetry dumplastlap flag (true or false) - -- telemetry logs are stored in telemetry directory - -- after each completed lap - local dlap = GetContextInfo("dumplastlap") - local flag = not dlap; - TelemetryTools("dumplastlap", flag); - -- set digits - leftStr = "tELENN" - if flag then - rightStr = "SAVE " - else - rightStr = "FALSE " - end - UpdateDigits(leftStr, rightStr) - SLISendReport(0) - - state = 1 - -- set timeout - oldTcks = GetTicks() + delay - end - end + if ctrlType == 1 then + leftStr = rightStr.format("B%02d ", ctrlPos) + else + leftStr = rightStr.format("S%1d ", ctrlPos) + end + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + + elseif IsSLIFunction("lowfuel", funcIndex) and mLowFuelFeedbackAllowed then + -- lowfuel feedback + -- get the option + local info = GetContextInfo("lowfuel") + + -- set digits + leftStr = leftStr.format("FUEL ", ctrlPos) + rightStr = rightStr.format("L %02d ", info) + + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + end + else + + if ctrlType == 0 then + -- switch + + if mDemoMapToKeyAllowed and ctrlPos == mDemoMapToKeySwitch then + -- demo script + -- mapping a keystroke (see global.lua to set the targeted switch) + local key = "" + if value == 2 then key = "v" end + -- if value == 3 then key = "K" end + -- if value == 4 then key = "v" end + -- if value == 5 then key = "F5" end + if key ~= "" then + -- params: key, delay, modifier + SetKeystroke(key, 100, "") + end + end + + if mSwitchFeedbackAllowed then + -- general switch feedback (see global.lua to activate) + leftStr = leftStr.format("S%1d ", ctrlPos) + rightStr = rightStr.format("P%02d ", value) + + -- set digits + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + end + elseif ctrlType == 1 then + if ctrlPos == mDumpLapButton and dev == "SLI-PRO" and value>0 and mDumpLapAllowed then + -- sample script using button of SLI-PRO to + -- toggle telemetry dumplastlap flag (true or false) + -- telemetry logs are stored in telemetry directory + -- after each completed lap + local dlap = GetContextInfo("dumplastlap") + local flag = not dlap; + TelemetryTools("dumplastlap", flag); + -- set digits + leftStr = "tELENN" + if flag then + rightStr = "SAVE " + else + rightStr = "FALSE " + end + UpdateDigits(leftStr, rightStr) + SLISendReport(0) + + state = 1 + -- set timeout + oldTcks = GetTicks() + delay + end + end end if state >= 1 then - -- loop until timeout - local newtcks = GetTicks() - loopFlag = true - while(oldTcks > newtcks and loopFlag ) do - SLISleep(10) - newtcks = GetTicks() - SetLeftDigits(leftStr) - SetRightDigits(rightStr) - SLISendReport(0) - end - - -- cleanup device - oldTcks = 0 - state = 0 - toggleAllLed(0) - UpdateDigits(" ", " ") - SLISendReport(0) - - -- allow Mgr to display info on digits - SetDigitsAllowed(true) + -- loop until timeout + local newtcks = GetTicks() + loopFlag = true + while(oldTcks > newtcks and loopFlag ) do + SLISleep(10) + newtcks = GetTicks() + SetLeftDigits(leftStr) + SetRightDigits(rightStr) + SLISendReport(0) + end + + -- cleanup device + oldTcks = 0 + state = 0 + toggleAllLed(0) + UpdateDigits(" ", " ") + SLISendReport(0) + + -- allow Mgr to display info on digits + SetDigitsAllowed(true) end -- skip @@ -319,8 +316,8 @@ function BrightnessFeedBack(device) toggleAllLed(1) if device == "SLI-PRO" then - -- SLI-PRO Device - -- set digits - UpdateDigits("888888", "888888") + -- SLI-PRO Device + -- set digits + UpdateDigits("888888", "888888") end end -- cgit v1.2.3