Beispiel #1
0
 def test_import_export_additional_frame_info(self):
     db_path = os.path.join(
         os.path.dirname(__file__), "..", "test", "test.dbc")
     dbs = formats.loadp(db_path)
     tmp_dir = tempfile.mkdtemp()
     for extension in ['csv', 'json']:
         out_file_name = tmp_dir + "/output." + extension
         formats.dumpp(dbs, out_file_name, additionalFrameAttributes="UserFrameAttr")
         with open(out_file_name, "r") as file:
             data = file.read()
         self.assertIn("UserFrameAttr", data)
Beispiel #2
0
 def test_import_export_additional_frame_info(self):
     db_path = os.path.join(os.path.dirname(__file__), "..", "test",
                            "test.dbc")
     dbs = formats.loadp(db_path)
     tmp_dir = tempfile.mkdtemp()
     for extension in ['csv', 'json']:
         out_file_name = tmp_dir + "/output." + extension
         formats.dumpp(dbs,
                       out_file_name,
                       additionalFrameAttributes="UserFrameAttr")
         with open(out_file_name, "r") as file:
             data = file.read()
         self.assertIn("UserFrameAttr", data)
Beispiel #3
0
    def export(self, filename):
        """Export current configuration to a database file.

        :param str filename:
            Filename to save to (e.g. DBC, DBF, ARXML, KCD etc)

        :return: The CanMatrix object created
        :rtype: canmatrix.canmatrix.CanMatrix
        """
        from canmatrix import canmatrix
        from canmatrix import formats

        db = canmatrix.CanMatrix()
        for pdo_maps in (self.rx, self.tx):
            for pdo_map in pdo_maps.values():
                if pdo_map.cob_id is None:
                    continue
                frame = canmatrix.Frame(pdo_map.name,
                                        Id=pdo_map.cob_id,
                                        extended=0)
                for var in pdo_map.map:
                    is_signed = var.od.data_type in objectdictionary.SIGNED_TYPES
                    is_float = var.od.data_type in objectdictionary.FLOAT_TYPES
                    min_value = var.od.min
                    max_value = var.od.max
                    if min_value is not None:
                        min_value *= var.od.factor
                    if max_value is not None:
                        max_value *= var.od.factor
                    name = var.name
                    name = name.replace(" ", "_")
                    name = name.replace(".", "_")
                    signal = canmatrix.Signal(name,
                                              startBit=var.offset,
                                              signalSize=var.length,
                                              is_signed=is_signed,
                                              is_float=is_float,
                                              factor=var.od.factor,
                                              min=min_value,
                                              max=max_value,
                                              unit=var.od.unit)
                    for value, desc in var.od.value_descriptions.items():
                        signal.addValues(value, desc)
                    frame.addSignal(signal)
                frame.calcDLC()
                db.frames.addFrame(frame)
        formats.dumpp({"": db}, filename)
        return db
Beispiel #4
0
    def export(self, filename):
        """Export current configuration to a database file.

        :param str filename:
            Filename to save to (e.g. DBC, DBF, ARXML, KCD etc)
        """
        from canmatrix import canmatrix
        from canmatrix import formats

        db = canmatrix.CanMatrix()
        for pdo_maps in (self.rx, self.tx):
            for pdo_map in pdo_maps.values():
                if pdo_map.cob_id is None:
                    continue
                direction = "Tx" if pdo_map.cob_id & 0x80 else "Rx"
                map_id = pdo_map.cob_id >> 8
                name = "%sPDO%d_node%d" % (direction, map_id, self.parent.id)
                frame = canmatrix.Frame(name, Id=pdo_map.cob_id, extended=0)
                for var in pdo_map.map:
                    is_signed = var.od.data_type in objectdictionary.SIGNED_TYPES
                    is_float = var.od.data_type in objectdictionary.FLOAT_TYPES
                    min_value = var.od.min
                    max_value = var.od.max
                    if min_value is not None:
                        min_value *= var.od.factor
                    if max_value is not None:
                        max_value *= var.od.factor
                    signal = canmatrix.Signal(var.name.replace(".", "_"),
                                              startBit=var.offset,
                                              signalSize=len(var.od),
                                              is_signed=is_signed,
                                              is_float=is_float,
                                              factor=var.od.factor,
                                              min=min_value,
                                              max=max_value,
                                              unit=var.od.unit)
                    for value, desc in var.od.value_descriptions.items():
                        signal.addValues(value, desc)
                    frame.addSignal(signal)
                frame.calcDLC()
                db.frames.addFrame(frame)
        formats.dumpp({"": db}, filename)