Нет вывода при извлечении данных журнала CAN-шины с использованием файлов DBC в asammdf (закрыто)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нет вывода при извлечении данных журнала CAN-шины с использованием файлов DBC в asammdf (закрыто)

Сообщение Anonymous »

Обновление 7 /12: Проблема заключалась в том, что файл mdf не был закрыт.
mdf.close() помогает.
Я пытаюсь извлечь данные журнала CAN-шины. из файла MDF, используя набор файлов DBC с библиотекой asammdf в Python. Я проверил, что файл MDF содержит каналы и сообщения CAN. Однако после попытки извлечь данные полученный объект MDF, похоже, не содержит никаких каналов или сообщений CAN. Вот код, который я использую:

Код: Выделить всё

from asammdf import MDF

# Load MF4 file
file_path = r'somepath'
mdf = MDF(file_path)

# Define the path for DBC files
pathdbc = r'dbcpath'

# Define the databases dictionary
database_files = {
"CAN": [
(pathdbc + "ch1.dbc", 1),
(pathdbc + "ch2.dbc", 2),
(pathdbc + "ch3.dbc", 3),
(pathdbc + "ch4.dbc", 4),
(pathdbc + "ch5.dbc", 5)
],
}

# Extract bus logging data using the DBC files
print("Extracting bus logging data using the provided DBC files...")
try:
extracted = mdf.extract_bus_logging(database_files=database_files)
print("Extraction successful.")
except Exception as e:
print(f"Extraction failed: {e}")

# Function to list messages in a specified CAN network
def list_messages_in_can_network(network_id):
can_networks = extracted.bus_logging_map.get('CAN', {})
if network_id in can_networks:
messages = can_networks[network_id]
print(f"\nCAN Network {network_id}: {len(messages)} messages")
for message_id, index in messages.items():
print(f"Message ID: {message_id}, Index: {index}")
else:
print(f"No messages found for CAN Network {network_id}")

# List the names of CAN networks after extraction
def list_can_networks_after_extraction():
can_networks = extracted.bus_logging_map.get('CAN', {})
print(f"Number of CAN networks after extraction: {len(can_networks)}")
for network_id in can_networks.keys():
print(f"CAN Network ID after extraction: {network_id}")

# List messages in CAN Network 4
network_id = 4

# Run the functions
list_can_networks_after_extraction()
list_messages_in_can_network(network_id)
Выход:
Извлечение данных журнала шины с использованием предоставленных файлов DBC...
Извлечение успешно.
Количество сетей CAN после извлечения: 0
Сообщения для сети CAN 4 не найдены
У меня есть проверил, что исходный файл MDF содержит сообщения и каналы. Вот что я пробовал на данный момент:
  • Проверил структуру файла MDF, чтобы убедиться, что она содержит данные CAN.
  • Проверил файлы DBC, чтобы убедиться в их правильности и доступности.
  • Убедился в правильности и доступности. Файлы DBC содержат ожидаемые определения сообщений.
Однако после извлечения полученный объект MDF не показывает ни сетей CAN, ни сообщений. .
Вопрос: Что может быть причиной того, что функция extract_bus_logging не находит никаких каналов CAN или сообщений в извлеченном объекте MDF, несмотря на исходный MDF файл, содержащий их? Как правильно извлечь и сопоставить файлы DBC с данными MDF?

Подробнее здесь: https://stackoverflow.com/questions/786 ... mmdf-close
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Экспортируйте определенные сообщения CAN из файла MF4 в файл ASC с помощью asammdf.
    Anonymous » » в форуме Python
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Возникли проблемы с отображением данных CAN-шины на ЖК-дисплее
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Можно ли принудительно промыть разъем CAN-шины
    Гость » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость
  • Можно ли принудительно промыть разъем CAN-шины
    Anonymous » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Выравнивание текста на карточке dbc – сюжетное тире
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»