feat: køretøjer navngives efter deres flow (AD-førernavn 'Milk Collect 1'), bruges i log og menu; modelnavn tilbage ved udmeldelse (v1.17.0.0)
This commit is contained in:
@@ -245,7 +245,7 @@ function ADOutbound.buildPlanInput(adEnv, run, vehicle)
|
||||
if warned[vehicle] == nil or warned[vehicle][key] ~= text then
|
||||
warned[vehicle] = warned[vehicle] or {}
|
||||
warned[vehicle][key] = text
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': %s", tostring(vehicle:getName()), text)
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': %s", tostring(ADRuns.vehicleLabel(vehicle)), text)
|
||||
end
|
||||
end
|
||||
-- gårdens eget behov (fabrikker/stalde) sælges ikke; kilderne selv tæller ikke som forbrugere
|
||||
@@ -254,7 +254,7 @@ function ADOutbound.buildPlanInput(adEnv, run, vehicle)
|
||||
product.reserve, product.reservedFor = demand.liters, demand.consumers
|
||||
end
|
||||
if quote == nil and unreachableName ~= nil then
|
||||
warnOnce(adEnv, vehicle, "sell:" .. product.name, string.format("'%s' kan ikke nå salgssted '%s' for %s – tjek vejnettet", tostring(vehicle:getName()), unreachableName, product.name))
|
||||
warnOnce(adEnv, vehicle, "sell:" .. product.name, string.format("'%s' kan ikke nå salgssted '%s' for %s – tjek vejnettet", tostring(ADRuns.vehicleLabel(vehicle)), unreachableName, product.name))
|
||||
else
|
||||
clearWarning(vehicle, "sell:" .. product.name)
|
||||
end
|
||||
@@ -352,7 +352,7 @@ local function applyTrip(adEnv, vehicle, run, trip, sourcesById)
|
||||
local sourceNames = {}
|
||||
for _, id in ipairs(trip.sourceIds) do table.insert(sourceNames, sourcesById[id] ~= nil and sourcesById[id].name or tostring(id)) end
|
||||
local why = trip.kind == "sell" and string.format("salg, %d %% af top", trip.percent or 0) or "lager"
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' udkørsel: %s fra %s → %s (%s)", tostring(vehicle:getName()), table.concat(names, "+"), table.concat(sourceNames, ", "), tostring(trip.targetName), why)
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' udkørsel: %s fra %s → %s (%s)", tostring(ADRuns.vehicleLabel(vehicle)), table.concat(names, "+"), table.concat(sourceNames, ", "), tostring(trip.targetName), why)
|
||||
end
|
||||
|
||||
-- Lagermål i en tæt silorække: AutoDrive tipper ved den FØRSTE aflæsningstrigger inden for sin
|
||||
@@ -378,7 +378,7 @@ local function warnDenseSilosOnce(adEnv, vehicle, trip)
|
||||
local dx, dz = wayPoint ~= nil and (wayPoint.x - target.x) or math.huge, wayPoint ~= nil and (wayPoint.z - target.z) or math.huge
|
||||
if dx * dx + dz * dz <= distance * distance and ADSmartPickup.getUnloadStationAtWayPointId(adEnv, marker.id, farmId) ~= nil then
|
||||
warnedTriggerDistance[trip.targetWayPointId] = true
|
||||
Logging.warning(ADOutbound.LOG_PREFIX .. "'%s': målet %s har en anden aflæsningsmarkør (%s) inden for AutoDrives 'Max trigger distance' (%d m) — AutoDrive kan tippe ved nabosiloen; sæt AD-indstillingen til 10 m", tostring(vehicle:getName()), tostring(trip.targetName), tostring(marker.name), distance)
|
||||
Logging.warning(ADOutbound.LOG_PREFIX .. "'%s': målet %s har en anden aflæsningsmarkør (%s) inden for AutoDrives 'Max trigger distance' (%d m) — AutoDrive kan tippe ved nabosiloen; sæt AD-indstillingen til 10 m", tostring(ADRuns.vehicleLabel(vehicle)), tostring(trip.targetName), tostring(marker.name), distance)
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -409,11 +409,11 @@ local function startHold(adEnv, vehicle, run, reasons, sourcesById)
|
||||
if marker == nil then
|
||||
return nil
|
||||
end
|
||||
warnOnce(adEnv, vehicle, "noWait", string.format("'%s' har intet ledigt Wait-punkt med vejnet (run '%s'); holder ved kilden %s", tostring(vehicle:getName()), tostring(run.name), tostring(marker.name)))
|
||||
warnOnce(adEnv, vehicle, "noWait", string.format("'%s' har intet ledigt Wait-punkt med vejnet (run '%s'); holder ved kilden %s", tostring(ADRuns.vehicleLabel(vehicle)), tostring(run.name), tostring(marker.name)))
|
||||
end
|
||||
local previous = holds[vehicle]
|
||||
holds[vehicle] = {markerId = marker.id, markerName = tostring(marker.name), reasons = reasons, timerMs = 0}
|
||||
local message = string.format("'%s' holder ved %s: %s", tostring(vehicle:getName()), tostring(marker.name), table.concat(reasons, "; "))
|
||||
local message = string.format("'%s' holder ved %s: %s", tostring(ADRuns.vehicleLabel(vehicle)), tostring(marker.name), table.concat(reasons, "; "))
|
||||
if previous == nil or previous.lastLogged ~= message then
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "%s", message)
|
||||
end
|
||||
@@ -447,7 +447,7 @@ function ADOutbound.choosePickup(adEnv, vehicle)
|
||||
runStatus.reasons = reasons
|
||||
for _, reason in ipairs(reasons) do
|
||||
if string.find(reason, ": ingen silo med plads", 1, true) then
|
||||
warnOnce(adEnv, vehicle, "store:" .. reason, string.format("'%s' finder ingen silo med plads (%s)", tostring(vehicle:getName()), reason))
|
||||
warnOnce(adEnv, vehicle, "store:" .. reason, string.format("'%s' finder ingen silo med plads (%s)", tostring(ADRuns.vehicleLabel(vehicle)), reason))
|
||||
end
|
||||
end
|
||||
if trip == nil then
|
||||
@@ -461,7 +461,7 @@ function ADOutbound.choosePickup(adEnv, vehicle)
|
||||
if trip.kind == "sell" then
|
||||
for _, product in ipairs(input.products) do
|
||||
if product.fillType == trip.fillTypes[1] and product.quote ~= nil then
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' pris %s: %.0f kr/1000 l ved %s, årets top %.0f -> %d %% (kræver %d)", tostring(vehicle:getName()), product.name, (product.quote.price or 0) * 1000, tostring(product.quote.stationName), (product.quote.top or 0) * 1000, product.quote.percent or 0, run.sellAtPercent or 90)
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' pris %s: %.0f kr/1000 l ved %s, årets top %.0f -> %d %% (kræver %d)", tostring(ADRuns.vehicleLabel(vehicle)), product.name, (product.quote.price or 0) * 1000, tostring(product.quote.stationName), (product.quote.top or 0) * 1000, product.quote.percent or 0, run.sellAtPercent or 90)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -511,7 +511,7 @@ local function updateHold(adEnv, task, hold, dt)
|
||||
releaseHold(vehicle)
|
||||
ADWaitPool.redirect(task, targetId)
|
||||
task.activatedUALLoading = false
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' kører fra Wait: der er noget at hente igen", tostring(vehicle:getName()))
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' kører fra Wait: der er noget at hente igen", tostring(ADRuns.vehicleLabel(vehicle)))
|
||||
end
|
||||
return true
|
||||
end
|
||||
@@ -568,7 +568,7 @@ local function updateSpawn(adEnv, state, task, source, dt)
|
||||
if stored < spawn.pending.stored and (loaded > spawn.pending.loaded or level > spawn.pending.level) then
|
||||
spawn.pending = nil
|
||||
elseif spawn.pending.ms > ADOutbound.SPAWN_STALL_MS then
|
||||
warnOnce(adEnv, vehicle, "spawn", string.format("'%s': objektlageret %s spawner ikke %s (30 s uden fremdrift); kører med det der er", tostring(vehicle:getName()), tostring(source.name), fillTypeName(fillType)))
|
||||
warnOnce(adEnv, vehicle, "spawn", string.format("'%s': objektlageret %s spawner ikke %s (30 s uden fremdrift); kører med det der er", tostring(ADRuns.vehicleLabel(vehicle)), tostring(source.name), fillTypeName(fillType)))
|
||||
state.done = true
|
||||
return
|
||||
else
|
||||
@@ -594,7 +594,7 @@ local function updateSpawn(adEnv, state, task, source, dt)
|
||||
if ADSources.spawnOne(source, index) then
|
||||
spawn.pending = {stored = ADSources.countStored(source, fillType), loaded = countLoaded(task.trailers), level = adEnv.AutoDrive.getAllFillLevels(task.trailers) or 0, ms = 0}
|
||||
else
|
||||
warnOnce(adEnv, vehicle, "spawn", string.format("'%s': kunne ikke tage %s ud af %s; kører med det der er", tostring(vehicle:getName()), fillTypeName(fillType), tostring(source.name)))
|
||||
warnOnce(adEnv, vehicle, "spawn", string.format("'%s': kunne ikke tage %s ud af %s; kører med det der er", tostring(ADRuns.vehicleLabel(vehicle)), fillTypeName(fillType), tostring(source.name)))
|
||||
state.done = true
|
||||
end
|
||||
end
|
||||
@@ -669,13 +669,13 @@ function ADOutbound.beforeLoadUpdate(adEnv, task, dt)
|
||||
emptyUntil[tostring(state.current) .. ":" .. tostring(fillType)] = expires
|
||||
end
|
||||
local okDiag, diagnosis = pcall(describeLoadFailure, adEnv, vehicle, task, state, source)
|
||||
Logging.warning(ADOutbound.LOG_PREFIX .. "'%s': intet at læsse ved %s efter %d s; kilden springes over i %d min (%s)", tostring(vehicle:getName()), tostring(source ~= nil and source.name or state.current), math.floor(ADOutbound.EMPTY_SOURCE_MS / 1000), math.floor(ADOutbound.EMPTY_SOURCE_TTL_MS / 60000), okDiag and diagnosis or tostring(diagnosis))
|
||||
Logging.warning(ADOutbound.LOG_PREFIX .. "'%s': intet at læsse ved %s efter %d s; kilden springes over i %d min (%s)", tostring(ADRuns.vehicleLabel(vehicle)), tostring(source ~= nil and source.name or state.current), math.floor(ADOutbound.EMPTY_SOURCE_MS / 1000), math.floor(ADOutbound.EMPTY_SOURCE_TTL_MS / 60000), okDiag and diagnosis or tostring(diagnosis))
|
||||
state.noProgressMs, state.completed = 0, true
|
||||
task:finished()
|
||||
return true
|
||||
end
|
||||
if state.noProgressMs > ADOutbound.NO_PROGRESS_MS and level > 0 and not spawnPending then
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': ingen mere last ved %s; kører med %.0f l", tostring(vehicle:getName()), tostring(source ~= nil and source.name or state.current), level)
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': ingen mere last ved %s; kører med %.0f l", tostring(ADRuns.vehicleLabel(vehicle)), tostring(source ~= nil and source.name or state.current), level)
|
||||
state.noProgressMs, state.completed = 0, true
|
||||
task:finished()
|
||||
return true
|
||||
@@ -716,7 +716,7 @@ function ADOutbound.beforeUnloadUpdate(adEnv, task, dt)
|
||||
pcall(unit.setAllTensionBeltsActive, unit, false, false)
|
||||
end
|
||||
end
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': stropper løsnet %.0f m før %s", tostring(vehicle:getName()), distance, tostring(state.trip.targetName))
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': stropper løsnet %.0f m før %s", tostring(ADRuns.vehicleLabel(vehicle)), distance, tostring(state.trip.targetName))
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -741,7 +741,7 @@ function ADOutbound.strapAfterLoading(adEnv, task)
|
||||
end
|
||||
state.unstrapped = false
|
||||
if strapped > 0 then
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': stropper spændt efter pålæsning", tostring(vehicle:getName()))
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s': stropper spændt efter pålæsning", tostring(ADRuns.vehicleLabel(vehicle)))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -759,7 +759,7 @@ function ADOutbound.beforeLoadFinished(adEnv, task)
|
||||
end
|
||||
for _, wayPointId in ipairs(state.queue) do
|
||||
if not state.visited[wayPointId] and state.sources[wayPointId] ~= nil then
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' runde: %.0f l på vognen, videre til %s", tostring(vehicle:getName()), level or 0, tostring(state.sources[wayPointId].name))
|
||||
Logging.info(ADOutbound.LOG_PREFIX .. "'%s' runde: %.0f l på vognen, videre til %s", tostring(ADRuns.vehicleLabel(vehicle)), level or 0, tostring(state.sources[wayPointId].name))
|
||||
goToSource(adEnv, state, task, wayPointId)
|
||||
return true
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user