feat(oversigt): 'Stop alt og parkér' — flows, markarbejde og marksilo-lån stoppes, køretøjer til AD-parkering (manuelle høstere nævnes), pause der gemmes; 'Start alle' ophæver pausen og starter traktorerne én ad gangen hvert 10. sekund (v1.42.0.0)

This commit is contained in:
2026-09-27 15:20:41 +02:00
parent 9348443f61
commit 9c1c87b8dd
12 changed files with 173 additions and 10 deletions
+33
View File
@@ -863,5 +863,38 @@ do
check("C20 run markeret kørende", ADRunsController.runningRuns[qrun.id], true)
end
-- C21: Stop alt og parkér — stopper flow-traktorerne, sender dem til AD-parkering, sætter pause
do
buildWorld()
local p1 = makeVehicle("vehicleP1", "P1", {STRAW, TMR}, 1000000, 100, 0)
local p2 = makeVehicle("vehicleP2", "P2", {STRAW, TMR}, 1000000, 110, 0)
local prun = ADRunsController.createRun("Park")
ADRunsController.updateRun(prun.id, {targetWayPointIds = {94}})
ADRunsController.assignVehicle(prun.id, p1)
ADRunsController.assignVehicle(prun.id, p2)
ADRunsController.startRun(adEnv, prun.id)
local parked, paused = {}, nil
local oldWork, oldJobs, oldSilos = ADFieldWork, ADFieldJobs, ADFieldSilos
ADFieldWork = {
parkMarkerId = function(_, v) return v == p1 and 700 or nil end,
startAd = function(_, v, mode, first) parked[v] = first end,
stopAllAssignments = function() return {} end,
}
ADFieldJobs = {setPaused = function(value) paused = value end}
ADFieldSilos = {stopAll = function() end}
ADRunsController.queueStartAll(adEnv)
local summary = ADRunsController.stopAllAndPark(adEnv)
check("C21 begge stoppet", (p1.stopped or 0) >= 1 and (p2.stopped or 0) >= 1, true)
check("C21 P1 kører til parkering", parked[p1], 700)
check("C21 P2 uden parkering bliver stående", parked[p2], nil)
check("C21 tæller parkerede", summary.parked, 1)
check("C21 nævner dem uden parkering", summary.noPark[1], "P2")
check("C21 pause sat", paused, true)
check("C21 startkø tømt", #ADRunsController.startQueue, 0)
check("C21 run ikke længere kørende", ADRunsController.runningRuns[prun.id], nil)
ADFieldWork, ADFieldJobs, ADFieldSilos = oldWork, oldJobs, oldSilos
end
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)