coder.asap2.export(modelName) without CustomEcuDescriptions=descObj | Silently discards all customizations — no error, exports default A2L | Always pass descObj back when using the customization workflow |
RAT_FUNC Coefficients = [0 0.5 -40 0 0 1] for "PHYS = 0.5×INT - 40" | COEFFS is PHYS→INT, not INT→PHYS — produces the inverse conversion | Invert: INT = 2×PHYS + 80 → [0 2 80 0 0 1]. See references/compu-method-guidance.md |
set(descObj, ..., 'CompuMethodName', name) before adding the CompuMethod | set() auto-creates a placeholder that blocks subsequent add() | delete() the auto-created placeholder, then add() the user's version |
MaskData.Shift without BitMask | BIT_OPERATION block is only emitted when both are set | Always set BitMask (e.g., '0xFF') alongside MaskData |
MaskData.Shift = 3 expecting LEFT_SHIFT | Positive = RIGHT_SHIFT; sign is counterintuitive | Use -3 for LEFT_SHIFT 3 |
| Manually creating AXIS_PTS for STD→COM_AXIS | Unnecessary complexity; error-prone struct array handling | Use set(descObj, 'Characteristic', name, 'ForceShared', true) |
descObj.SupportStructureElements = false | Not a settable property after construction | Pass at creation: getEcuDescriptions(mdl, SupportStructureElements=false) |
VarAddress = '0x5000' (char vector) | Char vector silently produces empty output — no addresses, no criterion name | Must be string array: ["0x5000","0x5008"] |
CompuVTabValues.Integers = [0,1,2] | Property does not exist | Use CompuVTabValues.Values = [0, 1, 2] |
CompuVTabValues.Literals = {'A','B'} (cell array) | Accepted without error but exports 0 elements | Must be string array: ["A","B"] |
Skipping slbuild after setInport/setOutport | Export silently produces stale A2L with old settings | Always slbuild after code mapping changes before export |
Hardcoding EcuAddress = '0x0000' | Calibration tools cannot resolve the address at import time | Use '@ECU_Address@<elementName>@' for linker resolution |
| Leaving mandatory fields unset on new objects | Blank fields produce invalid A2L — calibration tools reject the file | See references/object-properties.md for required fields per class |
| Creating VarCriterion/VarCharacteristic without supporting CHARACTERISTICs | VARIANT_CODING references characteristics that don't exist — calibration tool rejects the file | Create selection CHARACTERISTIC (with TAB_VERB CompuMethod) and variant-dependent CHARACTERISTIC (with RecordLayout) BEFORE VarCriterion/VarCharacteristic. See references/variant-coding-guidance.md |