diff --git a/README.md b/README.md index 95beb744..c3e6bc07 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -##**Canmatrix** is a python package to read and write several CAN database formats.## +##**Canmatrix** is a python package to read and write several CAN (Controller Area Network) database formats.## ###About diff --git a/canmatrix/canmatrix.py b/canmatrix/canmatrix.py index bc5db975..12b0eed7 100644 --- a/canmatrix/canmatrix.py +++ b/canmatrix/canmatrix.py @@ -106,32 +106,84 @@ class Signal(object): contains on Signal of canmatrix-object with following attributes: _name, _startbit,_signalsize (in Bits) - _byteorder (1: Intel, 0: Motorola) - _valuetype () + _is_little_endian (1: Intel, 0: Motorola) + _is_signed () _factor, _offset, _min, _max _receiver (Boarunit/ECU-Name) _attributes, _values, _unit, _comment _multiplex ('Multiplexor' or Number of Multiplex) """ - def __init__(self, name, startbit, signalsize, byteorder, valuetype="+", factor=1, offset=0, min=0, max=0, unit="", receiver=[], multiplex=None): +# def __init__(self, name, startbit, signalsize, is_little_endian, is_signed=False, factor=1, offset=0, min=0, max=0, unit="", receiver=[], multiplex=None): + def __init__(self, name, **kwargs): + + if 'startBit' in kwargs: + self._startbit = int(kwargs["startBit"]) + else: + self._startbit = 0 + + if 'signalSize' in kwargs: + self._signalsize = int(kwargs["signalSize"]) + else: + self._signalsize = 0 + + if 'is_little_endian' in kwargs: + self._is_little_endian = kwargs["is_little_endian"] + else: + self._is_little_endian = True + + if 'is_signed' in kwargs: + self._is_signed = kwargs["is_signed"] + else: + self._is_signed = True + + if 'factor' in kwargs: + self._factor = float(kwargs["factor"]) + else: + self._factor = float(1) + + if 'offset' in kwargs: + self._offset = float(kwargs["offset"]) + else: + self._offset = float(0) + + if 'min' in kwargs: + self._min = float(kwargs["min"]) + else: + self._min = float(0) + + if 'max' in kwargs: + self._max = float(kwargs["max"]) + else: + self._max = float(0) + + if 'unit' in kwargs: + self._unit = kwargs["unit"] + else: + self._unit = "" + + if 'receiver' in kwargs: + self._receiver = kwargs["receiver"] + else: + self._receiver = [] + + if 'comment' in kwargs: + self._comment = kwargs["comment"] + else: + self._comment = None + + if 'multiplex' in kwargs: + if kwargs["multiplex"] is not None and kwargs["multiplex"] != 'Multiplexor': + multiplex = int(kwargs["multiplex"]) + else: + multiplex = kwargs["multiplex"] + self._multiplex = multiplex + else: + self._multiplex = None + self._name = name - self._startbit = int(startbit) - self._signalsize = int(signalsize) - self._byteorder = int(byteorder) - # byteorder: 1: Intel, 0: Motorola - self._valuetype = valuetype - self._factor = str(factor) - self._offset = str(offset) - self._min = str(min) - self._max = str(max) - self._receiver = receiver self._attributes = {} self._values = {} - self._unit = unit - self._comment = None - if multiplex is not None and multiplex != 'Multiplexor': - multiplex = int(multiplex) - self._multiplex = multiplex + def addComment(self, comment): """ Set comment of Signal @@ -150,7 +202,7 @@ def addValues(self, value, valueName): """ self._values[int(value)] = valueName def setMsbReverseStartbit(self, msbStartBitReverse, length=None): - if self._byteorder == 1: + if self._is_little_endian == 1: #Intel self._startbit = msbStartBitReverse else: @@ -164,7 +216,7 @@ def setMsbStartbit(self, msbStartBit, length=None): set startbit while given startbit is most significant bit if length is not given, use length from object """ - if self._byteorder == 1: + if self._is_little_endian == 1: #Intel self._startbit = msbStartBit else: @@ -185,7 +237,7 @@ def setLsbStartbit(self, lsbStartBit): self._startbit = lsbStartBit def getMsbReverseStartbit(self): - if self._byteorder == 1: + if self._is_little_endian == 1: #Intel return self._startbit else: @@ -197,7 +249,7 @@ def getMsbReverseStartbit(self): return int(startBit) def getMsbStartbit(self): - if self._byteorder == 1: + if self._is_little_endian == 1: #Intel return self._startbit else: @@ -250,20 +302,42 @@ class Frame(object): _signals (list of signal-objects), _attributes (list of attributes), _receiver (list of boardunits/ECU-names), _extended (Extended Frame = 1), _comment """ - def __init__(self,bid, name, size, transmitter): - self._Id = int(bid) +# def __init__(self,bid, name, size, transmitter): + def __init__(self, name, **kwargs): self._name = name - if transmitter is not None: - self._Transmitter = [transmitter] + if 'Id' in kwargs: + self._Id = int(kwargs["Id"]) + else: + self._Id = 0 + + if 'dlc' in kwargs: + self._Size = int(kwargs["dlc"]) + else: + self._Size = 0 + + if 'transmitter' in kwargs: + self._Transmitter = [kwargs["transmitter"]] else: self._Transmitter = [] - self._Size = int(size) - self._signals = [] + + if 'extended' in kwargs: + self._extended = kwargs["extended"] + else: + self._extended = 0 + + if 'comment' in kwargs: + self._comment = kwargs["comment"] + else: + self._comment = None + + if 'signals' in kwargs: + self._signals = kwargs["signals"] + else: + self._signals = [] + self._attributes = {} self._receiver = [] self._SignalGroups = [] - self._extended = 0 - self._comment = None def addSignalGroup(self, Name, Id, signalNames): newGroup = SignalGroup(Name, Id) @@ -334,10 +408,10 @@ def calcDLC(self): """ maxBit = 0 for sig in self._signals: - if sig._byteorder == 1 and sig.getLsbStartbit() + int(sig._signalsize) > maxBit: + if sig._is_little_endian == 1 and sig.getLsbStartbit() + int(sig._signalsize) > maxBit: # check intel signal (startbit + length): maxBit = sig.getLsbStartbit() + int(sig._signalsize) - elif sig._byteorder == 0 and sig.getLsbStartbit() > maxBit: + elif sig._is_little_endian == 0 and sig.getLsbStartbit() > maxBit: #check motorola signal (starbit is least significant bit): maxBit = sig.getLsbStartbit() self._Size = max(self._Size, math.ceil(maxBit / 8)) @@ -474,8 +548,6 @@ def deleteZeroSignals(self): frame._signals.remove(signal) def recalcDLC(self, strategy): - print("recalcDLC") - print(strategy) for frame in self._fl._list: originalDlc = frame._Size if "max" == strategy: @@ -483,10 +555,10 @@ def recalcDLC(self, strategy): if "force" == strategy: maxBit = 0 for sig in frame._signals: - if sig._byteorder == 1 and sig.getLsbStartbit() + int(sig._signalsize) > maxBit: + if sig._is_little_endian == 1 and sig.getLsbStartbit() + int(sig._signalsize) > maxBit: # check intel signal (startbit + length): maxBit = sig.getLsbStartbit() + int(sig._signalsize) - elif sig._byteorder == 0 and sig.getLsbStartbit() > maxBit: + elif sig._is_little_endian == 0 and sig.getLsbStartbit() > maxBit: #check motorola signal (starbit is least significant bit): maxBit = sig.getLsbStartbit() frame._Size = math.ceil(maxBit / 8) diff --git a/canmatrix/compare.py b/canmatrix/compare.py old mode 100755 new mode 100644 index 54aec195..c4ad1936 --- a/canmatrix/compare.py +++ b/canmatrix/compare.py @@ -254,18 +254,18 @@ def compareSignal(s1,s2, ignore = None): result.addChild(compareResult("changed", "startbit", s1, [" %d" % s1._startbit, " %d" % s2._startbit])) if s1._signalsize != s2._signalsize: result.addChild(compareResult("changed", "signalsize", s1, [" %d" % s1._signalsize, " %d" % s2._signalsize])) - if s1._factor != s2._factor: + if float(s1._factor) != float(s2._factor): result.addChild(compareResult("changed", "factor", s1, [s1._factor, s2._factor])) - if s1._offset != s2._offset: + if float(s1._offset) != float(s2._offset): result.addChild(compareResult("changed", "offset", s1, [ s1._offset, s2._offset])) - if s1._min != s2._min: + if float(s1._min) != float(s2._min): result.addChild(compareResult("changed", "min", s1, [ s1._min, s2._min])) - if s1._max != s2._max: + if float(s1._max) != float(s2._max): result.addChild(compareResult("changed", "max", s1, [ s1._max, s2._max])) - if s1._byteorder != s2._byteorder: - result.addChild(compareResult("changed", "byteorder", s1, [" %d" % s1._byteorder, " %d" % s2._byteorder])) - if s1._valuetype != s2._valuetype: - result.addChild(compareResult("changed", "valuetype", s1, [" %s" % s1._valuetype, " %s" % s2._valuetype])) + if s1._is_little_endian != s2._is_little_endian: + result.addChild(compareResult("changed", "is_little_endian", s1, [" %d" % s1._is_little_endian, " %d" % s2._is_little_endian])) + if s1._is_signed != s2._is_signed: + result.addChild(compareResult("changed", "sign", s1, [" %d" % s1._is_signed, " %d" % s2._is_signed])) if s1._multiplex != s2._multiplex: result.addChild(compareResult("changed", "multiplex", s1, [str(s1._multiplex), str(s2._multiplex)])) if s1._unit != s2._unit: @@ -343,11 +343,11 @@ def main(): import canmatrix.importany as im logger.info("Importing " + matrix1 + " ... ") - db1 = im.importany(matrix1) + db1 = next(iter(im.importany(matrix1).values())) logger.info("%d Frames found" % (db1._fl._list.__len__())) logger.info("Importing " + matrix2 + " ... ") - db2 = im.importany(matrix2) + db2 = next(iter(im.importany(matrix2).values())) logger.info("%d Frames found" % (db2._fl._list.__len__())) ignore = {} diff --git a/canmatrix/convert.py b/canmatrix/convert.py old mode 100755 new mode 100644 diff --git a/canmatrix/exportarxml.py b/canmatrix/exportarxml.py old mode 100755 new mode 100644 index fb1108bc..1c47f310 --- a/canmatrix/exportarxml.py +++ b/canmatrix/exportarxml.py @@ -148,7 +148,7 @@ def exportArxml(db, filename): signalToPduMapping = etree.SubElement(signalToPduMappings,'I-SIGNAL-TO-I-PDU-MAPPING') createSubElement(signalToPduMapping, 'SHORT-NAME', signal._name) createSubElement(signalToPduMapping, 'START-POSITION', str(signal.getMsbStartbit())) - if signal._byteorder == 1: # Intel + if signal._is_little_endian == 1: # Intel createSubElement(signalToPduMapping, 'PACKING-BYTE-ORDER', 'MOST-SIGNIFICANT-BYTE-LAST') else: #Motorola createSubElement(signalToPduMapping, 'PACKING-BYTE-ORDER', 'MOST-SIGNIFICANT-BYTE-FIRST') @@ -258,8 +258,8 @@ def exportArxml(db, filename): compuScale = etree.SubElement(compuScales,'COMPU-SCALE') compuRationslCoeff = etree.SubElement(compuScale,'COMPU-RATIONAL-COEFFS') compuNumerator = etree.SubElement(compuRationslCoeff,'COMPU-NUMERATOR') - createSubElement(compuNumerator, 'V', signal._offset) - createSubElement(compuNumerator, 'V', signal._factor) + createSubElement(compuNumerator, 'V', "%g" % signal._offset) + createSubElement(compuNumerator, 'V', "%g" % signal._factor) compuDenomiator = etree.SubElement(compuRationslCoeff,'COMPU-DENOMINATOR') createSubElement(compuDenomiator, 'V', "1") diff --git a/canmatrix/exportcsv.py b/canmatrix/exportcsv.py index eef772da..c2df13ae 100644 --- a/canmatrix/exportcsv.py +++ b/canmatrix/exportcsv.py @@ -159,7 +159,7 @@ def writeSignalx(db, sig, row, rearCol): row[11] = sig._attributes["GenSigSNA"][1:-1] # eval byteorder (intel == 1 / motorola == 0) - if sig._byteorder == 1: + if sig._is_little_endian == True: row[12] = "i" else: row[12] = "m" @@ -255,7 +255,7 @@ def exportCsv(db, filename, delimiter=','): writeSignalx(db, sig, signalRow, col) if float(sig._min) != 0 or float(sig._max) != 1.0: - signalRow[col+1] = str("%s..%s" %(sig._min, sig._max)) + signalRow[col+1] = str("%g..%g" %(sig._min, sig._max)) # next row row += 1 diff --git a/canmatrix/exportdbc.py b/canmatrix/exportdbc.py index ce947989..1557543d 100644 --- a/canmatrix/exportdbc.py +++ b/canmatrix/exportdbc.py @@ -100,9 +100,13 @@ def exportDbc(db, filename, **options): startbit = signal.getMsbStartbit() - f.write((" : %d|%d@%d%c" % (startbit, signal._signalsize,signal._byteorder, signal._valuetype)).encode(dbcExportEncoding)) - f.write((" (%s,%s)" % (signal._factor, signal._offset)).encode(dbcExportEncoding)) - f.write((" [%s|%s]" % (signal._min, signal._max)).encode(dbcExportEncoding)) + if signal._is_signed: + sign = '-' + else: + sign = '+' + f.write((" : %d|%d@%d%c" % (startbit, signal._signalsize,signal._is_little_endian, sign)).encode(dbcExportEncoding)) + f.write((" (%g,%g)" % (signal._factor, signal._offset)).encode(dbcExportEncoding)) + f.write((" [%g|%g]" % (signal._min, signal._max)).encode(dbcExportEncoding)) f.write(' "'.encode(dbcExportEncoding)) f.write(signal._unit.encode(dbcExportEncoding)) diff --git a/canmatrix/exportdbf.py b/canmatrix/exportdbf.py index e0ea6896..2a94f7fe 100644 --- a/canmatrix/exportdbf.py +++ b/canmatrix/exportdbf.py @@ -73,11 +73,11 @@ def exportDbf(db, filename, **options): whichbyte = int(math.floor(signal.getLsbStartbit() / 8) +1 ) sign = 'S' - if signal._valuetype == '+': + if not signal._is_signed: sign = 'U' - outstr += "[START_SIGNALS] " + signal._name + ",%d,%d,%d,%c,%s,%s" % (signal._signalsize,whichbyte,int(signal.getLsbStartbit())%8,sign,float(signal._max)/float(signal._factor),float(signal._min)/float(signal._factor)) + outstr += "[START_SIGNALS] " + signal._name + ",%d,%d,%d,%c,%g,%g" % (signal._signalsize,whichbyte,int(signal.getLsbStartbit())%8,sign,float(signal._max)/float(signal._factor),float(signal._min)/float(signal._factor)) - outstr += ",%d,%s,%s" % (signal._byteorder, signal._offset, signal._factor) + outstr += ",%d,%s,%s" % (signal._is_little_endian, signal._offset, signal._factor) multiplex = "" if signal._multiplex is not None: if signal._multiplex == 'Multiplexor': diff --git a/canmatrix/exportjson.py b/canmatrix/exportjson.py index 5674bd64..ae9c17cf 100644 --- a/canmatrix/exportjson.py +++ b/canmatrix/exportjson.py @@ -62,8 +62,8 @@ def exportJson(db, filename, **options): "bit_length" : signal._signalsize, "factor":float(signal._factor), "offset":float(signal._offset), - "is_big_endian":signal._byteorder == 0, - "is_signed":signal._valuetype == "-" + "is_big_endian":signal._is_little_endian == 0, + "is_signed":signal._is_signed }) exportArray.append({"name" : frame._name, "id" : int(frame._Id), "is_extended_frame": frame._extended == 1,"signals": signals }) diff --git a/canmatrix/exportkcd.py b/canmatrix/exportkcd.py index 186bdd9c..9c00f61a 100644 --- a/canmatrix/exportkcd.py +++ b/canmatrix/exportkcd.py @@ -34,7 +34,7 @@ def createSignal(signal, nodeList): sig = etree.Element('Signal', name=signal._name, offset=str(signal.getLsbStartbit())) if signal._signalsize > 1: sig.set("length", str(signal._signalsize)) - if signal._byteorder == 0: + if signal._is_little_endian == 0: sig.set('endianess',"little") notes = etree.Element('Notes') @@ -43,14 +43,19 @@ def createSignal(signal, nodeList): sig.append(notes) value = etree.Element('Value') + if signal._is_signed: + value.set('type',"signed") + else: + value.set('type',"unsigned") + if float(signal._factor) != 1: - value.set('slope',str(signal._factor)) + value.set('slope',str("%g" % signal._factor)) if float(signal._offset) != 0: - value.set('intercept',str(signal._offset)) + value.set('intercept',str("%g" % signal._offset)) if float(signal._min) != 0: - value.set('min',str(signal._min)) + value.set('min',str("%g" % signal._min)) if float(signal._max) != 1: - value.set('max',str(signal._max)) + value.set('max',str("%g" % signal._max)) if len(signal._unit) > 0: value.set('unit',signal._unit) sig.append(value) @@ -142,9 +147,9 @@ def exportKcd(db, filename): multiplexor = etree.Element('Multiplex', name=signal._name, offset=str(signal.getLsbStartbit()), length=str(int(signal._signalsize))) value = etree.Element('Value') if float(signal._min) != 0: - value.set('min',str(signal._min)) + value.set('min', "%g" % signal._min) if float(signal._max) != 1: - value.set('max',str(signal._max)) + value.set('max', "%g" % signal._max) multiplexor.append(value) labelset = etree.Element('LabelSet') for valueVal,valName in sorted(signal._values.items(), key=lambda x: int(x[0])): diff --git a/canmatrix/exportsym.py b/canmatrix/exportsym.py index f7ca148e..352e1834 100644 --- a/canmatrix/exportsym.py +++ b/canmatrix/exportsym.py @@ -38,11 +38,11 @@ def createSignal(signal): global enumDict output = "" output += "Var=%s " % (signal._name) - if signal._valuetype == '+': + if not signal._is_signed: output += "unsigned " else: output += "signed " - if signal._byteorder == 0: + if signal._is_little_endian == 0: #Motorola startBit = signal.getMsbReverseStartbit() output += "%d,%d -m " % (startBit, signal._signalsize) @@ -144,7 +144,7 @@ def exportSym(db, filename, **options): muxName = muxSignal._name + "%d" % i muxOut += "Mux=" + muxName - if signal._byteorder == 0: + if signal._is_little_endian == 0: #Motorola startBit = muxSignal.getMsbReverseStartbit() muxOut += " %d,%d %d -m" % (startBit, muxSignal._signalsize, i) diff --git a/canmatrix/exportxls.py b/canmatrix/exportxls.py index 90ac9db7..f278f29c 100644 --- a/canmatrix/exportxls.py +++ b/canmatrix/exportxls.py @@ -159,8 +159,8 @@ def writeSignal(db, sig, worksheet, row, mystyle, rearCol, motorolaBitFormat): else: worksheet.write(row, 11, label = " ", style=mystyle) - # eval byteorder (intel == 1 / motorola == 0) - if sig._byteorder == 1: + # eval byteorder (little_endian: intel == True / motorola == 0) + if sig._is_little_endian: worksheet.write(row, 12, label = "i", style=mystyle) else: worksheet.write(row, 12, label = "m", style=mystyle) @@ -177,7 +177,7 @@ def writeSignal(db, sig, worksheet, row, mystyle, rearCol, motorolaBitFormat): else: # factor not 1.0 ? if float(sig._factor) != 1: - worksheet.write(row, rearCol+2, label = float(sig._factor), style=mystyle) + worksheet.write(row, rearCol+2, label = "%g" % float(sig._factor), style=mystyle) #factor == 1.0 else: worksheet.write(row, rearCol+2, label = "", style=mystyle) @@ -332,7 +332,7 @@ def exportXls(db, filename, **options): writeSignal(db, sig, worksheet, row, sigstyle, col, motorolaBitFormat) if float(sig._min) != 0 or float(sig._max) != 1.0: - worksheet.write(row, col+1, label = str("%s..%s" %(sig._min, sig._max)), style=sigstyle) + worksheet.write(row, col+1, label = str("%g..%g" %(sig._min, sig._max)), style=sigstyle) else: worksheet.write(row, col+1, label = "", style=sigstyle) diff --git a/canmatrix/exportxlsx.py b/canmatrix/exportxlsx.py index b12694ca..942175bf 100644 --- a/canmatrix/exportxlsx.py +++ b/canmatrix/exportxlsx.py @@ -158,8 +158,8 @@ def writeSignalx(db, sig, worksheet, row, rearCol, mystyle, motorolaBitFormat): else: worksheet.write(row, 11, " ", mystyle) - # eval byteorder (intel == 1 / motorola == 0) - if sig._byteorder == 1: + # eval byteorder (intel == True / motorola == False) + if sig._is_little_endian: worksheet.write(row, 12, "i", mystyle) else: worksheet.write(row, 12, "m", mystyle) @@ -176,7 +176,7 @@ def writeSignalx(db, sig, worksheet, row, rearCol, mystyle, motorolaBitFormat): else: # factor not 1.0 ? if float(sig._factor) != 1: - worksheet.write(row, rearCol+2, float(sig._factor), mystyle) + worksheet.write(row, rearCol+2, "%g" % float(sig._factor), mystyle) #factor == 1.0 else: worksheet.write(row, rearCol+2, "", mystyle) @@ -353,7 +353,7 @@ def exportXlsx(db, filename, **options): writeSignalx(db, sig, worksheet, row, col, sigstyle, motorolaBitFormat) if float(sig._min) != 0 or float(sig._max) != 1.0: - worksheet.write(row, col+1, str("%s..%s" %(sig._min, sig._max)), sigstyle) + worksheet.write(row, col+1, str("%g..%g" %(sig._min, sig._max)), sigstyle) else: worksheet.write(row, col+1, "", sigstyle) diff --git a/canmatrix/importarxml.py b/canmatrix/importarxml.py index aea8b84a..f555ac93 100644 --- a/canmatrix/importarxml.py +++ b/canmatrix/importarxml.py @@ -144,10 +144,10 @@ def getSignals(signalarray, Bo, arDict, ns, multiplexId): # value hinzufuegen if const is None: logger.warn("unknown Compu-Method: " + compmethod.get('UUID')) - byteorder = 0 + is_little_endian = False if motorolla.text == 'MOST-SIGNIFICANT-BYTE-LAST': - byteorder = 1 - valuetype = '+' # unsigned + is_little_endian = True + is_signed = False # unsigned if name == None: logger.debug('no name for signal given') if startBit == None: @@ -156,8 +156,20 @@ def getSignals(signalarray, Bo, arDict, ns, multiplexId): logger.debug('no length for signal given') if startBit is not None: - newSig = Signal(name.text, startBit.text, length.text, byteorder, valuetype, factor, offset, Min, Max, Unit, receiver, multiplexId) - if newSig._byteorder == 0: + newSig = Signal(name.text, + startBit = startBit.text, + signalSize = length.text, + is_little_endian=is_little_endian, + is_signed = is_signed, + factor=factor, + offset=offset, + min=Min, + max=Max, + unit=Unit, + receiver=receiver, + multiplex=multiplexId) + + if newSig._is_little_endian == 0: # startbit of motorola coded signals are MSB in arxml newSig.setMsbStartbit(int(startBit.text)) @@ -199,7 +211,10 @@ def getFrame(frameTriggering, arDict, multiplexTranslation, ns): pdumappings = arGetChild(frameR, "PDU-TO-FRAME-MAPPINGS", arDict, ns) pdumapping = arGetChild(pdumappings, "PDU-TO-FRAME-MAPPING", arDict, ns) pdu = arGetChild(pdumapping, "PDU", arDict, ns) # SIGNAL-I-PDU - newBo = Frame(idNum, arGetName(frameR, ns), int(dlc.text), None) +# newBo = Frame(idNum, arGetName(frameR, ns), int(dlc.text), None) + newBo = Frame(arGetName(frameR, ns), + Id=idNum, + dlc=int(dlc.text)) else: # without frameinfo take short-name of frametriggering and dlc = 8 logger.debug("Frame %s has no FRAME-REF" % (sn)) @@ -207,7 +222,10 @@ def getFrame(frameTriggering, arDict, multiplexTranslation, ns): ipduTriggering = arGetChild(ipduTriggeringRefs, "I-PDU-TRIGGERING", arDict, ns) pdu = arGetChild(ipduTriggering, "I-PDU", arDict, ns) dlc = arGetChild(pdu, "LENGTH", arDict, ns) - newBo = Frame(idNum, sn.text, int(int(dlc.text)/8), None) +# newBo = Frame(idNum, sn.text, int(int(dlc.text)/8), None) + newBo = Frame(sn.text, + Id=idNum, + dlc=int(dlc.text)/8) if pdu == None: logger.error("ERROR: pdu") @@ -219,11 +237,16 @@ def getFrame(frameTriggering, arDict, multiplexTranslation, ns): selectorByteOrder = arGetChild(pdu, "SELECTOR-FIELD-BYTE-ORDER", arDict, ns) selectorLen = arGetChild(pdu, "SELECTOR-FIELD-LENGTH", arDict, ns) selectorStart = arGetChild(pdu, "SELECTOR-FIELD-START-POSITION", arDict, ns) - byteorder = 0 + is_little_endian = False if selectorByteOrder.text == 'MOST-SIGNIFICANT-BYTE-LAST': - byteorder = 1 - valuetype = '+' # unsigned - multiplexor = Signal("Multiplexor", selectorStart.text, selectorLen.text, byteorder, valuetype, 1, 0, 0, 1, "", [], "Multiplexor") + is_little_endian = True + is_signed = False # unsigned + multiplexor = Signal("Multiplexor", + startBit = selectorStart.text, + signalSize = selectorLen.text, + is_little_endian=is_little_endian, + multiplex="Multiplexor") + multiplexor._initValue = 0 newBo.addSignal(multiplexor) staticPart = arGetChild(pdu, "STATIC-PART", arDict, ns) @@ -516,7 +539,7 @@ def importArxml(filename, **options): frame = [0, 0, 0, 0, 0, 0, 0, 0] for sig in bo._signals: if sig._initValue != 0: - putSignalValueInFrame(sig.getLsbStartbit(), sig._signalsize, sig._byteorder, sig._initValue, frame) + putSignalValueInFrame(sig.getLsbStartbit(), sig._signalsize, sig._is_little_endian, sig._initValue, frame) hexStr = '"' for i in range(bo._Size): hexStr += "%02X" % frame[i] diff --git a/canmatrix/importdbc.py b/canmatrix/importdbc.py index 4a5ded22..7a4af507 100644 --- a/canmatrix/importdbc.py +++ b/canmatrix/importdbc.py @@ -98,7 +98,11 @@ class FollowUps(object): if decoded.startswith("BO_ "): regexp = re.compile("^BO\_ (\w+) (\w+) *: (\w+) (\w+)") temp = regexp.match(decoded) - db._fl.addFrame(Frame(temp.group(1), temp.group(2), temp.group(3), temp.group(4))) +# db._fl.addFrame(Frame(temp.group(1), temp.group(2), temp.group(3), temp.group(4))) + db._fl.addFrame(Frame(temp.group(2), + Id=temp.group(1), + dlc=temp.group(3), + transmitter=temp.group(4))) elif decoded.startswith("SG_ "): pattern = "^SG\_ (\w+) : (\d+)\|(\d+)@(\d+)([\+|\-]) \(([0-9.+\-eE]+),([0-9.+\-eE]+)\) \[([0-9.+\-eE]+)\|([0-9.+\-eE]+)\] \"(.*)\" (.*)" regexp = re.compile(pattern) @@ -107,8 +111,19 @@ class FollowUps(object): temp_raw = regexp_raw.match(l) if temp: receiver = list(map(str.strip, temp.group(11).split(','))) - tempSig = Signal(temp.group(1), temp.group(2), temp.group(3), temp.group(4), temp.group(5), temp.group(6), temp.group(7),temp.group(8),temp.group(9),temp_raw.group(10).decode(dbcImportEncoding),receiver) - if tempSig._byteorder == 0: + + tempSig = Signal(temp.group(1), + startBit=temp.group(2), + signalSize=temp.group(3), + is_little_endian=(int(temp.group(4))==1), + is_signed = (temp.group(5)=='-'), + factor=temp.group(6), + offset=temp.group(7), + min=temp.group(8), + max=temp.group(9), + unit=temp_raw.group(10).decode(dbcImportEncoding), + receiver=receiver) + if not tempSig._is_little_endian: # startbit of motorola coded signals are MSB in dbc tempSig.setMsbStartbit(int(temp.group(2))) db._fl.addSignalToLastFrame(tempSig) @@ -124,8 +139,23 @@ class FollowUps(object): multiplex = 'Multiplexor' else: multiplex = int(multiplex[1:]) - - db._fl.addSignalToLastFrame(Signal(temp.group(1), temp.group(3), temp.group(4), temp.group(5), temp.group(6), temp.group(7),temp.group(8),temp.group(9),temp.group(10),temp_raw.group(11).decode(dbcImportEncoding),receiver, multiplex)) + tempSig = Signal(temp.group(1), + startBit = temp.group(3), + signalSize = temp.group(4), + is_little_endian=(int(temp.group(5))==1), + is_signed = (temp.group(6)=='-'), + factor=temp.group(7), + offset=temp.group(8), + min=temp.group(9), + max=temp.group(10), + unit=temp_raw.group(11).decode(dbcImportEncoding), + receiver=receiver, + multiplex=multiplex) + if not tempSig._is_little_endian: + # startbit of motorola coded signals are MSB in dbc + tempSig.setMsbStartbit(int(temp.group(3))) + + db._fl.addSignalToLastFrame(tempSig) elif decoded.startswith("BO_TX_BU_ "): diff --git a/canmatrix/importdbf.py b/canmatrix/importdbf.py index 65bd1bbb..dd1dd7ad 100644 --- a/canmatrix/importdbf.py +++ b/canmatrix/importdbf.py @@ -199,7 +199,12 @@ def importDbf(filename, **options): transmitter = temparray[6] else: transmitter = None - newBo = db._fl.addFrame(Frame(int(Id), name, size, transmitter)) + newBo = db._fl.addFrame( + Frame(name, + Id=int(Id), + dlc=size, + transmitter=transmitter)) + # Frame(int(Id), name, size, transmitter)) if extended == 'X': logger.debug ("Extended") newBo._extended = 1 @@ -228,11 +233,26 @@ def importDbf(filename, **options): else: multiplex = None - sign = '+' + if sign == "U": + is_signed = False + else: + is_signed = True startbit = int (startbit) startbit += (int(startbyte)-1)*8 - newSig = newBo.addSignal(Signal(name, startbit, size, byteorder, sign, factor, offset, float(Min)*float(factor), float(Max)*float(factor), unit, receiver, multiplex)) + newSig = newBo.addSignal(Signal(name, + startBit = startbit, + signalSize = size, + is_little_endian=(int(byteorder)==1), + is_signed = is_signed, + factor=factor, + offset=offset, + min=float(Min)*float(factor), + max=float(Max)*float(factor), + unit=unit, + receiver=receiver, + multiplex=multiplex)) + if int(byteorder) == 0: # this is dummy here, because internal lsb is default - for now newSig.setLsbStartbit(startbit) diff --git a/canmatrix/importjson.py b/canmatrix/importjson.py index de6538ee..45d37551 100644 --- a/canmatrix/importjson.py +++ b/canmatrix/importjson.py @@ -38,7 +38,11 @@ def importJson(filename, **options): if "messages" in jsonData: for frame in jsonData["messages"]: - newframe = Frame(frame["id"],frame["name"],8,None) +# newframe = Frame(frame["id"],frame["name"],8,None) + newframe = Frame(frame["name"], + Id=frame["id"], + dlc=8) + if "is_extended_frame" in frame and frame["is_extended_frame"]: newframe._extended = 1 else: @@ -47,15 +51,21 @@ def importJson(filename, **options): for signal in frame["signals"]: if signal["is_big_endian"]: - byteorder = 0 + is_little_endian = False else: - byteorder = 1 + is_little_endian = True if signal["is_signed"]: - valuetype = '-' + is_signed = True else: - valuetype = '+' - newsignal = Signal(signal["name"], signal["start_bit"], signal["bit_length"], - byteorder, valuetype, signal["factor"], signal["offset"],0,0,"",[]) + is_signed = False + newsignal = Signal(signal["name"], + startBit=signal["start_bit"], + signalSize=signal["bit_length"], + is_little_endian=is_little_endian, + is_signed = is_signed, + factor=signal["factor"], + offset=signal["offset"]) + newframe.addSignal(newsignal) db._fl.addFrame(newframe) f.close() diff --git a/canmatrix/importkcd.py b/canmatrix/importkcd.py index d2269ee2..250600a2 100644 --- a/canmatrix/importkcd.py +++ b/canmatrix/importkcd.py @@ -44,19 +44,26 @@ def parseSignal(signal, mux, namespace, nodelist): signalsize = signal.get('length') - byteorder = 1 + is_little_endian = True if 'endianess' in signal.attrib: if signal.get('endianess') == 'little': - byteorder = 0 + is_little_endian = False unit = "" offset = 0 factor = 1 min = 0 max = 1 + is_signed = False values = signal.find('./' + namespace + 'Value') if values is not None: + if 'type' in values.attrib: + valuetype = values.get('type') + if valuetype == "unsigned": + is_signed = False + else: + is_signed = True if 'slope' in values.attrib: factor = values.get('slope') if 'intercept' in values.attrib: @@ -76,8 +83,18 @@ def parseSignal(signal, mux, namespace, nodelist): receiver.append(nodelist[noderef.get('id')]) - valuetype = '+' - newSig = Signal(signal.get('name'), startbit, signalsize, byteorder, valuetype, factor, offset, min, max, unit, receiver, mux) + newSig = Signal(signal.get('name'), + startBit = startbit, + signalSize = signalsize, + is_little_endian=is_little_endian, + is_signed = is_signed, + factor=factor, + offset=offset, + min=min, + max=max, + unit=unit, + receiver=receiver, + multiplex=mux) notes = signal.findall('./' + namespace + 'Notes') comment = "" @@ -117,7 +134,9 @@ def importKcd(filename): for message in messages: dlc = None - newBo = Frame(int(message.get('id'), 16), message.get('name'), 1, None) + #newBo = Frame(int(message.get('id'), 16), message.get('name'), 1, None) + newBo = Frame(message.get('name'), Id=int(message.get('id'), 16)) + if 'triggered' in message.attrib: newBo.addAttribute("GenMsgCycleTime", message.get('interval')) @@ -142,7 +161,7 @@ def importKcd(filename): signalsize = multiplex.get('length') - byteorder = 1 + is_little_endian = True min = 0 max = 1 @@ -156,7 +175,7 @@ def importKcd(filename): unit = "" offset = 0 factor = 1 - valuetype = '+' + is_signed = False receiver = "" consumers = multiplex.findall('./' + namespace + 'Consumer') @@ -165,9 +184,21 @@ def importKcd(filename): for noderef in noderefs: receiver += nodelist[noderef.get('id')] + ' ' - newSig = Signal(multiplex.get('name'), startbit, signalsize, byteorder, valuetype, factor, offset, min, max, unit, receiver, 'Multiplexor') - if byteorder == 0: - #motorola set/convert startbit + newSig = Signal(multiplex.get('name'), + startBit = startbit, + signalSize = signalsize, + is_little_endian=is_little_endian, + is_signed = is_signed, + factor=factor, + offset=offset, + min=min, + max=max, + unit=unit, + receiver=receiver, + multiplex='Multiplexor') + + if is_little_endian == False: + #motorola/big_endian set/convert startbit newSig.setLsbStartbit(startbit) notes = multiplex.findall('./' + namespace + 'Notes') comment = "" @@ -216,6 +247,9 @@ def importKcd(filename): if dlc is None: newBo.calcDLC() + else: + newBo._Size = dlc + newBo.updateReceiver() db._fl.addFrame(newBo) diff --git a/canmatrix/importsym.py b/canmatrix/importsym.py old mode 100755 new mode 100644 index 187a4cf0..1a85e3ca --- a/canmatrix/importsym.py +++ b/canmatrix/importsym.py @@ -111,7 +111,7 @@ class Mode(object): frame.signalByName(frame._name + "_MUX")._values = multiplexValTable db._fl.addFrame(frame) - frame = Frame(0,frameName,8,None) + frame = Frame(frameName) multiplexValTable = {} #key value: @@ -130,9 +130,9 @@ class Mode(object): tempArray = shlex.split(line.strip()) sigName = tempArray[0] if indexOffset == 1 and tempArray[1][:8] == "unsigned": - valuetype = "+" + is_signed = False else: - valuetype = "-" + is_signed = True startBit = int(tempArray[indexOffset+1].split(',')[0]) signalLength = int(tempArray[indexOffset+1].split(',')[1]) @@ -191,21 +191,45 @@ class Mode(object): if tmpMux == "Mux": signal = frame.signalByName(frameName + "_MUX") if signal == None: - signal = Signal(frameName + "_MUX", startBit, signalLength, intel, valuetype, factor, offset, min, max, unit, "", 'Multiplexor') - signal.addComment(comment) + signal = Signal(frameName + "_MUX", + startBit = startBit, + signalSize = signalLength, + is_little_endian=intel, + is_signed = is_signed, + factor=factor, + offset=offset, + min=min, + max=max, + unit=unit, + multiplex='Multiplexor', + comment=comment) +# signal.addComment(comment) if intel == 0: #motorola set/convert startbit signal.setMsbReverseStartbit(startBit) frame.addSignal(signal) else: - signal = Signal(sigName, startBit, signalLength, intel, valuetype, factor, offset, min, max, unit, "", multiplexor) + # signal = Signal(sigName, startBit, signalLength, intel, is_signed, factor, offset, min, max, unit, "", multiplexor) + signal = Signal(sigName, + startBit = startBit, + signalSize = signalLength, + is_little_endian=intel, + is_signed = is_signed, + factor=factor, + offset=offset, + min=min, + max=max, + unit=unit, + multiplex=multiplexor, + comment=comment) +# if intel == 0: #motorola set/convert startbit signal.setMsbReverseStartbit(startBit) if valueTableName is not None: signal._values = valueTables[valueTableName] - signal.addComment(comment) + # signal.addComment(comment) signal.addAttribute("GenSigStartValue", str(startValue)) frame.addSignal(signal) if longName is not None: diff --git a/canmatrix/importxls.py b/canmatrix/importxls.py index 5dcc5a78..559aa943 100644 --- a/canmatrix/importxls.py +++ b/canmatrix/importxls.py @@ -130,7 +130,8 @@ def importXls(filename, **options): launchParam = 0.0 launchParam = str(int(launchParam)) - newBo = Frame(int(frameId[:-1], 16), frameName, dlc, None) +# newBo = Frame(int(frameId[:-1], 16), frameName, dlc, None) + newBo = Frame(frameName, Id=int(frameId[:-1], 16), dlc=dlc) db._fl.addFrame(newBo) #eval launctype @@ -184,13 +185,13 @@ def importXls(filename, **options): signalByteorder = sh.cell(rownum,index['byteorder']).value if 'i' in signalByteorder: - byteorder = 1 + is_little_endian = True else: - byteorder = 0 + is_little_endian = False else: - byteorder = 1 # Default Intel + is_little_endian = True # Default Intel - valuetype = '+' + is_signed = False if signalName != "-": for x in range(index['BUstart'],index['BUend']): @@ -198,11 +199,17 @@ def importXls(filename, **options): newBo.addTransmitter(sh.cell(0,x).value.strip()) if 'r' in sh.cell(rownum,x).value: receiver.append(sh.cell(0,x).value.strip()) - if signalLength > 8: - newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, byteorder, valuetype, 1, 0, 0, 1, "", receiver, multiplex) - else: - newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, byteorder, valuetype, 1, 0, 0, 1, "", receiver, multiplex) - if byteorder == 0: +# if signalLength > 8: + newSig = Signal(signalName, + startBit = (startbyte-1)*8+startbit, + signalSize = signalLength, + is_little_endian = is_little_endian, + is_signed = is_signed, + receiver=receiver, + multiplex=multiplex) +# else: +# newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, is_little_endian, is_signed, 1, 0, 0, 1, "", receiver, multiplex) + if not is_little_endian: #motorola if motorolaBitFormat == "msb": newSig.setMsbStartbit((startbyte-1)*8+startbit) @@ -248,13 +255,13 @@ def importXls(filename, **options): (mini, maxi) = test.strip().split("..",2) unit = "" try: - newSig._offset = mini - newSig._min = str(mini) - newSig._max = str(maxi) + newSig._offset = float(mini) + newSig._min = float(mini) + newSig._max = float(maxi) except: - newSig._offset = "0" - newSig._min = "0" - newSig._max = "1" + newSig._offset = 0 + newSig._min = 0 + newSig._max = 1 elif valueName.__len__() > 0: @@ -262,11 +269,11 @@ def importXls(filename, **options): value = int(float(value)) newSig.addValues(value, valueName) maxi = pow(2,signalLength)-1 - newSig._max = maxi + newSig._max = float(maxi) else: - newSig._offset = "0" - newSig._min = "0" - newSig._max = "1" + newSig._offset = 0 + newSig._min = 0 + newSig._max = 1 for frame in db._fl._list: diff --git a/canmatrix/importxlsx.py b/canmatrix/importxlsx.py index 525d9051..09d59433 100644 --- a/canmatrix/importxlsx.py +++ b/canmatrix/importxlsx.py @@ -206,7 +206,9 @@ def importXlsx(filename, **options): launchParam = 0.0 launchParam = str(int(launchParam)) - newBo = Frame(int(frameId[:-1], 16), frameName, dlc, None) +# newBo = Frame(int(frameId[:-1], 16), frameName, dlc, None) + newBo = Frame(frameName, Id=int(frameId[:-1], 16), dlc=dlc) + db._fl.addFrame(newBo) #eval launchtype @@ -259,13 +261,13 @@ def importXlsx(filename, **options): signalByteorder = getIfPossible(row,'Byteorder') if signalByteorder is not None: if 'i' in signalByteorder: - byteorder = 1 + is_little_endian = True else: - byteorder = 0 + is_little_endian = False else: - byteorder = 1 # Default Intel + is_little_endian = True # Default Intel - valuetype = '+' + is_signed = False if signalName != "-": for x in range(_BUstart,_BUend): @@ -276,11 +278,19 @@ def importXlsx(filename, **options): newBo.addTransmitter(buName) if 'r' in buSenderReceiver: receiver.append(buName) - if signalLength > 8: - newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, byteorder, valuetype, 1, 0, 0, 1, "", receiver, multiplex) - else: - newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, byteorder, valuetype, 1, 0, 0, 1, "", receiver, multiplex) - if byteorder == 0: +# if signalLength > 8: +# newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, is_little_endian, is_signed, 1, 0, 0, 1, "", receiver, multiplex) + newSig = Signal(signalName, + startBit = (startbyte-1)*8+startbit, + signalSize = signalLength, + is_little_endian = is_little_endian, + is_signed = is_signed, + receiver=receiver, + multiplex=multiplex) + +# else: +# newSig = Signal(signalName, (startbyte-1)*8+startbit, signalLength, is_little_endian, is_signed, 1, 0, 0, 1, "", receiver, multiplex) + if is_little_endian == False: #motorola if motorolaBitFormat == "msb": newSig.setMsbStartbit((startbyte-1)*8+startbit) @@ -324,13 +334,13 @@ def importXlsx(filename, **options): (mini, maxi) = test.strip().split("..",2) unit = "" try: - newSig._offset = mini - newSig._min = str(mini) - newSig._max = str(maxi) + newSig._offset = float(mini) + newSig._min = float(mini) + newSig._max = float(maxi) except: - newSig._offset = "0" - newSig._min = "0" - newSig._max = "1" + newSig._offset = 0 + newSig._min = 0 + newSig._max = 1 elif valueName.__len__() > 0: @@ -338,11 +348,11 @@ def importXlsx(filename, **options): value = int(float(value)) newSig.addValues(value, valueName) maxi = pow(2,signalLength)-1 - newSig._max = maxi + newSig._max = float(maxi) else: - newSig._offset = "0" - newSig._min = "0" - newSig._max = "1" + newSig._offset = 0 + newSig._min = 0 + newSig._max = 1 # dlc-estimation / dlc is not in xls, thus calculate a minimum-dlc: for frame in db._fl._list: diff --git a/examples/BusmasterRestbus.py b/examples/BusmasterRestbus.py index 4e7aa5a0..ebd6facb 100755 --- a/examples/BusmasterRestbus.py +++ b/examples/BusmasterRestbus.py @@ -1,18 +1,4 @@ -#!/usr/bin/env python -#import re -#from BitVector import BitVector -from __future__ import division -from builtins import * -import math -from struct import * -import canmatrix.importany as im -import zipfile -import sys -import os - -import glob -import string - +#!/usr/bin/env python2 #Copyright (c) 2013, Eduard Broecker #All rights reserved. # @@ -33,9 +19,24 @@ #OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH #DAMAGE. -def genString(str): - retStr = "%c" % len(str) - retStr += str +from __future__ import division +from builtins import * +import math +from struct import * +import zipfile +import sys +sys.path.append('..') +import canmatrix.importany as im + +import os + +import glob +import string + + +def genString(string): + retStr = "%c" % len(string) + retStr += string return retStr def genZeros(count): @@ -57,8 +58,8 @@ def genSimulatonFile(nodes): #each node for (nodename,source) in list(nodes.items()): - retStr += genString(source) - retStr += genString(nodename) + retStr += genString(source).encode('ascii') + retStr += genString(nodename).encode('ascii') retStr += genZeros(10) #checksum @@ -201,7 +202,8 @@ def main(): infile = sys.argv[1] outfile = os.path.splitext(sys.argv[2])[0] - db = im.importany(infile) + + db = next(iter(im.importany(infile).values())) tickerBoardUnits(db, outfile) main() diff --git a/examples/createCMacros.py b/examples/createCMacros.py index cacf34d1..63269dba 100755 --- a/examples/createCMacros.py +++ b/examples/createCMacros.py @@ -6,7 +6,7 @@ def createDecodeMacro(signal, prefix="", macrosource="source", source="source"): startBit = signal._startbit - byteOrder = signal._byteorder + byteOrder = signal._is_little_endian length = signal._signalsize mask = ((0xffffffffffffffff)>> (64-length)) @@ -17,7 +17,7 @@ def createDecodeMacro(signal, prefix="", macrosource="source", source="source"): code = "#define getSignal%s%s(%s) ((((%s[%d])>>%d" % (prefix, signal._name, macrosource, source, startByte, startBitInByte) currentTargetLength = (8-startBitInByte) - if byteOrder == 1: + if byteOrder: endByte = int((startBit+length) / 8) if (startBit+length) % 8 == 0: endByte -= 1 @@ -34,7 +34,7 @@ def createDecodeMacro(signal, prefix="", macrosource="source", source="source"): code += ")&0x%X)" % (mask) - if signal._valuetype != '+': + if signal._is_signed: msb_sign_mask = 1 << (length - 1); code += "^0x%x)-0x%x " % (msb_sign_mask,msb_sign_mask); else: diff --git a/examples/exampleMerge.py b/examples/exampleMerge.py index ac756d01..0ba2d370 100755 --- a/examples/exampleMerge.py +++ b/examples/exampleMerge.py @@ -1,6 +1,9 @@ #!/usr/bin/env python3 -# importany laed alle verfuegbaren importfilter +import sys +sys.path.append('..') + +# importany loads all import filter from canmatrix.copy import * import canmatrix.importany as im import canmatrix.exportall as ex @@ -12,9 +15,9 @@ # # import of one CAN-Matrix (*.dbc, *.dbf, *.kcd, *.arxml) -db1 = im.importany("first.dbc") +db1 = next(iter(im.importany("first.dbc").values())) # import of a second CAN-Matrix (*.dbc, *.dbf, *.kcd, *.arxml) -db2 = im.importany("second.dbc") +db2 = next(iter(im.importany("second.dbc").values())) # # create target Matrix diff --git a/test/createTestMatrix.py b/test/createTestMatrix.py index 9ff81a61..34c0263e 100755 --- a/test/createTestMatrix.py +++ b/test/createTestMatrix.py @@ -16,10 +16,31 @@ db._BUs.add(BoardUnit("testBU")) db._BUs.add(BoardUnit("recBU")) -myFrame = Frame(0x123, "testFrame1", 8, "testBU" ) +myFrame = Frame("testFrame1",Id = 0x123, dlc=8, transmitter = "testBU" ) + +mySignal = Signal("someTestSignal", + startBit = 9, + signalSize = 11, + is_little_endian=False, + is_signed = False, + factor=5.0, + offset=1.0, + min=0, + max=500, + unit="specialCharUnitĀ°$".decode("utf-8"), + receiver=["recBU"]) +mySignal2 = Signal("Signal", + startBit = 20, + signalSize = 3, + is_little_endian=True, + is_signed = False, + factor=1.0, + offset=0.0, + min=0, + max=6, + unit="someUnit", + receiver=["recBU"]) -mySignal = Signal("someTestSignal", 9, 11, 0, "+", 5.0, 1.0, 0, 500, "specialCharUnitĀ°$".decode("utf-8"), ["recBU"]) -mySignal2 = Signal("Signal", 20, 3, 1, "+", 1.0, 0.0, 0, 6, "someUnit", ["recBU"]) mySignal2.addValues(1, "one") mySignal2.addValues(2, "two") mySignal2.addValues(3, "three") @@ -30,7 +51,7 @@ myFrame.addSignal(mySignal) myFrame.addSignal(mySignal2) -myFrame2 = Frame(0x12, "extendedFrame", 8, "testBU" ) +myFrame2 = Frame("extendedFrame", Id = 0x12, dlc = 8, transmitter = "testBU" ) myFrame2._extended = 1 db._fl.addFrame(myFrame) @@ -51,5 +72,5 @@ # export the new (target)-Matrix for example as .dbc: # -ex.exportDbc(db, "test.dbc", 'iso-8859-1', 'iso-8859-1') +ex.exportDbc(db, "test.dbc", dbcExportEncoding='iso-8859-1', dbcExportCommentEncoding='iso-8859-1') diff --git a/test/reference/from_arxml/CAN_test.dbc b/test/reference/from_arxml/CAN_test.dbc index 5482abd5..af3896d2 100644 --- a/test/reference/from_arxml/CAN_test.dbc +++ b/test/reference/from_arxml/CAN_test.dbc @@ -9,213 +9,213 @@ BU_: BO_ 2164239169 FRAME_CommandModeControl: 8 Vector__XXX - SG_ Enable_command : 1|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FaultClear_command : 3|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ InvertHwEnable_command : 57|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableUPSMode_command : 59|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableSplitPhase_command : 61|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayMX1_command : 33|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayMX2_command : 35|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayK1_Precharge_command : 37|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayRelayK2_DCRun_comand : 39|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PhaseRotation_command : 63|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MasterFollowerMode_command : 17|2@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ Enable_command : 1|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ FaultClear_command : 3|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ InvertHwEnable_command : 57|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableUPSMode_command : 59|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableSplitPhase_command : 61|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayMX1_command : 33|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayMX2_command : 35|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayK1_Precharge_command : 37|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayRelayK2_DCRun_comand : 39|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PhaseRotation_command : 63|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MasterFollowerMode_command : 17|2@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365566017 FRAME_CommandPower: 8 Vector__XXX - SG_ RealPower_command : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_command : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_command : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_command : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365566529 FRAME_CommandVF: 8 Vector__XXX - SG_ Voltage_command : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ Frequency_command : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX + SG_ Voltage_command : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ Frequency_command : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX BO_ 2365573878 FRAME_MasterMeasuredPower: 8 Vector__XXX - SG_ RealPower_measured : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_measured : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_measured : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_measured : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365566785 FRAME_CommandFactoryControl: 8 Vector__XXX - SG_ WriteSerialNumber : 1|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ SerialNumber : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FactoryAccess : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ WriteSerialNumber : 1|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ SerialNumber : 39|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ FactoryAccess : 23|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365565505 FRAME_CommandSetNVParam: 8 Vector__XXX - SG_ CommandSetNVParam_MUX : 7|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ Dummy : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ VUnder50pct : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ V50to88pct : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ V110to120pct : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ VOver120 : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FreqHi : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqLo : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqVeryLo : 55|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqVeryLo : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqLo : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqHi : 55|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ NodeID : 23|8@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ SA_Mask : 31|8@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ Baudrate : 39|4@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ThermalOverload : 17|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX1Open : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX1Close : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX2Open : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX2Close : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K1Open : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K1Close : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K2Open : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K2Close : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ CommandSetNVParam_MUX : 7|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ Dummy : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ VUnder50pct : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ V50to88pct : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ V110to120pct : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ VOver120 : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ FreqHi : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqLo : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqVeryLo : 55|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqVeryLo : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqLo : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqHi : 55|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ NodeID : 23|8@0+ (1,0) [0|1] "" Vector__XXX + SG_ SA_Mask : 31|8@0+ (1,0) [0|1] "" Vector__XXX + SG_ Baudrate : 39|4@0+ (1,0) [0|1] "" Vector__XXX + SG_ ThermalOverload : 17|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX1Open : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX1Close : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX2Open : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX2Close : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ K1Open : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ K1Close : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ K2Open : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ K2Close : 39|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2164235073 FRAME_CommandModeControlAPU2: 8 Vector__XXX - SG_ Enable_command : 1|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FaultClear_command : 3|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ InvertHwEnable_command : 57|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableUPSMode_command : 59|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableSplitPhase_command : 61|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayMX1_command : 33|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayMX2_command : 35|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayK1_Precharge_command : 37|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ForceRelayRelayK2_DCRun_comand : 39|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PhaseRotation_command : 63|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MasterFollowerMode_command : 17|2@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ Enable_command : 1|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ FaultClear_command : 3|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ InvertHwEnable_command : 57|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableUPSMode_command : 59|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableSplitPhase_command : 61|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayMX1_command : 33|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayMX2_command : 35|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayK1_Precharge_command : 37|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ForceRelayRelayK2_DCRun_comand : 39|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PhaseRotation_command : 63|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MasterFollowerMode_command : 17|2@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365561921 FRAME_CommandPowerAPU2: 8 Vector__XXX - SG_ RealPower_command : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_command : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_command : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_command : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365562433 FRAME_CommandVFAPU2: 8 Vector__XXX - SG_ Voltage_command : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ Frequency_command : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX + SG_ Voltage_command : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ Frequency_command : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX BO_ 2365573879 FRAME_MasterMeasuredPowerAPU2: 8 Vector__XXX - SG_ RealPower_measured : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_measured : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_measured : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_measured : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365573879 FRAME_StatusMeasuredPower: 8 Vector__XXX - SG_ RealPower_measured : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_measured : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_measured : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_measured : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2566898935 FRAME_StatusCommandedPower: 8 Vector__XXX - SG_ RealPower_echo : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ReactivePower_echo : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ RealPower_echo : 7|32@0+ (1,0) [0|1] "" Vector__XXX + SG_ ReactivePower_echo : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365572087 FRAME_StatusBits: 8 Vector__XXX - SG_ State_status : 3|4@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX2Permissive_status : 19|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PowerAvailAC_status : 11|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PowerAvailDC_status : 13|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PowerCircuitEnabled_status : 15|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ HardwareEnable_status : 9|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ Enable_echo : 5|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FaultClr_echo : 7|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MessageValidModeControl_status : 25|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MX1Permissive_status : 17|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K2DCRunPermissive_status : 23|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ K1PrechargePermissive_status : 21|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MessageValidPowerCMD_status : 27|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ MessageValidVF_status : 29|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ CANbus_status : 31|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableUPSMode_echo : 33|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EnableSplitPhase_echo : 35|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PhaseRotation_status : 37|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ LineVoltageDetected_status : 39|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ PhaseRotation_echo : 41|2@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ State_status : 3|4@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX2Permissive_status : 19|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PowerAvailAC_status : 11|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PowerAvailDC_status : 13|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PowerCircuitEnabled_status : 15|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ HardwareEnable_status : 9|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ Enable_echo : 5|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ FaultClr_echo : 7|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MessageValidModeControl_status : 25|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MX1Permissive_status : 17|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ K2DCRunPermissive_status : 23|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ K1PrechargePermissive_status : 21|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MessageValidPowerCMD_status : 27|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ MessageValidVF_status : 29|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ CANbus_status : 31|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableUPSMode_echo : 33|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EnableSplitPhase_echo : 35|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PhaseRotation_status : 37|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ LineVoltageDetected_status : 39|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ PhaseRotation_echo : 41|2@0+ (1,0) [0|1] "" Vector__XXX BO_ 2634008055 FRAME_StatusControlVoltage: 8 Vector__XXX - SG_ v5p0_Supply : 7|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ v3p3_Supply : 23|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ v24_Supply : 39|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ v15_Supply : 55|16@0+ (0.01,0.0) [0|1] "" Vector__XXX + SG_ v5p0_Supply : 7|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ v3p3_Supply : 23|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ v24_Supply : 39|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ v15_Supply : 55|16@0+ (0.01,0) [0|1] "" Vector__XXX BO_ 2566900727 FRAME_StatusTemps: 8 Vector__XXX - SG_ TempInlet_measured : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ TempInternal_measured : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ ConverterLosses : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ TempInlet_measured : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ TempInternal_measured : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ ConverterLosses : 39|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365573367 FRAME_StatusFaults: 8 Vector__XXX - SG_ BridgeAVoltageOk_status : 59|1@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ OvercurrentAC_status : 3|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ BridgeBVoltageOk_status : 43|1@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ OvervoltageDC_status : 9|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ OvertempPowerDevice_status : 15|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ OvertempInternal_status : 13|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ LossValidControlMessage_status : 23|4@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ UndervoltageDC_status : 11|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ControlHardwareFail_status : 19|4@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ OvercurrentDC_status : 7|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ GeneralFault_status : 1|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ LossOfAC_status : 5|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ EStopShutdown_status : 25|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ BridgeAFault_status : 58|3@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ BridgeBFault_status : 42|3@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ IllegalTransition_status : 27|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ InvalidEEHeader_status : 29|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ InvalidEESection_status : 31|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ ThermalOverload : 33|2@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ BridgeAVoltageOk_status : 59|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ OvercurrentAC_status : 3|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ BridgeBVoltageOk_status : 43|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ OvervoltageDC_status : 9|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ OvertempPowerDevice_status : 15|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ OvertempInternal_status : 13|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ LossValidControlMessage_status : 23|4@0+ (1,0) [0|1] "" Vector__XXX + SG_ UndervoltageDC_status : 11|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ControlHardwareFail_status : 19|4@0+ (1,0) [0|1] "" Vector__XXX + SG_ OvercurrentDC_status : 7|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ GeneralFault_status : 1|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ LossOfAC_status : 5|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ EStopShutdown_status : 25|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ BridgeAFault_status : 58|3@0+ (1,0) [0|1] "" Vector__XXX + SG_ BridgeBFault_status : 42|3@0+ (1,0) [0|1] "" Vector__XXX + SG_ IllegalTransition_status : 27|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ InvalidEEHeader_status : 29|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ InvalidEESection_status : 31|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ ThermalOverload : 33|2@0+ (1,0) [0|1] "" Vector__XXX BO_ 2365571831 FRAME_StatusACParameters: 8 Vector__XXX - SG_ VoltageAC_measured : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ CurrentAC_measured : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ Frequency_measured : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX + SG_ VoltageAC_measured : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ CurrentAC_measured : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ Frequency_measured : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX BO_ 2634008567 FRAME_StatusDCParameters: 8 Vector__XXX - SG_ VoltageDCBus : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ CurrentDC_measured : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ VoltageDCInput_measured : 7|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ VoltageDCBus : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ CurrentDC_measured : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ VoltageDCInput_measured : 7|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2634008311 FRAME_StatusControlVolts2: 8 Vector__XXX - SG_ n15V_Supply : 7|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ DiodeTemperature : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ IGBTTemperature : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ n15V_Supply : 7|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ DiodeTemperature : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ IGBTTemperature : 55|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2634007031 FRAME_softwareRev: 8 Vector__XXX - SG_ InterfaceRev : 23|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ ControlSwRev : 7|16@0+ (0.01,0.0) [0|1] "" Vector__XXX - SG_ BuildTime : 39|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ InterfaceRev : 23|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ ControlSwRev : 7|16@0+ (0.01,0) [0|1] "" Vector__XXX + SG_ BuildTime : 39|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2566900215 FRAME_StatusCommandVF: 8 Vector__XXX - SG_ Voltage_echo : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ Frequency_echo : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX + SG_ Voltage_echo : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ Frequency_echo : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX BO_ 2634009847 FRAME_serialNumber: 8 Vector__XXX - SG_ SerialNumber : 7|32@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ SerialNumber : 7|32@0+ (1,0) [0|1] "" Vector__XXX BO_ 2634010103 FRAME_softwareRevHash: 8 Vector__XXX - SG_ Hash : 7|28@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ Hash : 7|28@0+ (1,0) [0|1] "" Vector__XXX BO_ 2634000887 FRAME_StatusNVParam: 8 Vector__XXX - SG_ StatusNVParam_MUX : 7|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ Dummy : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ VUnder50pct : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ V50to88pct : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ V110to120pct : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ VOver120 : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ FreqHi : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqLo : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqVeryLo : 55|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqVeryLo : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqLo : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ FreqHi : 55|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ StatusNodeID : 23|8@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusSA_Mask : 31|8@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusBaudrate : 39|4@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusThermalOverload : 17|2@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusMX1Open : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusMX1Close : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusMX2Open : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusMX2Close : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusK1Open : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusK1Close : 55|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusK2Open : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ StatusK2Close : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ StatusNVParam_MUX : 7|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ Dummy : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ VUnder50pct : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ V50to88pct : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ V110to120pct : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ VOver120 : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ FreqHi : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqLo : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqVeryLo : 55|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqVeryLo : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqLo : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ FreqHi : 55|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ StatusNodeID : 23|8@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusSA_Mask : 31|8@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusBaudrate : 39|4@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusThermalOverload : 17|2@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusMX1Open : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusMX1Close : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusMX2Open : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusMX2Close : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusK1Open : 39|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusK1Close : 55|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusK2Open : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ StatusK2Close : 39|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2566902007 FRAME_StatusLineCurrents: 8 Vector__XXX - SG_ L1Current_measured : 7|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ L2Current_measured : 23|16@0+ (1.0,0.0) [0|1] "" Vector__XXX - SG_ L3Current_measured : 39|16@0+ (1.0,0.0) [0|1] "" Vector__XXX + SG_ L1Current_measured : 7|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ L2Current_measured : 23|16@0+ (1,0) [0|1] "" Vector__XXX + SG_ L3Current_measured : 39|16@0+ (1,0) [0|1] "" Vector__XXX BO_ 2566902263 FRAME_StatusLineVoltages: 8 Vector__XXX - SG_ L1Voltage_measured : 7|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ L2Voltage_measured : 23|16@0+ (0.1,0.0) [0|1] "" Vector__XXX - SG_ L3Voltage_measured : 39|16@0+ (0.1,0.0) [0|1] "" Vector__XXX + SG_ L1Voltage_measured : 7|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ L2Voltage_measured : 23|16@0+ (0.1,0) [0|1] "" Vector__XXX + SG_ L3Voltage_measured : 39|16@0+ (0.1,0) [0|1] "" Vector__XXX diff --git a/test/reference/from_arxml/CAN_test.dbf b/test/reference/from_arxml/CAN_test.dbf index fc8c247c..e297e893 100644 --- a/test/reference/from_arxml/CAN_test.dbf +++ b/test/reference/from_arxml/CAN_test.dbf @@ -7,57 +7,57 @@ [BUSMASTER_VERSION] [1.7.2] [NUMBER_OF_MESSAGES] 26 [START_MSG] FRAME_CommandModeControl,16755521,8,11,1,X,Vector__XXX -[START_SIGNALS] Enable_command,2,1,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Enable_command,2,1,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] FaultClear_command,2,1,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] FaultClear_command,2,1,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Clear Faults",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] InvertHwEnable_command,2,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] InvertHwEnable_command,2,8,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "No invert",0 [VALUE_DESCRIPTION] "Invert",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EnableUPSMode_command,2,8,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableUPSMode_command,2,8,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EnableSplitPhase_command,2,8,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableSplitPhase_command,2,8,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal - Three Phase Mode",0 [VALUE_DESCRIPTION] "Enable Split Phase Mode",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayMX1_command,2,5,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayMX1_command,2,5,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayMX2_command,2,5,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayMX2_command,2,5,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayK1_Precharge_command,2,5,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayK1_Precharge_command,2,5,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayRelayK2_DCRun_comand,2,5,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayRelayK2_DCRun_comand,2,5,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PhaseRotation_command,2,8,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PhaseRotation_command,2,8,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Negative",0 [VALUE_DESCRIPTION] "Positive",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MasterFollowerMode_command,2,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MasterFollowerMode_command,2,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Master",0 [VALUE_DESCRIPTION] "Follower",1 [VALUE_DESCRIPTION] "Error",2 @@ -65,32 +65,32 @@ [END_MSG] [START_MSG] FRAME_CommandPower,218082369,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_command,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_command,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_command,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_command,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_CommandVF,218082881,8,2,1,X,Vector__XXX -[START_SIGNALS] Voltage_command,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] Frequency_command,16,4,0,U,10.0,0.0,0,0.0,0.1,,, +[START_SIGNALS] Voltage_command,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] Frequency_command,16,4,0,U,10,0,0,0.0,0.1,,, [END_MSG] [START_MSG] FRAME_MasterMeasuredPower,218090230,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_measured,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_measured,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_measured,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_measured,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_CommandFactoryControl,218083137,8,3,1,X,Vector__XXX -[START_SIGNALS] WriteSerialNumber,2,1,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] WriteSerialNumber,2,1,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] SerialNumber,32,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] FactoryAccess,16,4,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] SerialNumber,32,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] FactoryAccess,16,4,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_CommandSetNVParam,218081857,8,24,1,X,Vector__XXX -[START_SIGNALS] CommandSetNVParam_MUX,16,2,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] CommandSetNVParam_MUX,16,2,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Param0",0 [VALUE_DESCRIPTION] "LVM_ClearingTimes1",1 [VALUE_DESCRIPTION] "LVM_ClearingTimes2",2 @@ -101,91 +101,91 @@ [VALUE_DESCRIPTION] "ContactorDelays1",7 [VALUE_DESCRIPTION] "ContactorDelays2",8 [VALUE_DESCRIPTION] "ContactorDelays3",9 -[START_SIGNALS] Dummy,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] VUnder50pct,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] V50to88pct,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] V110to120pct,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] VOver120,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] FreqHi,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqLo,16,6,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqVeryLo,16,8,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqVeryLo,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqLo,16,6,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqHi,16,8,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] NodeID,8,3,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] SA_Mask,8,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] Baudrate,4,5,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Dummy,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] VUnder50pct,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] V50to88pct,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] V110to120pct,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] VOver120,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] FreqHi,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqLo,16,6,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqVeryLo,16,8,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqVeryLo,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqLo,16,6,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqHi,16,8,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] NodeID,8,3,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] SA_Mask,8,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] Baudrate,4,5,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "125K",0 [VALUE_DESCRIPTION] "250K",1 [VALUE_DESCRIPTION] "500K",2 [VALUE_DESCRIPTION] "1M",3 -[START_SIGNALS] ThermalOverload,2,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ThermalOverload,2,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Warning",0 [VALUE_DESCRIPTION] "Fault",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MX1Open,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] MX1Close,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] MX2Open,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] MX2Close,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] K1Open,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] K1Close,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] K2Open,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] K2Close,16,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MX1Open,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] MX1Close,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] MX2Open,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] MX2Close,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] K1Open,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] K1Close,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] K2Open,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] K2Close,16,6,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_CommandModeControlAPU2,16751425,8,11,1,X,Vector__XXX -[START_SIGNALS] Enable_command,2,1,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Enable_command,2,1,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] FaultClear_command,2,1,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] FaultClear_command,2,1,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Clear Faults",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] InvertHwEnable_command,2,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] InvertHwEnable_command,2,8,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "No invert",0 [VALUE_DESCRIPTION] "Invert",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EnableUPSMode_command,2,8,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableUPSMode_command,2,8,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EnableSplitPhase_command,2,8,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableSplitPhase_command,2,8,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal - Three Phase Mode",0 [VALUE_DESCRIPTION] "Enable Split Phase Mode",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayMX1_command,2,5,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayMX1_command,2,5,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayMX2_command,2,5,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayMX2_command,2,5,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayK1_Precharge_command,2,5,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayK1_Precharge_command,2,5,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ForceRelayRelayK2_DCRun_comand,2,5,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ForceRelayRelayK2_DCRun_comand,2,5,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Force On",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PhaseRotation_command,2,8,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PhaseRotation_command,2,8,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Negative",0 [VALUE_DESCRIPTION] "Positive",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MasterFollowerMode_command,2,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MasterFollowerMode_command,2,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Master",0 [VALUE_DESCRIPTION] "Follower",1 [VALUE_DESCRIPTION] "Error",2 @@ -193,32 +193,32 @@ [END_MSG] [START_MSG] FRAME_CommandPowerAPU2,218078273,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_command,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_command,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_command,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_command,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_CommandVFAPU2,218078785,8,2,1,X,Vector__XXX -[START_SIGNALS] Voltage_command,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] Frequency_command,16,4,0,U,10.0,0.0,0,0.0,0.1,,, +[START_SIGNALS] Voltage_command,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] Frequency_command,16,4,0,U,10,0,0,0.0,0.1,,, [END_MSG] [START_MSG] FRAME_MasterMeasuredPowerAPU2,218090231,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_measured,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_measured,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_measured,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_measured,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusMeasuredPower,218090231,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_measured,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_measured,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_measured,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_measured,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusCommandedPower,419415287,8,2,1,X,Vector__XXX -[START_SIGNALS] RealPower_echo,32,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] ReactivePower_echo,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] RealPower_echo,32,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] ReactivePower_echo,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusBits,218088439,8,20,1,X,Vector__XXX -[START_SIGNALS] State_status,4,1,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] State_status,4,1,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Power On Reset",0 [VALUE_DESCRIPTION] "Ready",1 [VALUE_DESCRIPTION] "Following",2 @@ -235,97 +235,97 @@ [VALUE_DESCRIPTION] "N/A",13 [VALUE_DESCRIPTION] "N/A",14 [VALUE_DESCRIPTION] "N/A",15 -[START_SIGNALS] MX2Permissive_status,2,3,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MX2Permissive_status,2,3,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Open",0 [VALUE_DESCRIPTION] "Closed",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PowerAvailAC_status,2,2,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PowerAvailAC_status,2,2,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "None",0 [VALUE_DESCRIPTION] "Available",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PowerAvailDC_status,2,2,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PowerAvailDC_status,2,2,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "None",0 [VALUE_DESCRIPTION] "Available",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PowerCircuitEnabled_status,2,2,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PowerCircuitEnabled_status,2,2,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disabled",0 [VALUE_DESCRIPTION] "Enabled",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] HardwareEnable_status,2,2,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] HardwareEnable_status,2,2,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Not Active",0 [VALUE_DESCRIPTION] "Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] Enable_echo,2,1,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Enable_echo,2,1,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] FaultClr_echo,2,1,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] FaultClr_echo,2,1,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Clear Faults",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MessageValidModeControl_status,2,4,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MessageValidModeControl_status,2,4,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Invalid",0 [VALUE_DESCRIPTION] "Valid",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MX1Permissive_status,2,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MX1Permissive_status,2,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Open",0 [VALUE_DESCRIPTION] "Closed",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] K2DCRunPermissive_status,2,3,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] K2DCRunPermissive_status,2,3,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Open",0 [VALUE_DESCRIPTION] "Closed",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] K1PrechargePermissive_status,2,3,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] K1PrechargePermissive_status,2,3,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Open",0 [VALUE_DESCRIPTION] "Closed",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MessageValidPowerCMD_status,2,4,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MessageValidPowerCMD_status,2,4,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Invalid",0 [VALUE_DESCRIPTION] "Valid",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] MessageValidVF_status,2,4,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] MessageValidVF_status,2,4,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Invalid",0 [VALUE_DESCRIPTION] "Valid",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] CANbus_status,2,4,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] CANbus_status,2,4,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Warning",1 [VALUE_DESCRIPTION] "ErrorPassive",3 [VALUE_DESCRIPTION] "N/A",4 -[START_SIGNALS] EnableUPSMode_echo,2,5,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableUPSMode_echo,2,5,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Disable",0 [VALUE_DESCRIPTION] "Enable",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EnableSplitPhase_echo,2,5,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EnableSplitPhase_echo,2,5,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal - Three Phase Mode",0 [VALUE_DESCRIPTION] "Enable Split Phase Mode",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PhaseRotation_status,2,5,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PhaseRotation_status,2,5,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Negative",0 [VALUE_DESCRIPTION] "Positive",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] LineVoltageDetected_status,2,5,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] LineVoltageDetected_status,2,5,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "No_Voltage",0 [VALUE_DESCRIPTION] "Voltage_Detected",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] PhaseRotation_echo,2,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] PhaseRotation_echo,2,6,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Negative",0 [VALUE_DESCRIPTION] "Positive",1 [VALUE_DESCRIPTION] "Error",2 @@ -333,85 +333,85 @@ [END_MSG] [START_MSG] FRAME_StatusControlVoltage,486524407,8,4,1,X,Vector__XXX -[START_SIGNALS] v5p0_Supply,16,2,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] v3p3_Supply,16,4,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] v24_Supply,16,6,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] v15_Supply,16,8,0,U,100.0,0.0,0,0.0,0.01,,, +[START_SIGNALS] v5p0_Supply,16,2,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] v3p3_Supply,16,4,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] v24_Supply,16,6,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] v15_Supply,16,8,0,U,100,0,0,0.0,0.01,,, [END_MSG] [START_MSG] FRAME_StatusTemps,419417079,8,3,1,X,Vector__XXX -[START_SIGNALS] TempInlet_measured,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] TempInternal_measured,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] ConverterLosses,16,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] TempInlet_measured,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] TempInternal_measured,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] ConverterLosses,16,6,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusFaults,218089719,8,19,1,X,Vector__XXX -[START_SIGNALS] BridgeAVoltageOk_status,1,8,3,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] BridgeAVoltageOk_status,1,8,3,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] OvercurrentAC_status,2,1,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] OvercurrentAC_status,2,1,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] BridgeBVoltageOk_status,1,6,3,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] BridgeBVoltageOk_status,1,6,3,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] OvervoltageDC_status,2,2,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] OvervoltageDC_status,2,2,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] OvertempPowerDevice_status,2,2,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] OvertempPowerDevice_status,2,2,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] OvertempInternal_status,2,2,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] OvertempInternal_status,2,2,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] LossValidControlMessage_status,4,3,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] LossValidControlMessage_status,4,3,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] UndervoltageDC_status,2,2,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] UndervoltageDC_status,2,2,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ControlHardwareFail_status,4,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ControlHardwareFail_status,4,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] OvercurrentDC_status,2,1,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] OvercurrentDC_status,2,1,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] GeneralFault_status,2,1,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] GeneralFault_status,2,1,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] LossOfAC_status,2,1,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] LossOfAC_status,2,1,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] EStopShutdown_status,2,4,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] EStopShutdown_status,2,4,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] BridgeAFault_status,3,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] BridgeAFault_status,3,8,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "FLT_A",1 [VALUE_DESCRIPTION] "N/A",2 @@ -420,7 +420,7 @@ [VALUE_DESCRIPTION] "FLT_B",5 [VALUE_DESCRIPTION] "Overcurrent",6 [VALUE_DESCRIPTION] "5V",7 -[START_SIGNALS] BridgeBFault_status,3,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] BridgeBFault_status,3,6,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "FLT_A",1 [VALUE_DESCRIPTION] "N/A",2 @@ -429,22 +429,22 @@ [VALUE_DESCRIPTION] "FLT_B",5 [VALUE_DESCRIPTION] "Overcurrent",6 [VALUE_DESCRIPTION] "5V",7 -[START_SIGNALS] IllegalTransition_status,2,4,2,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] IllegalTransition_status,2,4,2,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] InvalidEEHeader_status,2,4,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] InvalidEEHeader_status,2,4,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] InvalidEESection_status,2,4,6,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] InvalidEESection_status,2,4,6,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Normal",0 [VALUE_DESCRIPTION] "Fault Active",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] ThermalOverload,2,5,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] ThermalOverload,2,5,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Warning",0 [VALUE_DESCRIPTION] "Fault",1 [VALUE_DESCRIPTION] "Error",2 @@ -452,44 +452,44 @@ [END_MSG] [START_MSG] FRAME_StatusACParameters,218088183,8,3,1,X,Vector__XXX -[START_SIGNALS] VoltageAC_measured,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] CurrentAC_measured,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] Frequency_measured,16,6,0,U,10.0,0.0,0,0.0,0.1,,, +[START_SIGNALS] VoltageAC_measured,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] CurrentAC_measured,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] Frequency_measured,16,6,0,U,10,0,0,0.0,0.1,,, [END_MSG] [START_MSG] FRAME_StatusDCParameters,486524919,8,3,1,X,Vector__XXX -[START_SIGNALS] VoltageDCBus,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] CurrentDC_measured,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] VoltageDCInput_measured,16,2,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] VoltageDCBus,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] CurrentDC_measured,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] VoltageDCInput_measured,16,2,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusControlVolts2,486524663,8,3,1,X,Vector__XXX -[START_SIGNALS] n15V_Supply,16,2,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] DiodeTemperature,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] IGBTTemperature,16,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] n15V_Supply,16,2,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] DiodeTemperature,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] IGBTTemperature,16,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_softwareRev,486523383,8,3,1,X,Vector__XXX -[START_SIGNALS] InterfaceRev,16,4,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] ControlSwRev,16,2,0,U,100.0,0.0,0,0.0,0.01,,, -[START_SIGNALS] BuildTime,32,8,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] InterfaceRev,16,4,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] ControlSwRev,16,2,0,U,100,0,0,0.0,0.01,,, +[START_SIGNALS] BuildTime,32,8,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusCommandVF,419416567,8,2,1,X,Vector__XXX -[START_SIGNALS] Voltage_echo,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] Frequency_echo,16,4,0,U,10.0,0.0,0,0.0,0.1,,, +[START_SIGNALS] Voltage_echo,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] Frequency_echo,16,4,0,U,10,0,0,0.0,0.1,,, [END_MSG] [START_MSG] FRAME_serialNumber,486526199,8,1,1,X,Vector__XXX -[START_SIGNALS] SerialNumber,32,4,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] SerialNumber,32,4,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_softwareRevHash,486526455,8,1,1,X,Vector__XXX -[START_SIGNALS] Hash,28,4,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Hash,28,4,4,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusNVParam,486517239,8,24,1,X,Vector__XXX -[START_SIGNALS] StatusNVParam_MUX,16,2,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] StatusNVParam_MUX,16,2,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "ActParam0",0 [VALUE_DESCRIPTION] "ActLVM_ClearingTimes1",1 [VALUE_DESCRIPTION] "ActLVM_ClearingTimes2",2 @@ -500,49 +500,49 @@ [VALUE_DESCRIPTION] "StatusContactorDelays1",7 [VALUE_DESCRIPTION] "StatusContactorDelays2",8 [VALUE_DESCRIPTION] "StatusContactorDelays3",9 -[START_SIGNALS] Dummy,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] VUnder50pct,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] V50to88pct,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] V110to120pct,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] VOver120,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] FreqHi,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqLo,16,6,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqVeryLo,16,8,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqVeryLo,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqLo,16,6,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] FreqHi,16,8,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] StatusNodeID,8,3,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusSA_Mask,8,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusBaudrate,4,5,4,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] Dummy,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] VUnder50pct,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] V50to88pct,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] V110to120pct,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] VOver120,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] FreqHi,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqLo,16,6,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqVeryLo,16,8,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqVeryLo,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqLo,16,6,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] FreqHi,16,8,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] StatusNodeID,8,3,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusSA_Mask,8,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusBaudrate,4,5,4,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "125K",0 [VALUE_DESCRIPTION] "250K",1 [VALUE_DESCRIPTION] "500K",2 [VALUE_DESCRIPTION] "1M",3 -[START_SIGNALS] StatusThermalOverload,2,3,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] StatusThermalOverload,2,3,0,U,1,0,0,0.0,1.0,,, [VALUE_DESCRIPTION] "Warning",0 [VALUE_DESCRIPTION] "Fault",1 [VALUE_DESCRIPTION] "Error",2 [VALUE_DESCRIPTION] "N/A",3 -[START_SIGNALS] StatusMX1Open,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusMX1Close,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusMX2Open,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusMX2Close,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusK1Open,16,6,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusK1Close,16,8,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusK2Open,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] StatusK2Close,16,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] StatusMX1Open,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusMX1Close,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusMX2Open,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusMX2Close,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusK1Open,16,6,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusK1Close,16,8,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusK2Open,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] StatusK2Close,16,6,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusLineCurrents,419418359,8,3,1,X,Vector__XXX -[START_SIGNALS] L1Current_measured,16,2,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] L2Current_measured,16,4,0,U,1.0,0.0,0,0.0,1.0,,, -[START_SIGNALS] L3Current_measured,16,6,0,U,1.0,0.0,0,0.0,1.0,,, +[START_SIGNALS] L1Current_measured,16,2,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] L2Current_measured,16,4,0,U,1,0,0,0.0,1.0,,, +[START_SIGNALS] L3Current_measured,16,6,0,U,1,0,0,0.0,1.0,,, [END_MSG] [START_MSG] FRAME_StatusLineVoltages,419418615,8,3,1,X,Vector__XXX -[START_SIGNALS] L1Voltage_measured,16,2,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] L2Voltage_measured,16,4,0,U,10.0,0.0,0,0.0,0.1,,, -[START_SIGNALS] L3Voltage_measured,16,6,0,U,10.0,0.0,0,0.0,0.1,,, +[START_SIGNALS] L1Voltage_measured,16,2,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] L2Voltage_measured,16,4,0,U,10,0,0,0.0,0.1,,, +[START_SIGNALS] L3Voltage_measured,16,6,0,U,10,0,0,0.0,0.1,,, [END_MSG] [NODE] diff --git a/test/reference/from_arxml/CAN_test.kcd b/test/reference/from_arxml/CAN_test.kcd index 275db217..07a3a744 100644 --- a/test/reference/from_arxml/CAN_test.kcd +++ b/test/reference/from_arxml/CAN_test.kcd @@ -6,7 +6,7 @@ - + - + - + - + - + - + - + - + - + - + - +