luncher91 / a2lparser Goto Github PK
View Code? Open in Web Editor NEWJava library to parse A2L files into an easy to use object structure.
License: MIT License
Java library to parse A2L files into an easy to use object structure.
License: MIT License
There is no package: net.alenzen.a2l.antlr
Hi! Is there maybe a chance you'll support the next version of the ASAM MCD-2 MC (ASAP2 / A2L) standard?
Hi there,
i do have some issues when trying to convert a Continental A2L to json.
I've created a paste to show the output. Of course i can supply you with that A2L, but i'd love to do that on a direct way.
Maybe you can take a look at it. INCA does take that A2L without any error.
Hi Andreas,
Currently it's not possible to compare two objects from the same class by its field values, since the library didn't override the equals()
for its classes.
As this task requires to change a lot of files, I think it's best to discuss with you first about what do you think, before start any implementation.
If you agree with the overriding of the equals()
and hashCode()
methods, I can see two main approaches in order to complete this task (but of course, you can suggest a different one, if you want):
1- Use Lombok
2- Use some IDE autocompletion in each required class
Please let me know what do you think, and I'll be happy to do it! =)
Can you show an example of the JSON output this parser generates? I'm trying to track what "map" a memory address belongs to (taking into account axis sizes, etc.)
While playing around with the export function I've found an issue for the AxisPts class. The output of the memory address is unlike other classes a decimal value instead of a hex value. The code snippet show the current AxisPts implementation and how to fix.
...
writer.writelnBeginSpaced("AXIS_PTS",
name,
A2LWriter.toA2LString(longIdentifier),
Long.toString(address), // should be "0x" + Long.toHexString(address),
inputQuantitiy,
deposit,
Double.toString(maxDiff),
conversion,
Long.toString(maxAxisPoints),
Double.toString(lowerLimit),
Double.toString(upperLimit));
...
Steps to reproduce :
In freeTest.a2l Change /begin MEASUREMENT superMeasurement "ultimate test" to
/begin MEASUREMENT superMeasurement "ultimate
test"
NPE thrown at String stringVal = stringToken.getText(); inside private String extractString(Token stringToken) in A2LVisitor class
Thanks in advance.
Hi Andreas,
What do you think about toString methods in the classes? I think it can be helpful to use the library and debug the content of the objects.
If you think it could help, I can do it too =)
Currently the lib uses int and long only. The specification often uses a lot shorter integer types.
use short where int is specified (currently int)
use int where uint is specified (currently long)
use int where long is specified (currently long)
use long where ulong is specified (currently long)
Hi,
Your project peaked my interest and I'd like it to try to generate a2l files out of existing json files. I was trying out the example in the readme, but when issuing the following command:
$ java -jar a2lparser-2.4.1-jar-with-dependencies.jar --json ~/Projects/git/A2LParser/src/test/resources/freeTest.a2l
The following error is generated:
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unexpected character ('/' (code 47)): maybe a (non-standard) comment? (not recognized as one since Feature 'ALLOW_COMMENTS' not enabled for parser)
at [Source: (File); line: 1, column: 5]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:659)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipComment(UTF8StreamJsonParser.java:3210)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd2(UTF8StreamJsonParser.java:3090)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:3046)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:756)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4761)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4667)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3494)
at net.alenzen.a2l.Asap2File.fromJsonFile(Asap2File.java:173)
at net.alenzen.a2l.Asap2Parser.main(Asap2Parser.java:336)
I took the jar from the releases page
$ docker run -v $(pwd):/usr/src/mymaven -w /usr/src/mymaven maven:3-openjdk-16 mvn clean install package -DskipTests
$ cd target/
$ java -jar A2LParser-2.0.1.jar net.alenzen.a2l.Asap2Parser --help
no main manifest attribute, in A2LParser-2.0.1.jar
Hi,
The readme claims that there's a freeTest.json
in the resources directory that can be used as an example, but it doesn't seem to be present in the git repository.
Could you please help to check mvn repository again? I cannot find this library in here:
https://mvnrepository.com/search?q=a2lparser
Hi,
First of all, thank you for developing a good parser.
I need to parse an A2L file, a slight problem when parsing "CHARACTERISTIC".
While parsing a few A2L files, I found a case where "\e" was included in the description as shown below.
/begin CHARACTERISTIC ASAM_CURVE_STD_AXIS "Curve with \end standard axis" CURVE ...
ANTLR failed to parse because "\e" is a special character that is not commonly used...
It may be a normal situation to not be able to parse, but I think it is also good to parse A2L even in this case.
When analyzing Description, is it possible to set all the characters between " and " to String object?
Once after downloading the source code, I have seen the missing package.
Could you please help me out with how to resolve the imports?
Make it possible to handle not found references without canceling the reference resolve.
/begin MEASUREMENT
rba_Runtime_MonIsr_ast[OS_ESC_SyncPreSwActv_Task_Isr].tiCurRT_u32
"rba_Runtime Measurement Variable[0]"
ULONG
RB_RBA_rba_Runtime_CompuMethods_rba_Runtime_Time
1
100
0.0
4.294967295E9
FORMAT "%5.0"
ECU_ADDRESS 0x500039CC
/end MEASUREMENT
$ java -jar A2LParser-2.3.0-jar-with-dependencies.jar -mj -a2l ~/Downloads/test.a2l
Line 10873@26: token recognition error at: '['
Line 10873@56: token recognition error at: ']'
Line 10873@57: token recognition error at: '.t'
[INFO]
[ERROR] Failures:
[ERROR] Asap2FileTest.testToA2l_completness:117 Completness: 100.01665417603465% ==> expected: <{"a2mlVersion":{"versionNo":1,"upgradeNo":31},"asap2Version":{"versionNo":1,"upgradeNo":71},"project":{"modules":[{"name":"sample_module","longIdentifier":"great example with different escaped quotation \" marks like double quotes \" and backslash escaped at the end \"","a2ml":[{"content":"/begin A2ML i am not parsed /end A2ML"}],"axisPts":[{"name":"axis_pts_1","longIdentifier":"I am a long identifier of an AXIS_PTS object","address":11259375,"inputQuantitiy":"in_quant","deposit":"axis_pts_deposit","maxDiff":1.1,"conversion":"axis_pts_conv","maxAxisPoints":123,"lowerLimit":1.2,"upperLimit":1.3,"notes":[],"byteorder":"MSB_FIRST","access":"NOT_IN_MCD_SYSTEM","axisPointDeposit":"DIFFERENCE","displayIdentifier":"display.identifier.wohoo","ecuAddressExtension":38787,"extendedLimits":{"lowerLimit":0.1,"upperLimit":0.5},"format":"%1212.21","functions":null,"guardRails":false,"ifData":[],"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":false,"memorySegment":"memorySegment.42","stepSize":820.028,"symbolLink":{"symbolName":"symbol name char 99","offset":99}}],"characteristics":[{"name":"char_a","longIdentifier":"description here","type":"CUBE_5","address":291,"deposit":"char_deposit","maxDiff":1.1,"conversion":"char_conv","lowerLimit":0.0,"upperLimit":10.0,"notes":[{"label":null,"origin":null,"text":["hello world"]}],"axisDescriptions":[{"attribute":"CURVE_AXIS","inputQuantity":"in_quant_char","conversion":"char_axis_descr_conv","maxAxisPoints":22,"lowerLimit":5.5,"upperLimit":21.21,"annotations":[],"axisPoints_ref":"axisPtsA","byteorder":"MSB_FIRST","curveAxis_ref":"curveAxisA","deposit":"DIFFERENCE","extendedLimits":null,"fixAxisPar":{"offset":2,"shift":4,"numberapo":8},"fixAxisParDist":{"offset":4,"shift":16,"numberapo":32},"fixAxisParList":{"axisPtsValues":[1.1,2.2,3.3,4.4,5.5]},"format":"%3.3","maxGrad":30.0,"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":true,"stepSize":1.2}],"bitmask":16777215,"byteorder":"MSB_LAST","access":"CALIBRATION","comparisonQuantityMeasurment":"comparisonQuantity","dependetCharacteristic":{"formula":"X1*X2","characterstics":["characA","characB"]},"discrete":true,"displayIdentifier":"display_ident_char","ecuAddressExtension":10000,"extendedLimits":{"lowerLimit":1.1,"upperLimit":5.5},"format":"%12.12","functions":["f1","f2","f3"],"guardRails":false,"ifData":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"mapList":["identA","identB"],"matrixDim":{"xDim":3,"yDim":4,"zDim":5},"maxRefresh":{"scalingUnit":6,"rate":10},"number":1233123,"physUnit":"kg","readOnly":true,"memorySegment":"memory_seg_ref","stepSize":99.9,"symbolLink":{"symbolName":"symbol name char","offset":7},"virtualCharacteristic":{"formula":"sin(cos(X2-X1))","characterstics":["characteristicA","characteristicB"]}}],"compuMethods":[{"name":"THE.IDENTITY","longIdentifier":"very unique","conversionType":"RAT_FUNC","format":"%8.4","unit":"°","coeffs":{"a":0.0,"b":1.1,"c":0.0,"d":0.0,"e":0.0,"f":1.1},"coeffsLinear":{"a":7.1,"b":-12.5},"compuTab_ref":null,"formula":null,"unit_ref":null,"conversionTable_ref":null},{"name":"THE.FORMULA","longIdentifier":"very unique","conversionType":"FORM","format":"%8.4","unit":"°","coeffs":null,"coeffsLinear":null,"compuTab_ref":null,"formula":{"fx":"X1-42","gx":"X1+42"},"unit_ref":null,"conversionTable_ref":null}],"compuTabs":[{"name":"PERFECT_COMPU.TAB","longIdentifier":"very perfect compu tab","conversionType":"TAB_INTP","numberOfValuePairs":5,"valuePairs":[{"inVal":-1.1,"outVal":-1.1},{"inVal":1.0,"outVal":-1.0},{"inVal":1.123456,"outVal":0.312312},{"inVal":3123.0,"outVal":3123.0},{"inVal":0.0,"outVal":0.0}],"defaultValue":"invalid input value","defaultValueNumeric":null}],"compuVTabs":[{"name":"firstVtab","longIdentifier":"very first vtab","conversionType":"TAB_VERB","numberOfValuePairs":3,"valuePairs":[{"inVal":1.1,"outVal":"first entry"},{"inVal":0.9,"outVal":"second entry"},{"inVal":0.0,"outVal":"third entry"}],"defaultValue":"default value"}],"compuVTabRanges":[{"name":"sophisticated.vtabRange","longIdentifier":"I am very sophisticated, trust me","numberOfValueTriples":4,"valueTriples":[{"inValMin":-5.5,"inValMax":5.5,"outVal":"from minus five point five to five point five"},{"inValMin":5.5,"inValMax":10.0,"outVal":"from five point five to ten"},{"inValMin":10.0,"inValMax":100.0,"outVal":"from ten to one hundred"},{"inValMin":100.0,"inValMax":200.0,"outVal":"from one hundred to two hundred"}],"defaultValue":"default"}],"frame":{"name":"frame","longIdentifier":"big frame","scalingUnit":7,"rate":49,"frameMeasurements":["identA","identB","identC"],"ifDatas":[]},"functions":[{"name":"firstFunction","longIdentifier":"very first function","annotations":[],"defCharacteristics":["char1","char2","char3"],"functionVersion":"version3.1.4.1","ifDatas":[],"inMeasurments":["meas1","meas2","meas3"],"locMeasurments":["locMeas1","locMeas2","locMeas3"],"outMeasurments":["outMeas1","outMeas2","outMeas3"],"refCharacteristics":["refChar1","refChar2","refChar3"],"subFunctions":["subFunc1","subFunc2","subFunc3"]}],"groups":[{"groupName":"groupies","longIdentifier":"stick to the group","annotations":[],"functionList":null,"ifDatas":[],"refCharacteristics":["refChar1","refChar2","refChar3"],"refMeasurements":["meas1","meas2","meas3","meas[0][0]"],"root":true,"subGroups":["subGroup1","subGroup2","subGroup3"]}],"ifDatas":[],"measurements":[{"name":"superMeasurement","longIdentifier":"ultimate test","datatype":"UBYTE","conversion":"THE.IDENTITY","resolution":1,"accuracy":2.1,"lowerLimit":4.2,"upperLimit":255.0,"annotations":[{"label":"annotation I","origin":"me","text":["row \\'1'\\","row '2'\r\n","row\t3"]}],"arraySize":7,"bitMask":45055,"bitOperation":{"leftShift":null,"rightShift":4,"signExtend":true},"byteorder":"MSB_FIRST","discrete":true,"displayIdentifier":"mega.superMeasurement","ecuAddress":11259375,"ecuAddressExtension":255,"errorMask":14,"format":"%3.1","functionList":["firstFunction","secondFunction","thirdFunction"],"ifDatas":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"layout":"ROW_DIR","matrixDim":{"xDim":7,"yDim":8,"zDim":10},"maxRefresh":{"scalingUnit":12,"rate":42},"physUnit":"kg/m","readWrite":true,"memorySegment":"mem1","symbolLink":{"symbolName":"symbol name","offset":84},"virtual":["meas_1","meas_2"]}],"modCommon":{"comment":"","alignmentByte":2,"alignmentFloat32IEEE":8,"alignmentFloat64IEEE":8,"alignmentInt64":null,"alignmentLong":3,"alignmentWord":1,"byteorder":"MSB_FIRST","dataSize":128,"deposit":"DIFFERENCE","standardRecordLayout":null},"modPar":{"comment":"cmt","addresses":[18,1193046,15],"calibrationMethods":[{"name":"methodA","version":3141,"calibrationHandle":[{"handles":[65536,768,7,7340032,262144],"calibrationText":"important!"},{"handles":[0,16],"calibrationText":null}]}],"cpuType":"RISC","customer":"public domain","customerNo":"42","ecu":"RISC-V","ecuCalibrationOffset":84,"epk":"EPROM_identification - should it be a string or an identifier?","memoryLayouts":[{"prgType":"PRG_CODE","address":16,"size":4096,"offset":[5,4,3,2,1],"ifDatas":[]}],"memorySegments":[{"name":"mem1","longIdentifier":"lots of code in internal flash","prgType":"CODE","memoryType":"FLASH","attribute":"INTERN","address":66,"size":4096,"offset":[-1,-1,-1,-1,-1],"ifDatas":[]}],"numberOfInterfaces":168,"phoneNumber":"911","supplier":"Andreas Lenzen","systemConstants":[{"name":"close to 1","value":"value 1"},{"name":"pi","value":"about 3"}],"user":"A2l stakeholders","version":"Very high :-)"},"recordLayouts":[{"name":"master_record","alignmentByte":2,"alignmentFloat32IEEE":4,"alignmentFloat64IEEE":8,"alignmentInt64":16,"alignmentLong":32,"alignmentWord":64,"axisPtsX":{"position":1,"datatype":"SBYTE","indexorder":"INDEX_INCR","addressing":"DIRECT"},"axisPtsY":{"position":2,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPtsZ":{"position":3,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts4":{"position":4,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts5":{"position":5,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleX":{"position":6,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleY":{"position":7,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleZ":{"position":8,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale4":{"position":9,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale5":{"position":10,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"distOpX":{"position":11,"dataType":"SBYTE"},"distOpY":{"position":12,"dataType":"SBYTE"},"distOpZ":{"position":13,"dataType":"SBYTE"},"distOp4":{"position":14,"dataType":"SBYTE"},"distOp5":{"position":15,"dataType":"SBYTE"},"fixNoAxisPtsX":{"numberOfAxisPoints":1},"fixNoAxisPtsY":{"numberOfAxisPoints":2},"fixNoAxisPtsZ":{"numberOfAxisPoints":3},"fixNoAxisPts4":{"numberOfAxisPoints":4},"fixNoAxisPts5":{"numberOfAxisPoints":5},"functionValues":{"position":47,"dataType":"UBYTE","indexMode":"ALTERNATE_CURVES","addressType":"PLONG"},"identification":{"position":48,"dataType":"ULONG"},"noAxisPtsX":{"position":16,"dataType":"UBYTE"},"noAxisPtsY":{"position":17,"dataType":"UBYTE"},"noAxisPtsZ":{"position":18,"dataType":"UBYTE"},"noAxisPts4":{"position":19,"dataType":"UBYTE"},"noAxisPts5":{"position":20,"dataType":"UBYTE"},"noRescaleX":{"position":21,"dataType":"ULONG"},"noRescaleY":{"position":22,"dataType":"ULONG"},"noRescaleZ":{"position":23,"dataType":"ULONG"},"noRescale4":{"position":24,"dataType":"ULONG"},"noRescale5":{"position":25,"dataType":"ULONG"},"offsetX":{"position":26,"dataType":"ULONG"},"offsetY":{"position":27,"dataType":"ULONG"},"offsetZ":{"position":28,"dataType":"ULONG"},"offset4":{"position":29,"dataType":"ULONG"},"offset5":{"position":30,"dataType":"ULONG"},"reserved":[{"position":49,"dataSize":"LONG"},{"position":50,"dataSize":"WORD"}],"ripAddressW":{"position":31,"dataType":"ULONG"},"ripAddressX":{"position":32,"dataType":"ULONG"},"ripAddressY":{"position":33,"dataType":"ULONG"},"ripAddressZ":{"position":34,"dataType":"ULONG"},"ripAddress4":{"position":35,"dataType":"ULONG"},"ripAddress5":{"position":36,"dataType":"ULONG"},"srcAddressX":{"position":37,"dataType":"ULONG"},"srcAddressY":{"position":38,"dataType":"ULONG"},"srcAddressZ":{"position":39,"dataType":"ULONG"},"srcAddress4":{"position":40,"dataType":"ULONG"},"srcAddress5":{"position":41,"dataType":"ULONG"},"shiftOpX":{"position":42,"dataType":"ULONG"},"shiftOpY":{"position":43,"dataType":"ULONG"},"shiftOpZ":{"position":44,"dataType":"ULONG"},"shiftOp4":{"position":45,"dataType":"ULONG"},"shiftOp5":{"position":46,"dataType":"ULONG"},"staticRecordLayout":true}],"units":[{"name":"unitA","longIdentifier":"detailed description with spaces","display":"display string","type":"DERIVED","unit_ref":"unitB","siExponents":{"length":5,"mass":2,"time":7,"electricCurrent":10,"temperature":12,"amountOfSubstance":14,"luminousIntensity":16},"unitConversion":{"gradient":10.1,"offset":2.2}}],"userRights":[{"userLevelId":"admins","readOnly":true,"groups":[["g1","g2","g3"]]}],"variantCoding":{"varCharacteristics":[{"name":"varChar","criterions":["crit1","crit2","crit3"],"addresses":[29764,29765,29766,29767]}],"varCriterion":[{"name":"varCriterion","longIdentifier":"var criterion","values":["A","B","C","D","E","F"],"measurement":"superA","selectionCharacteristic":"varSelectionCharac"}],"varForbiddenComb":[{"tuples":[{"name":"varCriterion","value":"D"},{"name":"varCriterion","value":"F"}]}],"varNaming":"NUMERIC","varSeparator":"#"},"blobs":[{"content":"/begin BLOB i am not parsed neither /end BLOB"}]}],"included":[],"name":"Free_Example","longIdentifier":"MIT licensed example file","header":{"comment":"Free Asap2 example file","projectNo":"Free42","version":"V1.7.1"}}}> but was: <{"a2mlVersion":{"versionNo":1,"upgradeNo":31},"asap2Version":{"versionNo":1,"upgradeNo":71},"project":{"modules":[{"name":"sample_module","longIdentifier":"great example with different escaped quotation \" marks like double quotes \" and backslash escaped at the end \"","a2ml":[{"content":"/begin A2ML i am not parsed /end A2ML"}],"axisPts":[{"name":"axis_pts_1","longIdentifier":"I am a long identifier of an AXIS_PTS object","address":11259375,"inputQuantitiy":"in_quant","deposit":"axis_pts_deposit","maxDiff":1.1,"conversion":"axis_pts_conv","maxAxisPoints":123,"lowerLimit":1.2,"upperLimit":1.3,"notes":[],"byteorder":"MSB_FIRST","access":"NOT_IN_MCD_SYSTEM","axisPointDeposit":"DIFFERENCE","displayIdentifier":"display.identifier.wohoo","ecuAddressExtension":38787,"extendedLimits":{"lowerLimit":0.1,"upperLimit":0.5},"format":"%1212.21","functions":null,"guardRails":false,"ifData":[],"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":false,"memorySegment":"memorySegment.42","stepSize":820.028,"symbolLink":{"symbolName":"symbol name char 99","offset":99}}],"characteristics":[{"name":"char_a","longIdentifier":"description here","type":"CUBE_5","address":291,"deposit":"char_deposit","maxDiff":1.1,"conversion":"char_conv","lowerLimit":0.0,"upperLimit":10.0,"notes":[{"label":null,"origin":null,"text":["hello world"]}],"axisDescriptions":[{"attribute":"CURVE_AXIS","inputQuantity":"in_quant_char","conversion":"char_axis_descr_conv","maxAxisPoints":22,"lowerLimit":5.5,"upperLimit":21.21,"annotations":[],"axisPoints_ref":"axisPtsA","byteorder":"MSB_FIRST","curveAxis_ref":"curveAxisA","deposit":"DIFFERENCE","extendedLimits":null,"fixAxisPar":{"offset":2,"shift":4,"numberapo":8},"fixAxisParDist":{"offset":4,"shift":16,"numberapo":32},"fixAxisParList":{"axisPtsValues":[1.1,2.2,3.3,4.4,5.5]},"format":"%3.3","maxGrad":30.0,"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":true,"stepSize":1.2}],"bitmask":16777215,"byteorder":"MSB_LAST","access":"CALIBRATION","comparisonQuantityMeasurment":"comparisonQuantity","dependetCharacteristic":{"formula":"X1*X2","characterstics":["characA","characB"]},"discrete":true,"displayIdentifier":"display_ident_char","ecuAddressExtension":10000,"extendedLimits":{"lowerLimit":1.1,"upperLimit":5.5},"format":"%12.12","functions":["f1","f2","f3"],"guardRails":false,"ifData":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"mapList":["identA","identB"],"matrixDim":{"xDim":3,"yDim":4,"zDim":5},"maxRefresh":{"scalingUnit":6,"rate":10},"number":1233123,"physUnit":"kg","readOnly":true,"memorySegment":"memory_seg_ref","stepSize":99.9,"symbolLink":{"symbolName":"symbol name char","offset":7},"virtualCharacteristic":{"formula":"sin(cos(X2-X1))","characterstics":["characteristicA","characteristicB"]}}],"compuMethods":[{"name":"THE.IDENTITY","longIdentifier":"very unique","conversionType":"RAT_FUNC","format":"%8.4","unit":"°","coeffs":{"a":0.0,"b":1.1,"c":0.0,"d":0.0,"e":0.0,"f":1.1},"coeffsLinear":{"a":7.1,"b":-12.5},"compuTab_ref":null,"formula":null,"unit_ref":null,"conversionTable_ref":null},{"name":"THE.FORMULA","longIdentifier":"very unique","conversionType":"FORM","format":"%8.4","unit":"°","coeffs":null,"coeffsLinear":null,"compuTab_ref":null,"formula":{"fx":"X1-42","gx":"X1+42"},"unit_ref":null,"conversionTable_ref":null}],"compuTabs":[{"name":"PERFECT_COMPU.TAB","longIdentifier":"very perfect compu tab","conversionType":"TAB_INTP","numberOfValuePairs":5,"valuePairs":[{"inVal":-1.1,"outVal":-1.1},{"inVal":1.0,"outVal":-1.0},{"inVal":1.123456,"outVal":0.312312},{"inVal":3123.0,"outVal":3123.0},{"inVal":0.0,"outVal":0.0}],"defaultValue":"invalid input value","defaultValueNumeric":null}],"compuVTabs":[{"name":"firstVtab","longIdentifier":"very first vtab","conversionType":"TAB_VERB","numberOfValuePairs":3,"valuePairs":[{"inVal":1.1,"outVal":"first entry"},{"inVal":0.9,"outVal":"second entry"},{"inVal":0.0,"outVal":"third entry"}],"defaultValue":"default value"}],"compuVTabRanges":[{"name":"sophisticated.vtabRange","longIdentifier":"I am very sophisticated, trust me","numberOfValueTriples":4,"valueTriples":[{"inValMin":-5.5,"inValMax":5.5,"outVal":"from minus five point five to five point five"},{"inValMin":5.5,"inValMax":10.0,"outVal":"from five point five to ten"},{"inValMin":10.0,"inValMax":100.0,"outVal":"from ten to one hundred"},{"inValMin":100.0,"inValMax":200.0,"outVal":"from one hundred to two hundred"}],"defaultValue":"default"}],"frame":{"name":"frame","longIdentifier":"big frame","scalingUnit":7,"rate":49,"frameMeasurements":["identA","identB","identC"],"ifDatas":[]},"functions":[{"name":"firstFunction","longIdentifier":"very first function","annotations":[],"defCharacteristics":["char1","char2","char3"],"functionVersion":"version3.1.4.1","ifDatas":[],"inMeasurments":["meas1","meas2","meas3"],"locMeasurments":["locMeas1","locMeas2","locMeas3"],"outMeasurments":["outMeas1","outMeas2","outMeas3"],"refCharacteristics":["refChar1","refChar2","refChar3"],"subFunctions":["subFunc1","subFunc2","subFunc3"]}],"groups":[{"groupName":"groupies","longIdentifier":"stick to the group","annotations":[],"functionList":null,"ifDatas":[],"refCharacteristics":["refChar1","refChar2","refChar3"],"refMeasurements":["meas1","meas2","meas3","meas[0][0]"],"root":true,"subGroups":["subGroup1","subGroup2","subGroup3"]}],"ifDatas":[],"measurements":[{"name":"superMeasurement","longIdentifier":"ultimate test","datatype":"UBYTE","conversion":"THE.IDENTITY","resolution":1,"accuracy":2.1,"lowerLimit":4.2,"upperLimit":255.0,"annotations":[{"label":"annotation I","origin":"me","text":["row \\'1'\\","row '2'\r\n","row\t3"]}],"arraySize":7,"bitMask":45055,"bitOperation":{"leftShift":null,"rightShift":4,"signExtend":true},"byteorder":"MSB_FIRST","discrete":true,"displayIdentifier":"mega.superMeasurement","ecuAddress":11259375,"ecuAddressExtension":255,"errorMask":14,"format":"%3.1","functionList":["firstFunction","secondFunction","thirdFunction"],"ifDatas":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"layout":"ROW_DIR","matrixDim":{"xDim":7,"yDim":8,"zDim":10},"maxRefresh":{"scalingUnit":12,"rate":42},"physUnit":"kg/m","readWrite":true,"memorySegment":"mem1","symbolLink":{"symbolName":"symbol name","offset":84},"virtual":["meas_1","meas_2"]}],"modCommon":{"comment":"","alignmentByte":2,"alignmentFloat32IEEE":8,"alignmentFloat64IEEE":8,"alignmentInt64":null,"alignmentLong":3,"alignmentWord":1,"byteorder":"MSB_FIRST","dataSize":128,"deposit":"DIFFERENCE","standardRecordLayout":null},"modPar":{"comment":"cmt","addresses":[18,1193046,15],"calibrationMethods":[{"name":"methodA","version":3141,"calibrationHandle":[{"handles":[65536,768,7,7340032,262144],"calibrationText":"important!"},{"handles":[0,16],"calibrationText":null}]}],"cpuType":"RISC","customer":"public domain","customerNo":"42","ecu":"RISC-V","ecuCalibrationOffset":84,"epk":"EPROM_identification - should it be a string or an identifier?","memoryLayouts":[{"prgType":"PRG_CODE","address":16,"size":4096,"offset":[5,4,3,2,1],"ifDatas":[]}],"memorySegments":[{"name":"mem1","longIdentifier":"lots of code in internal flash","prgType":"CODE","memoryType":"FLASH","attribute":"INTERN","address":66,"size":4096,"offset":[-1,-1,-1,-1,-1],"ifDatas":[]}],"numberOfInterfaces":168,"phoneNumber":"911","supplier":"Andreas Lenzen","systemConstants":[{"name":"close to 1","value":"value 1"},{"name":"pi","value":"about 3"}],"user":"A2l stakeholders","version":"Very high :-)"},"recordLayouts":[{"name":"master_record","alignmentByte":2,"alignmentFloat32IEEE":4,"alignmentFloat64IEEE":8,"alignmentInt64":16,"alignmentLong":32,"alignmentWord":64,"axisPtsX":{"position":1,"datatype":"SBYTE","indexorder":"INDEX_INCR","addressing":"DIRECT"},"axisPtsY":{"position":2,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPtsZ":{"position":3,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts4":{"position":4,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts5":{"position":5,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleX":{"position":6,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleY":{"position":7,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleZ":{"position":8,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale4":{"position":9,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale5":{"position":10,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"distOpX":{"position":11,"dataType":"SBYTE"},"distOpY":{"position":12,"dataType":"SBYTE"},"distOpZ":{"position":13,"dataType":"SBYTE"},"distOp4":{"position":14,"dataType":"SBYTE"},"distOp5":{"position":15,"dataType":"SBYTE"},"fixNoAxisPtsX":{"numberOfAxisPoints":1},"fixNoAxisPtsY":{"numberOfAxisPoints":2},"fixNoAxisPtsZ":{"numberOfAxisPoints":3},"fixNoAxisPts4":{"numberOfAxisPoints":4},"fixNoAxisPts5":{"numberOfAxisPoints":5},"functionValues":{"position":47,"dataType":"UBYTE","indexMode":"ALTERNATE_CURVES","addressType":"PLONG"},"identification":{"position":48,"dataType":"ULONG"},"noAxisPtsX":{"position":16,"dataType":"UBYTE"},"noAxisPtsY":{"position":17,"dataType":"UBYTE"},"noAxisPtsZ":{"position":18,"dataType":"UBYTE"},"noAxisPts4":{"position":19,"dataType":"UBYTE"},"noAxisPts5":{"position":20,"dataType":"UBYTE"},"noRescaleX":{"position":21,"dataType":"ULONG"},"noRescaleY":{"position":22,"dataType":"ULONG"},"noRescaleZ":{"position":23,"dataType":"ULONG"},"noRescale4":{"position":24,"dataType":"ULONG"},"noRescale5":{"position":25,"dataType":"ULONG"},"offsetX":{"position":26,"dataType":"ULONG"},"offsetY":{"position":27,"dataType":"ULONG"},"offsetZ":{"position":28,"dataType":"ULONG"},"offset4":{"position":29,"dataType":"ULONG"},"offset5":{"position":30,"dataType":"ULONG"},"reserved":[{"position":49,"dataSize":"LONG"},{"position":50,"dataSize":"WORD"}],"ripAddressW":{"position":31,"dataType":"ULONG"},"ripAddressX":{"position":32,"dataType":"ULONG"},"ripAddressY":{"position":33,"dataType":"ULONG"},"ripAddressZ":{"position":34,"dataType":"ULONG"},"ripAddress4":{"position":35,"dataType":"ULONG"},"ripAddress5":{"position":36,"dataType":"ULONG"},"srcAddressX":{"position":37,"dataType":"ULONG"},"srcAddressY":{"position":38,"dataType":"ULONG"},"srcAddressZ":{"position":39,"dataType":"ULONG"},"srcAddress4":{"position":40,"dataType":"ULONG"},"srcAddress5":{"position":41,"dataType":"ULONG"},"shiftOpX":{"position":42,"dataType":"ULONG"},"shiftOpY":{"position":43,"dataType":"ULONG"},"shiftOpZ":{"position":44,"dataType":"ULONG"},"shiftOp4":{"position":45,"dataType":"ULONG"},"shiftOp5":{"position":46,"dataType":"ULONG"},"staticRecordLayout":true}],"units":[{"name":"unitA","longIdentifier":"detailed description with spaces","display":"display string","type":"DERIVED","unit_ref":"unitB","siExponents":{"length":5,"mass":2,"time":7,"electricCurrent":10,"temperature":12,"amountOfSubstance":14,"luminousIntensity":16},"unitConversion":{"gradient":10.1,"offset":2.2}}],"userRights":[{"userLevelId":"admins","readOnly":true,"groups":[["g1","g2","g3"]]}],"variantCoding":{"varCharacteristics":[{"name":"varChar","criterions":["crit1","crit2","crit3"],"addresses":[29764,29765,29766,29767]}],"varCriterion":[{"name":"varCriterion","longIdentifier":"var criterion","values":["A","B","C","D","E","F"],"measurement":"superA","selectionCharacteristic":"varSelectionCharac"}],"varForbiddenComb":[{"tuples":[{"name":"varCriterion","value":"D"},{"name":"varCriterion","value":"F"}]}],"varNaming":"NUMERIC","varSeparator":"#"},"blobs":[{"content":"/begin BLOB i am not parsed neither /end BLOB"}]}],"included":[],"name":"Free_Example","longIdentifier":"MIT licensed example file","header":{"comment":"Free Asap2 example file","projectNo":"Free42","version":"V1.7.1"}}}>
[ERROR] Asap2ParserTest.testSystemInJsonFile:134 expected: <{"a2mlVersion":{"versionNo":1,"upgradeNo":31},"asap2Version":{"versionNo":1,"upgradeNo":71},"project":{"modules":[{"name":"sample_module","longIdentifier":"great example with different escaped quotation \" marks like double quotes \" and backslash escaped at the end \"","a2ml":[{"content":"/begin A2ML i am not parsed /end A2ML"}],"axisPts":[{"name":"axis_pts_1","longIdentifier":"I am a long identifier of an AXIS_PTS object","address":11259375,"inputQuantitiy":"in_quant","deposit":"axis_pts_deposit","maxDiff":1.1,"conversion":"axis_pts_conv","maxAxisPoints":123,"lowerLimit":1.2,"upperLimit":1.3,"notes":[],"byteorder":"MSB_FIRST","access":"NOT_IN_MCD_SYSTEM","axisPointDeposit":"DIFFERENCE","displayIdentifier":"display.identifier.wohoo","ecuAddressExtension":38787,"extendedLimits":{"lowerLimit":0.1,"upperLimit":0.5},"format":"%1212.21","functions":null,"guardRails":false,"ifData":[],"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":false,"memorySegment":"memorySegment.42","stepSize":820.028,"symbolLink":{"symbolName":"symbol name char 99","offset":99}}],"characteristics":[{"name":"char_a","longIdentifier":"description here","type":"CUBE_5","address":291,"deposit":"char_deposit","maxDiff":1.1,"conversion":"char_conv","lowerLimit":0.0,"upperLimit":10.0,"notes":[{"label":null,"origin":null,"text":["hello world"]}],"axisDescriptions":[{"attribute":"CURVE_AXIS","inputQuantity":"in_quant_char","conversion":"char_axis_descr_conv","maxAxisPoints":22,"lowerLimit":5.5,"upperLimit":21.21,"annotations":[],"axisPoints_ref":"axisPtsA","byteorder":"MSB_FIRST","curveAxis_ref":"curveAxisA","deposit":"DIFFERENCE","extendedLimits":null,"fixAxisPar":{"offset":2,"shift":4,"numberapo":8},"fixAxisParDist":{"offset":4,"shift":16,"numberapo":32},"fixAxisParList":{"axisPtsValues":[1.1,2.2,3.3,4.4,5.5]},"format":"%3.3","maxGrad":30.0,"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":true,"stepSize":1.2}],"bitmask":16777215,"byteorder":"MSB_LAST","access":"CALIBRATION","comparisonQuantityMeasurment":"comparisonQuantity","dependetCharacteristic":{"formula":"X1*X2","characterstics":["characA","characB"]},"discrete":true,"displayIdentifier":"display_ident_char","ecuAddressExtension":10000,"extendedLimits":{"lowerLimit":1.1,"upperLimit":5.5},"format":"%12.12","functions":["f1","f2","f3"],"guardRails":false,"ifData":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"mapList":["identA","identB"],"matrixDim":{"xDim":3,"yDim":4,"zDim":5},"maxRefresh":{"scalingUnit":6,"rate":10},"number":1233123,"physUnit":"kg","readOnly":true,"memorySegment":"memory_seg_ref","stepSize":99.9,"symbolLink":{"symbolName":"symbol name char","offset":7},"virtualCharacteristic":{"formula":"sin(cos(X2-X1))","characterstics":["characteristicA","characteristicB"]}}],"compuMethods":[{"name":"THE.IDENTITY","longIdentifier":"very unique","conversionType":"RAT_FUNC","format":"%8.4","unit":"°","coeffs":{"a":0.0,"b":1.1,"c":0.0,"d":0.0,"e":0.0,"f":1.1},"coeffsLinear":{"a":7.1,"b":-12.5},"compuTab_ref":null,"formula":null,"unit_ref":null,"conversionTable_ref":null},{"name":"THE.FORMULA","longIdentifier":"very unique","conversionType":"FORM","format":"%8.4","unit":"°","coeffs":null,"coeffsLinear":null,"compuTab_ref":null,"formula":{"fx":"X1-42","gx":"X1+42"},"unit_ref":null,"conversionTable_ref":null}],"compuTabs":[{"name":"PERFECT_COMPU.TAB","longIdentifier":"very perfect compu tab","conversionType":"TAB_INTP","numberOfValuePairs":5,"valuePairs":[{"inVal":-1.1,"outVal":-1.1},{"inVal":1.0,"outVal":-1.0},{"inVal":1.123456,"outVal":0.312312},{"inVal":3123.0,"outVal":3123.0},{"inVal":0.0,"outVal":0.0}],"defaultValue":"invalid input value","defaultValueNumeric":null}],"compuVTabs":[{"name":"firstVtab","longIdentifier":"very first vtab","conversionType":"TAB_VERB","numberOfValuePairs":3,"valuePairs":[{"inVal":1.1,"outVal":"first entry"},{"inVal":0.9,"outVal":"second entry"},{"inVal":0.0,"outVal":"third entry"}],"defaultValue":"default value"}],"compuVTabRanges":[{"name":"sophisticated.vtabRange","longIdentifier":"I am very sophisticated, trust me","numberOfValueTriples":4,"valueTriples":[{"inValMin":-5.5,"inValMax":5.5,"outVal":"from minus five point five to five point five"},{"inValMin":5.5,"inValMax":10.0,"outVal":"from five point five to ten"},{"inValMin":10.0,"inValMax":100.0,"outVal":"from ten to one hundred"},{"inValMin":100.0,"inValMax":200.0,"outVal":"from one hundred to two hundred"}],"defaultValue":"default"}],"frame":{"name":"frame","longIdentifier":"big frame","scalingUnit":7,"rate":49,"frameMeasurements":["identA","identB","identC"],"ifDatas":[]},"functions":[{"name":"firstFunction","longIdentifier":"very first function","annotations":[],"defCharacteristics":["char1","char2","char3"],"functionVersion":"version3.1.4.1","ifDatas":[],"inMeasurments":["meas1","meas2","meas3"],"locMeasurments":["locMeas1","locMeas2","locMeas3"],"outMeasurments":["outMeas1","outMeas2","outMeas3"],"refCharacteristics":["refChar1","refChar2","refChar3"],"subFunctions":["subFunc1","subFunc2","subFunc3"]}],"groups":[{"groupName":"groupies","longIdentifier":"stick to the group","annotations":[],"functionList":null,"ifDatas":[],"refCharacteristics":["refChar1","refChar2","refChar3"],"refMeasurements":["meas1","meas2","meas3","meas[0][0]"],"root":true,"subGroups":["subGroup1","subGroup2","subGroup3"]}],"ifDatas":[],"measurements":[{"name":"superMeasurement","longIdentifier":"ultimate test","datatype":"UBYTE","conversion":"THE.IDENTITY","resolution":1,"accuracy":2.1,"lowerLimit":4.2,"upperLimit":255.0,"annotations":[{"label":"annotation I","origin":"me","text":["row \\'1'\\","row '2'\r\n","row\t3"]}],"arraySize":7,"bitMask":45055,"bitOperation":{"leftShift":null,"rightShift":4,"signExtend":true},"byteorder":"MSB_FIRST","discrete":true,"displayIdentifier":"mega.superMeasurement","ecuAddress":11259375,"ecuAddressExtension":255,"errorMask":14,"format":"%3.1","functionList":["firstFunction","secondFunction","thirdFunction"],"ifDatas":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"layout":"ROW_DIR","matrixDim":{"xDim":7,"yDim":8,"zDim":10},"maxRefresh":{"scalingUnit":12,"rate":42},"physUnit":"kg/m","readWrite":true,"memorySegment":"mem1","symbolLink":{"symbolName":"symbol name","offset":84},"virtual":["meas_1","meas_2"]}],"modCommon":{"comment":"","alignmentByte":2,"alignmentFloat32IEEE":8,"alignmentFloat64IEEE":8,"alignmentInt64":null,"alignmentLong":3,"alignmentWord":1,"byteorder":"MSB_FIRST","dataSize":128,"deposit":"DIFFERENCE","standardRecordLayout":null},"modPar":{"comment":"cmt","addresses":[18,1193046,15],"calibrationMethods":[{"name":"methodA","version":3141,"calibrationHandle":[{"handles":[65536,768,7,7340032,262144],"calibrationText":"important!"},{"handles":[0,16],"calibrationText":null}]}],"cpuType":"RISC","customer":"public domain","customerNo":"42","ecu":"RISC-V","ecuCalibrationOffset":84,"epk":"EPROM_identification - should it be a string or an identifier?","memoryLayouts":[{"prgType":"PRG_CODE","address":16,"size":4096,"offset":[5,4,3,2,1],"ifDatas":[]}],"memorySegments":[{"name":"mem1","longIdentifier":"lots of code in internal flash","prgType":"CODE","memoryType":"FLASH","attribute":"INTERN","address":66,"size":4096,"offset":[-1,-1,-1,-1,-1],"ifDatas":[]}],"numberOfInterfaces":168,"phoneNumber":"911","supplier":"Andreas Lenzen","systemConstants":[{"name":"close to 1","value":"value 1"},{"name":"pi","value":"about 3"}],"user":"A2l stakeholders","version":"Very high :-)"},"recordLayouts":[{"name":"master_record","alignmentByte":2,"alignmentFloat32IEEE":4,"alignmentFloat64IEEE":8,"alignmentInt64":16,"alignmentLong":32,"alignmentWord":64,"axisPtsX":{"position":1,"datatype":"SBYTE","indexorder":"INDEX_INCR","addressing":"DIRECT"},"axisPtsY":{"position":2,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPtsZ":{"position":3,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts4":{"position":4,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts5":{"position":5,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleX":{"position":6,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleY":{"position":7,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleZ":{"position":8,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale4":{"position":9,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale5":{"position":10,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"distOpX":{"position":11,"dataType":"SBYTE"},"distOpY":{"position":12,"dataType":"SBYTE"},"distOpZ":{"position":13,"dataType":"SBYTE"},"distOp4":{"position":14,"dataType":"SBYTE"},"distOp5":{"position":15,"dataType":"SBYTE"},"fixNoAxisPtsX":{"numberOfAxisPoints":1},"fixNoAxisPtsY":{"numberOfAxisPoints":2},"fixNoAxisPtsZ":{"numberOfAxisPoints":3},"fixNoAxisPts4":{"numberOfAxisPoints":4},"fixNoAxisPts5":{"numberOfAxisPoints":5},"functionValues":{"position":47,"dataType":"UBYTE","indexMode":"ALTERNATE_CURVES","addressType":"PLONG"},"identification":{"position":48,"dataType":"ULONG"},"noAxisPtsX":{"position":16,"dataType":"UBYTE"},"noAxisPtsY":{"position":17,"dataType":"UBYTE"},"noAxisPtsZ":{"position":18,"dataType":"UBYTE"},"noAxisPts4":{"position":19,"dataType":"UBYTE"},"noAxisPts5":{"position":20,"dataType":"UBYTE"},"noRescaleX":{"position":21,"dataType":"ULONG"},"noRescaleY":{"position":22,"dataType":"ULONG"},"noRescaleZ":{"position":23,"dataType":"ULONG"},"noRescale4":{"position":24,"dataType":"ULONG"},"noRescale5":{"position":25,"dataType":"ULONG"},"offsetX":{"position":26,"dataType":"ULONG"},"offsetY":{"position":27,"dataType":"ULONG"},"offsetZ":{"position":28,"dataType":"ULONG"},"offset4":{"position":29,"dataType":"ULONG"},"offset5":{"position":30,"dataType":"ULONG"},"reserved":[{"position":49,"dataSize":"LONG"},{"position":50,"dataSize":"WORD"}],"ripAddressW":{"position":31,"dataType":"ULONG"},"ripAddressX":{"position":32,"dataType":"ULONG"},"ripAddressY":{"position":33,"dataType":"ULONG"},"ripAddressZ":{"position":34,"dataType":"ULONG"},"ripAddress4":{"position":35,"dataType":"ULONG"},"ripAddress5":{"position":36,"dataType":"ULONG"},"srcAddressX":{"position":37,"dataType":"ULONG"},"srcAddressY":{"position":38,"dataType":"ULONG"},"srcAddressZ":{"position":39,"dataType":"ULONG"},"srcAddress4":{"position":40,"dataType":"ULONG"},"srcAddress5":{"position":41,"dataType":"ULONG"},"shiftOpX":{"position":42,"dataType":"ULONG"},"shiftOpY":{"position":43,"dataType":"ULONG"},"shiftOpZ":{"position":44,"dataType":"ULONG"},"shiftOp4":{"position":45,"dataType":"ULONG"},"shiftOp5":{"position":46,"dataType":"ULONG"},"staticRecordLayout":true}],"units":[{"name":"unitA","longIdentifier":"detailed description with spaces","display":"display string","type":"DERIVED","unit_ref":"unitB","siExponents":{"length":5,"mass":2,"time":7,"electricCurrent":10,"temperature":12,"amountOfSubstance":14,"luminousIntensity":16},"unitConversion":{"gradient":10.1,"offset":2.2}}],"userRights":[{"userLevelId":"admins","readOnly":true,"groups":[["g1","g2","g3"]]}],"variantCoding":{"varCharacteristics":[{"name":"varChar","criterions":["crit1","crit2","crit3"],"addresses":[29764,29765,29766,29767]}],"varCriterion":[{"name":"varCriterion","longIdentifier":"var criterion","values":["A","B","C","D","E","F"],"measurement":"superA","selectionCharacteristic":"varSelectionCharac"}],"varForbiddenComb":[{"tuples":[{"name":"varCriterion","value":"D"},{"name":"varCriterion","value":"F"}]}],"varNaming":"NUMERIC","varSeparator":"#"},"blobs":[{"content":"/begin BLOB i am not parsed neither /end BLOB"}]}],"included":[],"name":"Free_Example","longIdentifier":"MIT licensed example file","header":{"comment":"Free Asap2 example file","projectNo":"Free42","version":"V1.7.1"}}}> but was: <{"a2mlVersion":{"versionNo":1,"upgradeNo":31},"asap2Version":{"versionNo":1,"upgradeNo":71},"project":{"modules":[{"name":"sample_module","longIdentifier":"great example with different escaped quotation \" marks like double quotes \" and backslash escaped at the end \"","a2ml":[{"content":"/begin A2ML i am not parsed /end A2ML"}],"axisPts":[{"name":"axis_pts_1","longIdentifier":"I am a long identifier of an AXIS_PTS object","address":11259375,"inputQuantitiy":"in_quant","deposit":"axis_pts_deposit","maxDiff":1.1,"conversion":"axis_pts_conv","maxAxisPoints":123,"lowerLimit":1.2,"upperLimit":1.3,"notes":[],"byteorder":"MSB_FIRST","access":"NOT_IN_MCD_SYSTEM","axisPointDeposit":"DIFFERENCE","displayIdentifier":"display.identifier.wohoo","ecuAddressExtension":38787,"extendedLimits":{"lowerLimit":0.1,"upperLimit":0.5},"format":"%1212.21","functions":null,"guardRails":false,"ifData":[],"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":false,"memorySegment":"memorySegment.42","stepSize":820.028,"symbolLink":{"symbolName":"symbol name char 99","offset":99}}],"characteristics":[{"name":"char_a","longIdentifier":"description here","type":"CUBE_5","address":291,"deposit":"char_deposit","maxDiff":1.1,"conversion":"char_conv","lowerLimit":0.0,"upperLimit":10.0,"notes":[{"label":null,"origin":null,"text":["hello world"]}],"axisDescriptions":[{"attribute":"CURVE_AXIS","inputQuantity":"in_quant_char","conversion":"char_axis_descr_conv","maxAxisPoints":22,"lowerLimit":5.5,"upperLimit":21.21,"annotations":[],"axisPoints_ref":"axisPtsA","byteorder":"MSB_FIRST","curveAxis_ref":"curveAxisA","deposit":"DIFFERENCE","extendedLimits":null,"fixAxisPar":{"offset":2,"shift":4,"numberapo":8},"fixAxisParDist":{"offset":4,"shift":16,"numberapo":32},"fixAxisParList":{"axisPtsValues":[1.1,2.2,3.3,4.4,5.5]},"format":"%3.3","maxGrad":30.0,"monotony":"NOT_MON","physUnit":"m/(s*s)","readOnly":true,"stepSize":1.2}],"bitmask":16777215,"byteorder":"MSB_LAST","access":"CALIBRATION","comparisonQuantityMeasurment":"comparisonQuantity","dependetCharacteristic":{"formula":"X1*X2","characterstics":["characA","characB"]},"discrete":true,"displayIdentifier":"display_ident_char","ecuAddressExtension":10000,"extendedLimits":{"lowerLimit":1.1,"upperLimit":5.5},"format":"%12.12","functions":["f1","f2","f3"],"guardRails":false,"ifData":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"mapList":["identA","identB"],"matrixDim":{"xDim":3,"yDim":4,"zDim":5},"maxRefresh":{"scalingUnit":6,"rate":10},"number":1233123,"physUnit":"kg","readOnly":true,"memorySegment":"memory_seg_ref","stepSize":99.9,"symbolLink":{"symbolName":"symbol name char","offset":7},"virtualCharacteristic":{"formula":"sin(cos(X2-X1))","characterstics":["characteristicA","characteristicB"]}}],"compuMethods":[{"name":"THE.IDENTITY","longIdentifier":"very unique","conversionType":"RAT_FUNC","format":"%8.4","unit":"°","coeffs":{"a":0.0,"b":1.1,"c":0.0,"d":0.0,"e":0.0,"f":1.1},"coeffsLinear":{"a":7.1,"b":-12.5},"compuTab_ref":null,"formula":null,"unit_ref":null,"conversionTable_ref":null},{"name":"THE.FORMULA","longIdentifier":"very unique","conversionType":"FORM","format":"%8.4","unit":"°","coeffs":null,"coeffsLinear":null,"compuTab_ref":null,"formula":{"fx":"X1-42","gx":"X1+42"},"unit_ref":null,"conversionTable_ref":null}],"compuTabs":[{"name":"PERFECT_COMPU.TAB","longIdentifier":"very perfect compu tab","conversionType":"TAB_INTP","numberOfValuePairs":5,"valuePairs":[{"inVal":-1.1,"outVal":-1.1},{"inVal":1.0,"outVal":-1.0},{"inVal":1.123456,"outVal":0.312312},{"inVal":3123.0,"outVal":3123.0},{"inVal":0.0,"outVal":0.0}],"defaultValue":"invalid input value","defaultValueNumeric":null}],"compuVTabs":[{"name":"firstVtab","longIdentifier":"very first vtab","conversionType":"TAB_VERB","numberOfValuePairs":3,"valuePairs":[{"inVal":1.1,"outVal":"first entry"},{"inVal":0.9,"outVal":"second entry"},{"inVal":0.0,"outVal":"third entry"}],"defaultValue":"default value"}],"compuVTabRanges":[{"name":"sophisticated.vtabRange","longIdentifier":"I am very sophisticated, trust me","numberOfValueTriples":4,"valueTriples":[{"inValMin":-5.5,"inValMax":5.5,"outVal":"from minus five point five to five point five"},{"inValMin":5.5,"inValMax":10.0,"outVal":"from five point five to ten"},{"inValMin":10.0,"inValMax":100.0,"outVal":"from ten to one hundred"},{"inValMin":100.0,"inValMax":200.0,"outVal":"from one hundred to two hundred"}],"defaultValue":"default"}],"frame":{"name":"frame","longIdentifier":"big frame","scalingUnit":7,"rate":49,"frameMeasurements":["identA","identB","identC"],"ifDatas":[]},"functions":[{"name":"firstFunction","longIdentifier":"very first function","annotations":[],"defCharacteristics":["char1","char2","char3"],"functionVersion":"version3.1.4.1","ifDatas":[],"inMeasurments":["meas1","meas2","meas3"],"locMeasurments":["locMeas1","locMeas2","locMeas3"],"outMeasurments":["outMeas1","outMeas2","outMeas3"],"refCharacteristics":["refChar1","refChar2","refChar3"],"subFunctions":["subFunc1","subFunc2","subFunc3"]}],"groups":[{"groupName":"groupies","longIdentifier":"stick to the group","annotations":[],"functionList":null,"ifDatas":[],"refCharacteristics":["refChar1","refChar2","refChar3"],"refMeasurements":["meas1","meas2","meas3","meas[0][0]"],"root":true,"subGroups":["subGroup1","subGroup2","subGroup3"]}],"ifDatas":[],"measurements":[{"name":"superMeasurement","longIdentifier":"ultimate test","datatype":"UBYTE","conversion":"THE.IDENTITY","resolution":1,"accuracy":2.1,"lowerLimit":4.2,"upperLimit":255.0,"annotations":[{"label":"annotation I","origin":"me","text":["row \\'1'\\","row '2'\r\n","row\t3"]}],"arraySize":7,"bitMask":45055,"bitOperation":{"leftShift":null,"rightShift":4,"signExtend":true},"byteorder":"MSB_FIRST","discrete":true,"displayIdentifier":"mega.superMeasurement","ecuAddress":11259375,"ecuAddressExtension":255,"errorMask":14,"format":"%3.1","functionList":["firstFunction","secondFunction","thirdFunction"],"ifDatas":[{"content":"/begin IF_DATA i am not parsed yet /end IF_DATA"}],"layout":"ROW_DIR","matrixDim":{"xDim":7,"yDim":8,"zDim":10},"maxRefresh":{"scalingUnit":12,"rate":42},"physUnit":"kg/m","readWrite":true,"memorySegment":"mem1","symbolLink":{"symbolName":"symbol name","offset":84},"virtual":["meas_1","meas_2"]}],"modCommon":{"comment":"","alignmentByte":2,"alignmentFloat32IEEE":8,"alignmentFloat64IEEE":8,"alignmentInt64":null,"alignmentLong":3,"alignmentWord":1,"byteorder":"MSB_FIRST","dataSize":128,"deposit":"DIFFERENCE","standardRecordLayout":null},"modPar":{"comment":"cmt","addresses":[18,1193046,15],"calibrationMethods":[{"name":"methodA","version":3141,"calibrationHandle":[{"handles":[65536,768,7,7340032,262144],"calibrationText":"important!"},{"handles":[0,16],"calibrationText":null}]}],"cpuType":"RISC","customer":"public domain","customerNo":"42","ecu":"RISC-V","ecuCalibrationOffset":84,"epk":"EPROM_identification - should it be a string or an identifier?","memoryLayouts":[{"prgType":"PRG_CODE","address":16,"size":4096,"offset":[5,4,3,2,1],"ifDatas":[]}],"memorySegments":[{"name":"mem1","longIdentifier":"lots of code in internal flash","prgType":"CODE","memoryType":"FLASH","attribute":"INTERN","address":66,"size":4096,"offset":[-1,-1,-1,-1,-1],"ifDatas":[]}],"numberOfInterfaces":168,"phoneNumber":"911","supplier":"Andreas Lenzen","systemConstants":[{"name":"close to 1","value":"value 1"},{"name":"pi","value":"about 3"}],"user":"A2l stakeholders","version":"Very high :-)"},"recordLayouts":[{"name":"master_record","alignmentByte":2,"alignmentFloat32IEEE":4,"alignmentFloat64IEEE":8,"alignmentInt64":16,"alignmentLong":32,"alignmentWord":64,"axisPtsX":{"position":1,"datatype":"SBYTE","indexorder":"INDEX_INCR","addressing":"DIRECT"},"axisPtsY":{"position":2,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPtsZ":{"position":3,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts4":{"position":4,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisPts5":{"position":5,"datatype":"UBYTE","indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleX":{"position":6,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleY":{"position":7,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescaleZ":{"position":8,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale4":{"position":9,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"axisRescale5":{"position":10,"datatype":"UBYTE","maxNumberOfRescalePairs":3141,"indexorder":"INDEX_DECR","addressing":"PBYTE"},"distOpX":{"position":11,"dataType":"SBYTE"},"distOpY":{"position":12,"dataType":"SBYTE"},"distOpZ":{"position":13,"dataType":"SBYTE"},"distOp4":{"position":14,"dataType":"SBYTE"},"distOp5":{"position":15,"dataType":"SBYTE"},"fixNoAxisPtsX":{"numberOfAxisPoints":1},"fixNoAxisPtsY":{"numberOfAxisPoints":2},"fixNoAxisPtsZ":{"numberOfAxisPoints":3},"fixNoAxisPts4":{"numberOfAxisPoints":4},"fixNoAxisPts5":{"numberOfAxisPoints":5},"functionValues":{"position":47,"dataType":"UBYTE","indexMode":"ALTERNATE_CURVES","addressType":"PLONG"},"identification":{"position":48,"dataType":"ULONG"},"noAxisPtsX":{"position":16,"dataType":"UBYTE"},"noAxisPtsY":{"position":17,"dataType":"UBYTE"},"noAxisPtsZ":{"position":18,"dataType":"UBYTE"},"noAxisPts4":{"position":19,"dataType":"UBYTE"},"noAxisPts5":{"position":20,"dataType":"UBYTE"},"noRescaleX":{"position":21,"dataType":"ULONG"},"noRescaleY":{"position":22,"dataType":"ULONG"},"noRescaleZ":{"position":23,"dataType":"ULONG"},"noRescale4":{"position":24,"dataType":"ULONG"},"noRescale5":{"position":25,"dataType":"ULONG"},"offsetX":{"position":26,"dataType":"ULONG"},"offsetY":{"position":27,"dataType":"ULONG"},"offsetZ":{"position":28,"dataType":"ULONG"},"offset4":{"position":29,"dataType":"ULONG"},"offset5":{"position":30,"dataType":"ULONG"},"reserved":[{"position":49,"dataSize":"LONG"},{"position":50,"dataSize":"WORD"}],"ripAddressW":{"position":31,"dataType":"ULONG"},"ripAddressX":{"position":32,"dataType":"ULONG"},"ripAddressY":{"position":33,"dataType":"ULONG"},"ripAddressZ":{"position":34,"dataType":"ULONG"},"ripAddress4":{"position":35,"dataType":"ULONG"},"ripAddress5":{"position":36,"dataType":"ULONG"},"srcAddressX":{"position":37,"dataType":"ULONG"},"srcAddressY":{"position":38,"dataType":"ULONG"},"srcAddressZ":{"position":39,"dataType":"ULONG"},"srcAddress4":{"position":40,"dataType":"ULONG"},"srcAddress5":{"position":41,"dataType":"ULONG"},"shiftOpX":{"position":42,"dataType":"ULONG"},"shiftOpY":{"position":43,"dataType":"ULONG"},"shiftOpZ":{"position":44,"dataType":"ULONG"},"shiftOp4":{"position":45,"dataType":"ULONG"},"shiftOp5":{"position":46,"dataType":"ULONG"},"staticRecordLayout":true}],"units":[{"name":"unitA","longIdentifier":"detailed description with spaces","display":"display string","type":"DERIVED","unit_ref":"unitB","siExponents":{"length":5,"mass":2,"time":7,"electricCurrent":10,"temperature":12,"amountOfSubstance":14,"luminousIntensity":16},"unitConversion":{"gradient":10.1,"offset":2.2}}],"userRights":[{"userLevelId":"admins","readOnly":true,"groups":[["g1","g2","g3"]]}],"variantCoding":{"varCharacteristics":[{"name":"varChar","criterions":["crit1","crit2","crit3"],"addresses":[29764,29765,29766,29767]}],"varCriterion":[{"name":"varCriterion","longIdentifier":"var criterion","values":["A","B","C","D","E","F"],"measurement":"superA","selectionCharacteristic":"varSelectionCharac"}],"varForbiddenComb":[{"tuples":[{"name":"varCriterion","value":"D"},{"name":"varCriterion","value":"F"}]}],"varNaming":"NUMERIC","varSeparator":"#"},"blobs":[{"content":"/begin BLOB i am not parsed neither /end BLOB"}]}],"included":[],"name":"Free_Example","longIdentifier":"MIT licensed example file","header":{"comment":"Free Asap2 example file","projectNo":"Free42","version":"V1.7.1"}}}>
[INFO]
[ERROR] Tests run: 329, Failures: 2, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.886 s
[INFO] Finished at: 2021-04-04T01:01:58Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3:test (default-test) on project A2LParser: There are test failures.
[ERROR]
[ERROR] Please refer to /usr/src/mymaven/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.