fix: forkert last midt i et run — pålæsning afsluttes straks, målet der ikke tager varen regnes som fuldt (Wait), og resten læsses af i silo fra Wait (v1.11.7.0)

This commit is contained in:
2026-09-23 02:24:16 +02:00
parent 91c724b9f4
commit ce32eb8e44
5 changed files with 87 additions and 6 deletions
+11 -1
View File
@@ -127,7 +127,12 @@ local function startWaiting(adEnv, task)
if fillType == nil or rest < ADUnloadWait.MIN_REST_LITERS then
return
end
local free = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType)
local free, capacity = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType)
-- nil = målet tager slet ikke varen (forkert last fra et tidligere run): som "fuldt"
local isRejected = free == nil and ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType, true) == false
if isRejected then
free = 0
end
if free == nil or free >= ADUnloadWait.MIN_FREE_TO_UNLOAD then
return
end
@@ -169,6 +174,11 @@ local function updateWaiting(adEnv, task, wait, dt)
-- Friske tal til evt. bytte og til tilbage-loggen — ikke dem fra da ventningen startede.
wait.fillType, wait.rest = fillType, rest
local free, capacity = ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType)
local isRejected = free == nil and ADSmartPickup.getTargetFreeCapacity(adEnv, vehicle, fillType, true) == false
if isRejected then
free = 0
end
wait.isRejected = isRejected
-- run'ets "kør hjem under X %" (fri ≥ (100-X) % af kapaciteten), ellers standardreglen
local run = ADRunsController ~= nil and ADRunsController.getRunForVehicle(vehicle) or nil
local freeFraction = run ~= nil and run.returnBelowPercent ~= nil and (1 - run.returnBelowPercent / 100) or nil