def __init__(self, pid, name, desc, address, byte_index, bit_index, target): PMCUStandardParameter.__init__(self, pid, name, desc, byte_index, bit_index, target) self._cu_type = PMCUParameter.CU_TYPE_SWITCH_PARAMETER() self.set_address(PMCUAddress(address, 1))
def __init__(self, pid, name, desc, target): PMCUStandardParameter.__init__(self, pid, name, desc, PMCUParameter.CU_INVALID_BYTE_INDEX(), PMCUParameter.CU_INVALID_BIT_INDEX(), target) self._cu_type = PMCUParameter.CU_TYPE_CALCULATED_PARAMETER() self._dependencies = []
def startElement(self, name, attrs): pid = None desc = None target = 0 units = None expr = None value_format = None address = None byte_index = PMCUParameter.CU_INVALID_BYTE_INDEX() bit_index = PMCUParameter.CU_INVALID_BIT_INDEX() if name == "protocol": for (k, v) in attrs.items(): if k == "id": print 'protocol ' + v self._proto_id = v if self._proto_id != "SSM": return if name == "parameter": for (k, v) in attrs.items(): if k == "id": pid = v if k == "name": name = v if k == "desc": desc = v if k == "ecubyteindex": byte_index = int(v) if k == "ecubit": bit_index = int(v) if k == "target": target = int(v) if byte_index is not PMCUParameter.CU_INVALID_BYTE_INDEX( ) and bit_index is not PMCUParameter.CU_INVALID_BIT_INDEX(): self._parameter = PMCUStandardParameter( pid, name, desc, byte_index, bit_index, target) elif byte_index is PMCUParameter.CU_INVALID_BYTE_INDEX( ) and bit_index is PMCUParameter.CU_INVALID_BIT_INDEX(): self._parameter = PMCUCalculatedParameter( pid, name, desc, target) else: raise Exception elif name == "ecuparam": for (k, v) in attrs.items(): if k == "id": pid = v if k == "name": name = v if k == "desc": desc = v if k == "target": target = int(v) self._parameter = PMCUFixedAddressParameter( pid, name, desc, target) elif name == "switch": for (k, v) in attrs.items(): if k == "id": pid = v if k == "name": name = v if k == "desc": desc = v if k == "byte": address = int(v, 16) if k == "ecubyteindex": byte_index = int(v) if k == "bit": bit_index = int(v) if k == "target": target = int(v) self._parameter = PMCUSwitchParameter(pid, name, desc, address, byte_index, bit_index, target) elif name == "address": self._address_length = 1 for (k, v) in attrs.items(): if k == "length": self._address_length = int(v) elif name == "conversion": for (k, v) in attrs.items(): if k == "units": units = v if k == "expr": expr = v if k == "format": value_format = v self._parameter.add_conversion( PMCUConversion(units, expr, value_format)) elif name == "ecu": for (k, v) in attrs.items(): if k == "id": self._ecu_ids = v.split(",") elif name == "ref": for (k, v) in attrs.items(): if k == "parameter": self._parameter.add_dependency(v)