feat(marker): sideriver — mål hvor riven lægger skåret, forskyd læssevognen tilsvarende (v1.24.0.0)
Brugerkrav 25/9: alle river-typer skal virke. Nedlægningsområdet (runtime-felt eller riverens XML) måles i traktorens ramme mens riven arbejder; læssevognen på rivens kursus får CP-toolOffsetX = egen - skårets forskydning og får sin værdi tilbage når den slippes.
This commit is contained in:
@@ -35,5 +35,31 @@ local zeroCp = {getVariableWorkWidth = function(_, isLeft) return isLeft and 5 o
|
||||
getCourseGeneratorSettings = function() return {workWidth = {getValue = function() return 0 end}} end}
|
||||
check("W5 CP 0 -> egen beregning", ADCpBridge.getWorkWidth(zeroCp), 10)
|
||||
|
||||
-- WO: skårets sideforskydning på en river, målt fra nedlægningsområdet (venstre positiv), minus rivens
|
||||
-- egen CP-forskydning. Noder er tal; localToLocal-mock giver nodens x i traktorens ramme.
|
||||
local nodeX = {[11] = 2.0, [12] = 4.0, [21] = -1.0, [22] = 1.0}
|
||||
function localToLocal(node) return nodeX[node] or 0, 0, 0 end
|
||||
local function rake(dropIndex, runtime)
|
||||
local areas = {
|
||||
{start = 1, width = 2, height = 3, dropWindrowWorkAreaIndex = runtime and dropIndex or nil},
|
||||
{start = 10, width = 11, height = 12},
|
||||
{start = 20, width = 21, height = 22},
|
||||
}
|
||||
return {spec_windrower = {}, spec_workArea = {workAreas = areas}, configFileName = "rake.xml"}
|
||||
end
|
||||
local sideRake = rake(2, true)
|
||||
local tractorWithRake = {rootNode = 100, getAttachedImplements = function() return {{object = sideRake}} end,
|
||||
getCpSettings = function() return {toolOffsetX = {getValue = function() return 0.5 end}} end}
|
||||
check("WO1 sideriver (runtime-felt)", ADCpBridge.getWindrowOffset(tractorWithRake), 2.5)
|
||||
local centerRake = rake(3, true)
|
||||
local tractorCenter = {rootNode = 100, getAttachedImplements = function() return {{object = centerRake}} end}
|
||||
check("WO2 midterrive", ADCpBridge.getWindrowOffset(tractorCenter), 0)
|
||||
-- WO3: runtime-felt mangler -> riverens XML (workArea(0) windrower#dropWindrowWorkAreaIndex = 2)
|
||||
ADCpBridge.readDropIndicesFromXml = function(fileName) return fileName == "rake.xml" and {[1] = 2} or {} end
|
||||
local xmlRake = rake(2, false)
|
||||
local tractorXml = {rootNode = 100, getAttachedImplements = function() return {{object = xmlRake}} end}
|
||||
check("WO3 fra XML", ADCpBridge.getWindrowOffset(tractorXml), 3)
|
||||
check("WO4 ingen river -> nil", ADCpBridge.getWindrowOffset({rootNode = 100}), nil)
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user