# Testplan — Markarbejde (fanen Marker), version 1.27.3.0 Stor test-session. Kør testene i rækkefølge: de første bygger opsætningen, de senere bygger på den. Hver test har **Gør**, **Forvent** og **Log** (linjer i `log.txt`, der beviser at det virkede). Loglinjer begynder altid med `ADSmartPickup: F`. Kryds af undervejs. Skriv resultatet (OK / FEJL + hvad der skete) ud for hver test, så retter vi i samme rækkefølge. --- ## 0. Forberedelse - [ ] **0.1 Version.** Log: `Available mod: … (Version: 1.27.3.0) FS25_ADSmartPickup`. - [ ] **0.2 Fanen Marker åbner.** ESC → Smart Pickup → fanen **Marker**. Forvent: "Marker indlæses …" i få sekunder, derefter én række pr. ejet mark (også korn-, roe- og bare marker, ikke kun græs). Afgrøde-kolonnen viser afgrøden eller "bar jord". - [ ] **0.3 F-markører.** Marker uden `F`-markør står med `!` foran marknummeret og "! mangler markør F…". Lav markører til de marker, der skal testes. - [ ] **0.4 Markflåden.** Nederst: alle maskiner med slåmaskine, vender, river, læssevogn, høster, aflæsningsvogn, kultivator, plov, såmaskine, tromle, strigle/sprøjte, gødnings-/kalkspreder, stubhakker — med rolle og bredde. Tjek: - [ ] Høstere viser "N afgrøder". - [ ] Såmaskiner viser "frø ok" eller "!! tom for frø". - [ ] Strigle viser "strigle (småt ukrudt)", ukrudtssprøjte viser "sprøjte". - [ ] En **tom** sprøjte/spreder vises ikke (den har ingen rolle før den har fyld på). - [ ] Maskiner i et Smart Pickup-flow kan godt ses, men sendes aldrig ud. - [ ] **0.5 Bredder.** BiG M 450 viser **40,8 m** (Courseplays egen bredde), læssevognene 40,8 m. ## 1. Etape 1 genbekræftet (græs → ensilage) Rest fra 25/9: slåning og opsamlingsstart virkede; afslutningen blev aldrig set. - [ ] **1.1 Afslutning af opsamling.** Mark 22 (eller en anden lille græsmark) på Manuel + Ensilage, BiG M + én Boss Alpin med flueben → **Start nu**. - Forvent: slåmaskine → F22 → Courseplay slår → hjem. Læssevogn → F22 → Courseplay samler op med **slåmaskinens kursus** → AutoDrive tømmer ved fuld → tilbage → færdig → rest til lager → parkering. Marken står **Færdig**, og der kommer en grøn besked "F22 er færdig". - Log: `mower … sendt til F22`, `Courseplay startet (mower)`, `mowing -> collecting`, `læssevogn … aflæsser i `, `Courseplay startet (collector, mower-kursus kopieret)`, `collector … færdig`, `collecting -> done`. - [ ] **1.2 Gæringssilo.** Ensilage-læs går til nærmeste **gæringssilo** (FermentingSilo/GrassSilageSilo), ikke en Farma-silo. Log: `aflæsser i ` eller `ingen gæringssilo kan tage græsset (…)`. - [ ] **1.3 Sidde i maskinen.** Sæt dig i slåmaskinen mens Courseplay kører, og stig ud igen. Forvent: den slippes IKKE (ingen `frigivet`-linje). Kør selv > 3 km/t uden CP → `frigivet — spilleren kører det`. - [ ] **1.4 Sovende køretøj.** Parkerede maskiner kører af sted med det samme ved udsendelse, uden at du skal sætte dig ind. ## 2. Hø og river - [ ] **2.1 Hø uden river.** Plan = **Hø**, Riv = Nej. Slå → **Vendes** (venderen i sin egen bredde) → Samles op (læssevogn på slåkurset, ≥ 40,8 m) → hø-silo (kun almindelig silo, aldrig gæringssilo). Log: `mowing -> tedding`, `Courseplay startet (tedder)`, `tedding -> collecting`. - [ ] **2.2 Smal læssevogn uden river.** En læssevogn under 40,8 m → status "læssevogn for smal: … — sæt Riv til eller brug en bredere". - [ ] **2.3 Riv (midterrive).** Riv = Ja. Log: `river lægger skåret 0.x m fra sin kursuslinje`, derefter `Courseplay startet (collector, rake-kursus kopieret)`. Læssevognen rammer skårene. - [ ] **2.4 Sideriver.** Med en river der lægger skåret til siden: log viser fx `3.2 m`, og `skår ligger 3.2 m til … -> læssevognens forskydning …`. **Tjek at vognen kører OVER skåret.** Kører den ved siden af (forkert side), så skriv det ned — så vender jeg fortegnet. - [ ] **2.5 Riv til ensilage.** Plan = Ensilage + Riv = Ja: Slå → Rives → Samles op. ## 3. Høst (korn, raps, majs …) - [ ] **3.1 Høst.** En moden kornmark, Manuel, høster med passende skærebord + én aflæsningsvogn (traktor + tipvogn/overlæssevogn) med flueben → **Start nu**. - Forvent: høster → F-markør → Courseplay høster. Aflæsningsvognen sendes ud når høsteren arbejder, følger den (Courseplays combine-unloader) og kører fulde læs til siloen. - Log: `harvester … sendt`, `Courseplay startet (harvester)`, `unloader … sendt`, `aflæsningsvogn … følger høsteren -> `. - [ ] **3.2 Afslutning.** Høsten færdig → `harvesting -> `, `aflæsningsvogn … stoppes — høsten er færdig`, evt. `kører rest-læs … til lager`, parkering. - [ ] **3.3 Forkert skærebord.** Høster der ikke kan tage afgrøden → status "ingen høster i markflåden kan tage opgaven (afgrøde/frø/ukrudt)". Ingen udsendelse. - [ ] **3.4 Flere aflæsningsvogne.** "Aflæsningsvogne under høst" = 2 → to vogne sendes (én ad gangen). - [ ] **3.6 Halm samles op.** Halm efter høst = *Samles op til silo*. Mejetærskeren lægger skår (Courseplay-indstilling halmskår = til), derefter `harvesting -> strawCollecting`, en læssevogn kører **høsterens kursus** (`harvester-kursus kopieret`) og kører halmen til en silo der tager STRAW. - [ ] **3.7 Halm til baller.** Halm = *Presses til baller*: `-> baling` (ballepresser på høsterens kursus) → `-> baleCollecting` (ballesamler/Universal Autoload, `Courseplay startet (ballesamler)`), fulde læs til ballelager (`ballesamler … kører fulde læs til …`). - [ ] **3.8 Halm hakkes.** Halm = *Hakkes*: mejetærskeren lægger IKKE skår (Courseplay halmskår = fra). - [ ] **3.5 Regn.** Når det regner: høst/slå/vend/riv sendes ikke ud, status "venter på tørvejr". Kørende maskiner fortsætter. ## 4. Roer - [ ] **4.1 Roehøst.** Roemark (sukkerroer), roeoptager (Ropa) + aflæsningsvogn → som 3.1, men med roer. Log viser `harvester 'Ropa …'`. Roerne går til nærmeste silo/lager der tager SUGARBEET (brug **Tving lager** hvis de skal et bestemt sted hen, fx roeknuseren). ## 5. Efter høst: klargøring og såning Sæt på en kornmark før høst: Efter høst → Stubbehakning Nej, Jordbehandling **Auto**, **Så bagefter** Ja, Afgrøde "Samme som høstet", Tromle Ja. Kalk Ja. - [ ] **5.1 Kæde.** Efter høsten fortsætter marken selv: (kalk hvis jorden trænger) → pløj eller kultivér → så → tromle → **Færdig**. Log: `harvesting -> cultivating`, `cultivating -> sowing` … - [ ] **5.2 Auto-jordbehandling.** Står "Jorden trænger til: pløjning" under marken → plov sendes. Ellers kultivator. - [ ] **5.3 Såning.** Såmaskinen sættes til afgrøden (`setSeedIndex`), og den rigtige afgrøde spirer. - [ ] **5.4 Ude af såperioden.** Afgrøde der ikke kan sås nu → status " kan ikke sås i denne periode", ingen udsendelse. - [ ] **5.5 Tom for frø / påfyldning.** Såmaskine med lidt frø. Moden leder efter en læssestation med frø på lager og en AutoDrive-markør ved triggeren (fx en silo/big-bag-station med SEEDS). - Findes den: log `… fyldes op med SEEDS ved af AutoDrive når den er tom`. Når den er tom midt på marken, kører AutoDrive derhen, fylder op, kører tilbage, og Courseplay fortsætter. - Findes den ikke: log `ingen påfyldning af SEEDS med AutoDrive-markør fundet …`. Når den er tom: rød besked `'…' er tom for SEEDS — fyld op, så fortsætter marken`, og marken går IKKE videre. - [ ] **5.6 Bar mark alene.** Vælg en bar mark (stub/pløjet) → **Start nu** → kun klargøring/såning. ## 6. Pleje mens afgrøden vokser - [ ] **6.1 Behov vises.** En voksende mark viser "Jorden trænger til: gødning, ukrudt …" og status "— trænger til Gødes". Manuel: intet sker før **Start nu**. - [ ] **6.2 Gødning.** Start nu (eller Auto) → gødningsspreder/-sprøjte med fyld sendes → `pleje: fertilizing` → `fertilizing -> idle`. Højst 2 gange pr. vækstcyklus. - [ ] **6.3 Ukrudt.** Høstafgrøde med tæt ukrudt → strigle (småt ukrudt) eller ukrudtssprøjte (stort ukrudt, > 4). Græs ukrudtsbehandles ikke. - [ ] **6.4 Kalk.** Jord der trænger til kalk → kalkspreder. - [ ] **6.5 Påfyldning.** Sprøjte/spreder der løber tør → AutoDrive fylder op og kører tilbage. ## 7. Multi-maskine (Courseplay multi-tool) - [ ] **7.1 To slåmaskiner.** "Maskiner pr. trin" = 2 på en græsmark med to BiG M med flueben. Forvent: begge sendes samtidig, den ene laver kurset (`bane -1`), den anden kopierer det (`bane 1`) og de kører i konvoj. Log: `… sendt … bane -1`, `… bane 1`, `Courseplay startet (mower, bane -1)`, `Courseplay startet (mower, multi-kursus kopieret, bane 1)`. - [ ] **7.2 For få maskiner.** 3 pr. trin men kun 2 ledige → status "multi-tool: slåmaskine — kun 2 af 3 ledige". - [ ] **7.3 Læssevogne på multi-kursus.** Efter 7.1 sendes 2 læssevogne, én pr. bane. ## 9. Vælg og glem (afgrøde på marken) - [ ] **9.1 Kornmark → hvede.** En mark med byg der vokser: vælg *Afgrøde på marken* = Hvede. Linjen siger "Byg får lov at vokse færdig og høstes; derefter klargøres og tilsås med Hvede". Kørsel skjules (auto). Når byggen er moden: høst → (halm) → klargøring → såning af **hvede** (ikke byg). Log: `mål-afgrøde: WHEAT`, `starter (harvest: harvesting)`, `sowing`. - [ ] **9.2 Bar mark.** Bar mark med mål = Hvede: starter selv klargøring + såning, når det er hvede-såtid. Uden for såtid: status "venter på såtid for Hvede". - [ ] **9.3 Græs → græs.** Græsmark med mål = Græs: slås og samles op hver gang, ingen pløjning/såning. - [ ] **9.4 Græs → hvede.** Græsmark med mål = Hvede: slås og samles op én gang, derefter klargøring (jordbehandling-valget vises) og såning af hvede. - [ ] **9.5 Hele året.** Lad en mark med mål køre en hel sæson uden at røre den: vækst → pleje → høst → klargøring → såning → ... uden at hænge og uden dobbelt-såning. - [ ] **9.6 Alle ledige maskiner.** Markflåde: *Brug alle ledige maskiner* = Ja (standard): maskiner uden flueben sendes også ud. = Nej: kun maskiner med flueben. Maskiner du selv kører, maskiner i flows og maskiner AutoDrive/Courseplay allerede kører, bruges aldrig. - [ ] **9.7 Fjern målet.** Vælg *Ingen — planlæg selv*: marken går tilbage til Manuel. ## 8. Robusthed - [ ] **8.1 Genindlæsning midt i et trin.** Gem og genstart under fx opsamling → marken fortsætter på samme trin, sæt sendes ud igen, slåkurset hentes fra slåmaskinen. - [ ] **8.2 Stop mark.** **Stop mark** midt i høst → alle maskiner på marken stopper; høst står **Klar** igen, pleje/klargøring står **Venter**. - [ ] **8.3 Ingen vej.** Mark hvis F-markør ikke er forbundet → status "… nåede ikke F…" / "intet lager: … AutoDrive finder ingen rute …" og nyt forsøg efter 5 min. - [ ] **8.4 Beskeder.** Grøn besked når en mark/pleje er færdig; rød besked ved fejl (hver kun én gang i træk). - [ ] **8.5 Ydelse.** Ingen mærkbar lag med fanen åben og mange marker (én mark scannes pr. sekund). --- ## Kendte usikkerheder (første gang i spillet) | Område | Hvad der er gættet | Tegn på fejl | |---|---|---| | Vækstfase | `getFieldDataAtWorldPosition` anden returværdi = vækststadie | Høstet stub vises som voksende, eller moden mark som bar | | Høsterens afgrøder | `spec_cutter.fruitTypes`/`fruitTypeIndices` | Høster vises med "0 afgrøder" | | Combine-unloader | stationsvalg ud fra silovalget | `ingen aflæsningsstation Courseplay kan bruge` | | Multi-tool | `multiTools` + `laneOffset` + `Course:setPosition` | Begge maskiner kører samme bane | | Sideriver | fortegn på forskydningen | Læssevognen kører ved siden af skåret | | Påfyldning | AutoDrive LOAD til den læssestation moden fandt (AutoDrives eget automatiske mål er slået fra i AutoDrive) | Sættet står ved påfyldningen og læsser ikke, eller kører ikke tilbage | | Ukrudt | `weedSystem`-værdi ≥ 2 = tæt | Ukrudtsbehandling uden ukrudt, eller aldrig | | Nysået som "bar" | nysået afgrøde læses som voksende | Marken står "Færdig" efter såning (ingen dobbelt-såning, men ingen næste høst-start før den er moden) | | Ballesamler | Courseplays BALE_FINDER + AutoDrive til ballelager | Ballesamleren starter ikke, eller kører ikke fulde læs væk |