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/simracef1.lua | 993 ++++++++++++++++++++++++-------------------------- 1 file changed, 472 insertions(+), 521 deletions(-) (limited to 'scripts/simracef1.lua') diff --git a/scripts/simracef1.lua b/scripts/simracef1.lua index 152b684..2907f4c 100644 --- a/scripts/simracef1.lua +++ b/scripts/simracef1.lua @@ -1,8 +1,9 @@ --- SIMRACE F1 Lua Script v1.1.3 +-- SIMRACE F1 Lua Script v1.1.3.5 -- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved. -- this script builds all functions associated with -- left and right panels of SIMRACE-F1 device --- last change by Zappadoc - 2013-10 +-- last change by Zappadoc - 2013-11 + -- ============================================================ -- Left and Right Panel functions @@ -20,31 +21,31 @@ function srf1DigitsEvent(swFunction, side) -- call custom script if side == 0 then - local result = custom_srf1LeftDigitsEvent(swValue) - -- 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_srf1LeftDigitsEvent(swValue) - -- 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 result = custom_srf1LeftDigitsEvent(swValue) + -- 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_srf1LeftDigitsEvent(swValue) + -- 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 else - local result = custom_srf1RightDigitsEvent(swValue) - -- 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_srf1RightDigitsEvent(swValue) - -- 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 result = custom_srf1RightDigitsEvent(swValue) + -- 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_srf1RightDigitsEvent(swValue) + -- 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 end local hr = 0 @@ -55,7 +56,7 @@ function srf1DigitsEvent(swFunction, side) local lpt = 0.0 local diffTimeFlag = false local timeFlag = false - local systemflag = false + local systemFlag = false local unit = false local inf = "" local spd = 0.0 @@ -72,7 +73,7 @@ function srf1DigitsEvent(swFunction, side) dlt = GetContextInfo("displaylaptime") if dlt == nil then dlt = false end if dlt and side == 1 and swValue ~= 47 and swValue ~= 48 then - swValue = 11 + swValue = 11 end -- check if quick info button is down @@ -80,16 +81,16 @@ function srf1DigitsEvent(swFunction, side) qi = GetContextInfo("quickinfobutton") if qi == nil or qi == 0 then qi = false end if qi then - -- get index for left and right panel - local qiInf = 1 - if side == 0 then - qiInf = GetContextInfo("quickinfoleft") - else - qiInf = GetContextInfo("quickinforight") - end - if qiInf == nil then qiInf = 1 end - -- force position to match QI preference - swValue = qiInf + -- get index for left and right panel + local qiInf = 1 + if side == 0 then + qiInf = GetContextInfo("quickinfoleft") + else + qiInf = GetContextInfo("quickinforight") + end + if qiInf == nil then qiInf = 1 end + -- force position to match QI preference + swValue = qiInf end -- check if PIT Feedback ON @@ -97,15 +98,15 @@ function srf1DigitsEvent(swFunction, side) pf = GetContextInfo("pitfeedback") if pf == nil or pf == 0 then pf = false end if pf then - -- force position to PIT/SPEED function if car pits - local pit = GetCarInfo("inpits") - if pit > 0 then - if side == 0 then - swValue = 45 - else - swValue = 1 - end - end + -- force position to PIT/SPEED function if car pits + local pit = GetCarInfo("inpits") + if pit > 0 then + if side == 0 then + swValue = 45 + else + swValue = 1 + end + end end -- get current simulation name @@ -115,579 +116,529 @@ function srf1DigitsEvent(swFunction, side) -- check postion and compute left panel string if swValue == 1 then - -- speed only - srf1Panel = string.format("%3.0f ", spd ) + -- speed only + srf1Panel = string.format("%3.0f ", spd ) elseif swValue == 2 then - -- fuel - local fuel = GetCarInfo("fuel") - if fuel ~= nil then - fuel = GetFuel(fuel, unit) - if fuel >= 100 then - srf1Panel = string.format("F%3d", round(fuel)) - elseif fuel >= 10 then - srf1Panel = string.format("F%2d ", round(fuel)) - else - srf1Panel = string.format("F%1.1f ", fuel) - end - end + -- fuel + local fuel = GetCarInfo("fuel") + if fuel ~= nil then + fuel = GetFuel(fuel, unit) + if fuel >= 100 then + srf1Panel = string.format("F%3d", round(fuel)) + elseif fuel >= 10 then + srf1Panel = string.format("F%2d ", round(fuel)) + else + srf1Panel = string.format("F%1.1f ", fuel) + end + end elseif swValue == 3 then - -- position - inf = GetContextInfo("position") - if inf ~= nil then - if inf >= 100 then - srf1Panel = string.format("P%3d", inf) - elseif inf >= 10 then - srf1Panel = string.format("P%2d ", inf) - else - srf1Panel = string.format("P%1d ", inf) - end - end + -- position + inf = GetContextInfo("position") + if inf ~= nil then + if inf >= 100 then + srf1Panel = string.format("P%3d", inf) + elseif inf >= 10 then + srf1Panel = string.format("P%2d ", inf) + else + srf1Panel = string.format("P%1d ", inf) + end + end elseif swValue == 4 then - -- laps completed - inf = GetContextInfo("laps") - if inf ~= nil then - -- if more then 99 laps - if inf >= 100 then - srf1Panel = string.format("L%3d", inf) - elseif inf >= 10 then - srf1Panel = string.format("L%2d ", inf) - else - srf1Panel = string.format("L%1d ", inf) - end - end + -- laps completed + inf = GetContextInfo("laps") + if inf ~= nil then + -- if more then 99 laps + if inf >= 100 then + srf1Panel = string.format("L%3d", inf) + elseif inf >= 10 then + srf1Panel = string.format("L%2d ", inf) + else + srf1Panel = string.format("L%1d ", inf) + end + end elseif swValue == 5 then - -- sector - inf = GetCarInfo("sector") - if inf ~= nil then - -- check if sector > 9 - if inf >9 then - srf1Panel = string.format("S%2d ", inf) - else - srf1Panel = string.format("S%1d ", inf) - end - end + -- sector + inf = GetCarInfo("sector") + if inf ~= nil then + -- check if sector > 9 + if inf >9 then + srf1Panel = string.format("S%2d ", inf) + else + srf1Panel = string.format("S%1d ", inf) + end + end elseif swValue == 6 then - -- total laps if available - local tl = GetContextInfo("lapscount") - if tl < 1 then tl = 0 end - -- if more then 99 laps - if tl >= 100 then - srf1Panel = string.format("T%3d", tl) - elseif tl >= 10 then - srf1Panel = string.format("T%2d ", tl) - else - srf1Panel = string.format("T%1d ", tl) - end + -- total laps if available + local tl = GetContextInfo("lapscount") + if tl < 1 then tl = 0 end + -- if more then 99 laps + if tl >= 100 then + srf1Panel = string.format("T%3d", tl) + elseif tl >= 10 then + srf1Panel = string.format("T%2d ", tl) + else + srf1Panel = string.format("T%1d ", tl) + end elseif swValue == 7 then - -- water temp - inf = GetCarInfo("watertemp") - if inf ~= nil then - inf = GetTemp(inf, unit) - srf1Panel = string.format("W%2.1f", inf) - end + -- water temp + inf = GetCarInfo("watertemp") + if inf ~= nil then + inf = GetTemp(inf, unit) + srf1Panel = string.format("W%2.1f", inf) + end elseif swValue == 8 then - -- oil temp - inf = GetCarInfo("oiltemp") - if inf ~= nil then - inf = GetTemp(inf, unit) - srf1Panel = string.format("o%2.1f", inf) - end + -- oil temp + inf = GetCarInfo("oiltemp") + if inf ~= nil then + inf = GetTemp(inf, unit) + srf1Panel = string.format("o%2.1f", inf) + end elseif swValue == 9 then - -- best lap time - timeFlag = true - lpt = GetTimeInfo("laptime") + -- best lap time + timeFlag = true + lpt = GetTimeInfo("laptime") elseif swValue == 10 then - -- best lap time - timeFlag = true - lpt = GetTimeInfo("bestlaptime") + -- best lap time + timeFlag = true + lpt = GetTimeInfo("bestlaptime") elseif swValue == 11 then - -- last lap time - timeFlag = true - lpt = GetTimeInfo("lastlaptime") + -- last lap time + timeFlag = true + lpt = GetTimeInfo("lastlaptime") elseif swValue >= 12 and swValue <= 18 and isAppIRacing(sim) then - timeFlag = true - diffTimeFlag = true - -- iRacing partials - local ts = GetContextInfo("partialcount") - local sector = GetCarInfo("sector") - if ts ~= nil and ts > 0 then - if swValue == 12 then - lpt = GetPartialTimeInfo("currentpartial", sector) - elseif swValue == 13 then - lpt = GetPartialTimeInfo("vsbestlap", sector) - elseif swValue == 14 then - lpt = GetPartialTimeInfo("vsoptimallap", sector) - elseif swValue == 15 then - lpt = GetPartialTimeInfo("vsoptimalsector", sector) - elseif swValue == 16 then - lpt = GetPartialTimeInfo("vssessionbestlap", sector) - elseif swValue == 17 then - lpt = GetPartialTimeInfo("vssessionoptimallap", sector) - elseif swValue == 18 then - lpt = GetPartialTimeInfo("vssessionoptimalsector", sector) - end - else - lpt = 0.0 - end + timeFlag = true + diffTimeFlag = true + -- iRacing partials + local ts = GetContextInfo("partialcount") + local sector = GetCarInfo("sector") + if ts ~= nil and ts > 0 then + if swValue == 12 then + lpt = GetPartialTimeInfo("currentpartial", sector) + elseif swValue == 13 then + lpt = GetPartialTimeInfo("vsbestlap", sector) + elseif swValue == 14 then + lpt = GetPartialTimeInfo("vsoptimallap", sector) + elseif swValue == 15 then + lpt = GetPartialTimeInfo("vsoptimalsector", sector) + elseif swValue == 16 then + lpt = GetPartialTimeInfo("vssessionbestlap", sector) + elseif swValue == 17 then + lpt = GetPartialTimeInfo("vssessionoptimallap", sector) + elseif swValue == 18 then + lpt = GetPartialTimeInfo("vssessionoptimalsector", sector) + end + else + lpt = 0.0 + end elseif swValue == 19 then - -- real time diff vs your best - diffTimeFlag = true - timeFlag = true - lpt = GetTimeInfo("realdiffbest") + -- real time diff vs your best + diffTimeFlag = true + timeFlag = true + lpt = GetTimeInfo("realdiffbest") elseif swValue == 20 then - -- real time diff vs your last - diffTimeFlag = true - timeFlag = true - lpt = GetTimeInfo("realdifflast") + -- real time diff vs your last + diffTimeFlag = true + timeFlag = true + lpt = GetTimeInfo("realdifflast") elseif swValue == 21 then - -- get an average consumption of fuel per lap and gives the remaining laps - local remainintank = GetCarInfo("remainlapsintank") - srf1Panel = string.format("L%3.0f", math.floor(remainintank) ) + -- get an average consumption of fuel per lap and gives the remaining laps + local remainintank = GetCarInfo("remainlapsintank") + srf1Panel = string.format("L%3.0f", math.floor(remainintank) ) elseif swValue == 22 then - -- rpm - isSlowUpdate = true - --timeFlag = true - local rpm = GetCarInfo("rpm") - local r = rpm / 10.0 - if r < 1000 then - srf1Panel = string.format("%3.1f", r) - else - srf1Panel = string.format("%4d.", round(r)) - end + -- rpm + isSlowUpdate = true + --timeFlag = true + local rpm = GetCarInfo("rpm") + local r = rpm / 10.0 + if r < 1000 then + srf1Panel = string.format("%3.1f", r) + else + srf1Panel = string.format("%4d.", round(r)) + end elseif swValue == 23 then - -- track size - isSlowUpdate = true - --timeFlag = true - local trcksz = GetContextInfo("tracksize") - local r = trcksz / 10 - if r < 1000 then - srf1Panel = string.format("%3.1f", r) - else - srf1Panel = string.format("%4d.", round(r)) - end + -- track size + isSlowUpdate = true + --timeFlag = true + local trcksz = GetContextInfo("tracksize") + local r = trcksz / 10 + if r < 1000 then + srf1Panel = string.format("%3.1f", r) + else + srf1Panel = string.format("%4d.", round(r)) + end elseif swValue == 24 then - -- distance percent - local dist = GetContextInfo("lapdistance") - -- track size - local trcksz = GetContextInfo("tracksize") - local p = round(dist / (trcksz / 100)) - srf1Panel = string.format("D%3d", p ) + -- distance percent + local dist = GetContextInfo("lapdistance") + -- track size + local trcksz = GetContextInfo("tracksize") + local p = round(dist / (trcksz / 100)) + srf1Panel = string.format("D%3d", p ) elseif swValue == 25 then - -- kers - local kers = GetCarInfo("kers") - srf1Panel = string.format("K%3d", round(kers/1000)) + -- kers + local kers = GetCarInfo("kers") + srf1Panel = string.format("K%3d", round(kers/1000)) elseif swValue == 26 then - -- kers max - local kmx = GetCarInfo("kersmax") - srf1Panel = string.format("K%3d", round(kmx/1000)) + -- kers max + local kmx = GetCarInfo("kersmax") + srf1Panel = string.format("K%3d", round(kmx/1000)) elseif swValue == 27 then - -- drs - local drs = GetCarInfo("drs") - if drs == 1 then - srf1Panel = "ON " - else - srf1Panel = "OFF" - end + -- drs + local drs = GetCarInfo("drs") + if drs == 1 then + srf1Panel = "ON " + else + srf1Panel = "OFF" + end elseif swValue == 28 then - -- kers percent - local kers = GetCarInfo("kers") - srf1Panel = string.format("K%3d", round((kers/1000)/4)) + -- kers percent + local kers = GetCarInfo("kers") + srf1Panel = string.format("K%3d", round((kers/1000)/4) ) elseif swValue == 29 then - -- wheels temp if available - inf = GetCarInfo("wheeltempfrontleft") - if inf ~= nil then - -- if rFactor convert Kelvin to Celsius (see global.lua) - if isAppRFactor(sim) then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + -- wheels temp if available + inf = GetCarInfo("wheeltempfrontleft") + if inf ~= nil then + -- if rFactor convert Kelvin to Celsius (see global.lua) + if isAppRFactor(sim) then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 30 then - inf = GetCarInfo("wheeltempfrontright") - if inf ~= nil then - if isAppRFactor(sim) then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("wheeltempfrontright") + if inf ~= nil then + if isAppRFactor(sim) then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 31 then - inf = GetCarInfo("wheeltemprearleft") - if inf ~= nil then - if isAppRFactor(sim) then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("wheeltemprearleft") + if inf ~= nil then + if isAppRFactor(sim) then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 32 then - inf = GetCarInfo("wheeltemprearright") - if inf ~= nil then - if isAppRFactor(sim) then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("wheeltemprearright") + if inf ~= nil then + if isAppRFactor(sim) then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 33 then - -- wheels pressure if available - inf = GetCarInfo("wheelpressfrontleft") - if inf ~= nil then - -- convert to psi - srf1Panel = string.format("%2.1f ", inf / 6.88) - end + -- wheels pressure if available + inf = GetCarInfo("wheelpressfrontleft") + if inf ~= nil then + -- convert to psi + srf1Panel = string.format("%2.1f ", inf / 6.88) + end elseif swValue == 34 then - inf = GetCarInfo("wheelpressfrontright") - if inf ~= nil then - srf1Panel = string.format("%2.1f ", inf / 6.88) - end + inf = GetCarInfo("wheelpressfrontright") + if inf ~= nil then + srf1Panel = string.format("%2.1f ", inf / 6.88) + end elseif swValue == 35 then - inf = GetCarInfo("wheelpressrearleft") - if inf ~= nil then - srf1Panel = string.format("%2.1f ", inf / 6.88) - end + inf = GetCarInfo("wheelpressrearleft") + if inf ~= nil then + srf1Panel = string.format("%2.1f ", inf / 6.88) + end elseif swValue == 36 then - inf = GetCarInfo("wheelpressrearright") - if inf ~= nil then - srf1Panel = string.format("%2.1f ", inf / 6.88) - end + inf = GetCarInfo("wheelpressrearright") + if inf ~= nil then + srf1Panel = string.format("%2.1f ", inf / 6.88) + end elseif swValue == 37 then - -- brakes temp if available - inf = GetCarInfo("braketempfrontleft") - if inf ~= nil then - if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + -- brakes temp if available + inf = GetCarInfo("braketempfrontleft") + if inf ~= nil then + if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 38 then - inf = GetCarInfo("braketempfrontright") - if inf ~= nil then - if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("braketempfrontright") + if inf ~= nil then + if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 39 then - inf = GetCarInfo("braketemprearleft") - if inf ~= nil then - if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("braketemprearleft") + if inf ~= nil then + if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 40 then - inf = GetCarInfo("braketemprearright") - if inf ~= nil then - if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end - srf1Panel = string.format("%3.0f ", inf) - end + inf = GetCarInfo("braketemprearright") + if inf ~= nil then + if isAppRFactor(sim) or sim == "GTR2.exe" then inf = KtoC(inf) end + srf1Panel = string.format("%3.0f ", inf) + end elseif swValue == 41 then - -- time remaining if available - lpt = GetTimeInfo("timeremaining") - timeFlag = true + -- time remaining if available + lpt = GetTimeInfo("timeremaining") + timeFlag = true elseif swValue == 42 then - -- PC system time - systemflag = true - lpt = GetTimeInfo("systemtime") - timeFlag = true - --diffTimeFlag = true + -- PC system time + systemFlag = true + lpt = GetTimeInfo("systemtime") + timeFlag = true + --diffTimeFlag = true elseif swValue == 43 then - -- time elapsed if available - lpt = GetTimeInfo("timetotalelapsed") - timeFlag = true + -- time elapsed if available + lpt = GetTimeInfo("timetotalelapsed") + timeFlag = true elseif swValue == 44 then - -- last sector 1, 2 and 3 - local sector = GetCarInfo("sector") - timeFlag = true - --diffTimeFlag = true - if sector == 1 then - -- sector 3 - local ls1 = GetTimeInfo("lastsector1") - local ls2 = GetTimeInfo("lastsector2") - local lt = GetTimeInfo("lastlaptime") - if ls1 > 0 and ls2 > 0 then - lpt = lt - (ls1 + ls2) - end - elseif sector == 2 then - local ls1 = GetTimeInfo("lastsector1") - lpt = ls1 - else - -- sector 3 - local ls2 = GetTimeInfo("lastsector2") - lpt = ls2 - end + -- last sector 1, 2 and 3 + local sector = GetCarInfo("sector") + timeFlag = true + if sector == 1 then + -- sector 3 + local ls3 = GetTimeInfo("lastsector3") + lpt = ls3 + elseif sector == 2 then + local ls1 = GetTimeInfo("lastsector1") + lpt = ls1 + else + -- sector 3 + local ls2 = GetTimeInfo("lastsector2") + lpt = ls2 + end elseif swValue == 45 then - -- PIT - srf1Panel = "PIT " + -- PIT + srf1Panel = "PIT " elseif swValue == 46 then - -- sc - local sc = GetContextInfo("safetycare") - if sc == 1 then - srf1Panel = "SCAR" - else - srf1Panel = "OFF " - end + -- sc + local sc = GetContextInfo("safetycare") + if sc == 1 then + srf1Panel = "SCAR" + else + srf1Panel = "OFF " + end elseif swValue == 47 then - -- real time delta vs last + last sector diff 1, 2 and 3 - local sector = GetCarInfo("sector") - timeFlag = true - diffTimeFlag = true - if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then - -- 8s delay, increase it if needed - mDiffSectorDelay = GetTicks() + 8000 - mDiffOldSector = sector - end - -- init backup vars - if mOld_lt == nil then - mOld_ls1 = 0.00000 - mOld_ls2 = 0.00000 - mOld_lt = 0.00000 - mDelta_lpt = 0.00000 - mDelta_lptb = 0.00000 - end - - -- display delta by default - lpt = GetTimeInfo("realdifflast") - - if mDiffSectorDelay > GetTicks() then - -- display sector - if sector == 1 then - -- sector 3 - --local ls1 = GetTimeInfo("lastsector1") - --local ls2 = GetTimeInfo("lastsector2") - local lt = GetTimeInfo("lastlaptime") - - --i-- delta sector 3f ls1 > 0 and ls2 > 0 and lt > 0 and mOld_ls1 > 0 and mOld_ls2 > 0 and mOld_lt > 0 then - -- delta sector 3 - --lpt = (lt - (ls1 + ls2)) - (mOld_lt - (mOld_ls1 + mOld_ls2)) - if lt > 0 and mOld_lt > 0 then - if lt ~= mOld_lt then - mDelta_lpt = lt - mOld_lt - print(mDelta_lpt, lt, mOld_lt) - end - lpt = mDelta_lpt - end - - mOld_lt = lt - - - elseif sector == 2 then - -- sector 1 - local ls1 = GetTimeInfo("lastsector1") - if ls1 > 0 and mOld_ls1 > 0 then - lpt = ls1 - mOld_ls1 - end - mOld_ls2 = GetTimeInfo("lastsector2") - print(lpt, ls1 , mOld_ls1, mOld_ls2) - - else - -- sector 2 - local ls2 = GetTimeInfo("lastsector2") - if ls2 > 0 and mOld_ls2 > 0 then - lpt = ls2 - mOld_ls2 - end - mOld_ls1 = GetTimeInfo("lastsector1") - print(lpt, ls2 , mOld_ls1, mOld_ls2) - end - end + -- real time delta vs last + last sector diff 1, 2 and 3 + timeFlag = true + diffTimeFlag = true + + lpt = GetDeltaLastTime(false) elseif swValue == 48 then - -- real time delta vs best + last sector diff 1, 2 and 3 - - -- get sector - local sector = GetCarInfo("sector") - -- set flags - timeFlag = true - diffTimeFlag = true - - -- set delay - if mDiffSectorDelay == nil or mDiffOldSector == nil or mDiffOldSector ~= sector then - -- 8s delay, increase it if needed - mDiffSectorDelay = GetTicks() + 8000 - mDiffOldSector = sector - end - - -- init backup vars - if mOld_bt == nil then - mOld_bs1 = 0.00000 - mOld_bs2 = 0.00000 - mOld_bt = 0.00000 - mDelta_lpt = 0.00000 - mDelta_lptb = 0.00000 - end - - -- display delta by default - lpt = GetTimeInfo("realdiffbest") - - if mDiffSectorDelay > GetTicks() then - -- display sector diff during delay - if sector == 1 then - -- sector 3 - --local bs1 = GetTimeInfo("bestsector1") - --local bs2 = GetTimeInfo("bestsector2") - local bt = GetTimeInfo("bestlaptime") - - --if bs1 > 0 and bs2 > 0 and bt > 0 and mOld_bs1 > 0 and mOld_bs2 > 0 and mOld_bt > 0 then - -- delta sector 3 - -- lpt = (bt - (bs1 + bs2)) - (mOld_bt - (mOld_bs1 + mOld_bs2)) - if bt > 0 and mOld_bt > 0 then - if bt ~= mOld_bt then - mDelta_lptb = bt - mOld_bt - print(mDelta_lpt, bt, mOld_bt) - end - lpt = mDelta_lptb - end - - mOld_bt = bt - - elseif sector == 2 then - -- sector 1 - local bs1 = GetTimeInfo("bestsector1") - if bs1 > 0 and mOld_bs1 > 0 then - lpt = bs1 - mOld_bs1 - end - print(lpt, bs1 ) - mOld_bs2 = GetTimeInfo("bestsector2") - - else - -- sector 2 - local bs2 = GetTimeInfo("bestsector2") - if bs2 > 0 and mOld_bs2 > 0 then - lpt = bs2 - mOld_bs2 - end - print(lpt, bs2 ) - mOld_bs1 = GetTimeInfo("bestsector1") - end - end + -- real time delta vs best + last sector diff 1, 2 and 3 + + -- set flags + timeFlag = true + diffTimeFlag = true + + lpt = GetDeltaBestTime(false) + + elseif swValue == 49 then + timeFlag = true + -- current sector + local sector = GetCarInfo("sector") + if sector == 1 then + lpt = GetTimeInfo("sector1") + elseif sector == 2 then + lpt = GetTimeInfo("sector2") + else + -- sector 3 + lpt = GetTimeInfo("sector3") + end + + elseif swValue == 50 then + timeFlag = true + -- best sector 1 + lpt = GetTimeInfo("bestsector1") + + elseif swValue == 51 then + timeFlag = true + -- best sector 2 + lpt = GetTimeInfo("bestsector2") + + elseif swValue == 52 then + timeFlag = true + -- last sector 1 + lpt = GetTimeInfo("lastsector1") + + elseif swValue == 53 then + timeFlag = true + -- last sector 2 + lpt = GetTimeInfo("lastsector2") + + elseif swValue == 54 then + timeFlag = true + -- last sector 3 + lpt = GetTimeInfo("lastsector3") + + elseif swValue == 55 then + timeFlag = true + -- last sector 3 + lpt = GetTimeInfo("bestsector3") + + elseif swValue == 56 then + timeFlag = true + -- current sector 1 (rFactor) + lpt = GetTimeInfo("sector1") + + elseif swValue == 57 then + timeFlag = true + -- current sector 2 (rFactor) + lpt = GetTimeInfo("sector2") + + elseif swValue == 58 then + timeFlag = true + -- current sector 3 (rFactor) + lpt = GetTimeInfo("sector3") + + elseif swValue == 59 then + -- rfactor real time delta vs last + last sector diff 1, 2 and 3 + timeFlag = true + diffTimeFlag = true + lpt = GetDeltaLastTime(true) + + elseif swValue == 60 then + -- rfactor real time delta vs best + last sector diff 1, 2 and 3 + + -- set flags + timeFlag = true + diffTimeFlag = true + + lpt = GetDeltaBestTime(true) else - srf1Panel = " " + srf1Panel = " " end -- check if diff time is ready local diffOK = GetTimeInfo("realdifftimeready") - if diffTimeFlag and diffOK == false then - diffTimeFlag = false - timeFlag = false - srf1Panel = "NPEF" - - mOld_ls1 = 0.00000 - mOld_ls2 = 0.00000 - mOld_lt = 0.00000 - mDelta_lpt = 0.00000 - mDelta_lptb = 0.00000 + if diffTimeFlag and diffOK == false and dlt == false then + diffTimeFlag = false + timeFlag = false + srf1Panel = "NREF" end + + local c = "" local refreshRate = mRefreshLapTimeRate if diffTimeFlag then - c = "+" - refreshRate = mDeltaTimeDelay + c = "+" + refreshRate = mDeltaTimeDelay end if timeFlag and lpt ~= nil then - -- set char of negative number - if diffTimeFlag then - if lpt < 0 then c = "-" end - end - -- explod time - hr, mn, sc, hd, ms = timeDispatcher(lpt) + -- set char of negative number + if diffTimeFlag then + if lpt < 0 then c = "-" end + end + -- explod time + hr, mn, sc, hd, ms = timeDispatcher(lpt) --print("lpt: " .. lpt .. " m: " .. mn .. " - s: " .. sc .. " - ms: " .. ms .."\n" ) - -- update display every mDeltaTimeDelay time - if GetTicks() > (refreshRate + mDeltaTimeOldTicks ) then - mDeltaTimeOldTicks = GetTicks() - - if lpt == -1 or (mn + sc + ms) == 0.0000 then - mDeltaTimeBackup = "-.---" - - elseif systemflag then - mDeltaTimeBackup = string.format( "%2d.%02d", mn, sc) - - elseif mn > 9 then - -- > 9mn - if c == "" then - mDeltaTimeBackup = string.format( "%2d.%2d", mn, sc) - else - mDeltaTimeBackup = string.format( "%s%2d ", c, mn) - end - - elseif mn > 0 and mn < 10 then - -- < 10mn - if c == "" then - mDeltaTimeBackup = string.format( "%1d.%02d.%01d", mn, sc, hd) - else - mDeltaTimeBackup = string.format( "%s%1d.%02d", c, mn, sc) - end - - else - -- sc > 9 - if sc > 9 then - if c == "" then - mDeltaTimeBackup = string.format( "0.%2d.%1d", sc, hd) - else - mDeltaTimeBackup = string.format( "%s%02d.%01d", c, sc, hd) - end - - else - -- sc < 0 - if c == "" then - mDeltaTimeBackup = string.format( "0.%01d.%02d", sc, hd) - else - mDeltaTimeBackup = string.format( "%s%01d.%02d", c, sc, hd) - end - - end - end - end - - --print(srf1Panel,mDeltaTimeBackup) - srf1Panel = mDeltaTimeBackup - end - - if isSlowUpdate then - - if GetTicks() > ( refreshRate + mDeltaTimeOldTicks ) then - mDeltaTimeOldTicks = GetTicks() - if side == 0 then - mSRF1LeftText = srf1Panel - else - mSRF1RightText = srf1Panel - end - -- print(GetTicks() .. mSRF1RightText .."\n") - end + -- update display every mDeltaTimeDelay time + + --if GetTicks() > (refreshRate + mDeltaTimeOldTicks ) then + --mDeltaTimeOldTicks = GetTicks() + + if lpt == -1 or (mn + sc + ms) == 0.0000 then + mDeltaTimeBackup = "-.---" + + elseif systemFlag then + mDeltaTimeBackup = string.format( "%2d.%02d", mn, sc) + + elseif mn > 9 then + -- > 9mn + if c == "" then + mDeltaTimeBackup = string.format( "%2d.%2d", mn, sc) + else + mDeltaTimeBackup = string.format( "%s%2d ", c, mn) + end + + elseif mn > 0 and mn < 10 then + -- < 10mn + if c == "" then + mDeltaTimeBackup = string.format( "%1d.%02d.%01d", mn, sc, hd) + else + mDeltaTimeBackup = string.format( "%s%1d.%02d", c, mn, sc) + end + + else + -- sc > 9 + if sc > 9 then + if c == "" then + mDeltaTimeBackup = string.format( "0.%2d.%1d", sc, hd) + else + mDeltaTimeBackup = string.format( "%s%02d.%01d", c, sc, hd) + end + + else + -- sc < 0 + if c == "" then + mDeltaTimeBackup = string.format( "0.%01d.%02d", sc, hd) + else + mDeltaTimeBackup = string.format( "%s%01d.%02d", c, sc, hd) + end + + end + end + --end + + --print(srf1Panel,mDeltaTimeBackup) + srf1Panel = mDeltaTimeBackup + end + + if isSlowUpdate or diffTimeFlag or timeFlag or systemFlag then + if side == 0 then + if GetTicks() > ( refreshRate + mDeltaTimeOldTicks ) then + mDeltaTimeOldTicks = GetTicks() + mSRF1LeftText = srf1Panel + end else - if side == 0 then - mSRF1LeftText = srf1Panel - else - mSRF1RightText = srf1Panel - end + if GetTicks() > ( refreshRate + mDeltaTimeAlternateOldTicks ) then + mDeltaTimeAlternateOldTicks = GetTicks() + mSRF1RightText = srf1Panel + end + end + -- print(GetTicks() .. mSRF1RightText .."\n") + else + if side == 0 then + mSRF1LeftText = srf1Panel + else + mSRF1RightText = srf1Panel + end end -- print(mSRF1LeftText, mSRF1RightText, srf1Panel) -- send string to sli manager if side == 0 then - SetLeftDigits( mSRF1LeftText ) + SetLeftDigits( mSRF1LeftText ) else - SetRightDigits( mSRF1RightText ) + SetRightDigits( mSRF1RightText ) end return 1 -- cgit v1.2.3