python调用图莫斯+can通讯
图莫斯产品手册地址
一、产品手册 - 重庆图莫斯产品帮助文档
常用图莫斯库函数
链接:https://pan.baidu.com/s/1oe4xPvgJ_KWAQ_epoZi5bw?pwd=8888 提取码:8888 复制这段内容后打开百度网盘手机App,操作更方便哦
设备连接代码:
1.连接图莫斯,can通讯初始化
import ctypes import datetime import time import os import sys from intelhex import IntelHex import threading # <--- 新增 import queue # <--- 新增 try: import generateKeyEx from func import hexStr2IntList from usbapi import * except ImportError as e: print(f"导入失败: {e}") sys.exit(1) dev_handle = (ctypes.c_uint64 * 20)() CAN_INDEX = 0 g_CANAddr = CAN_UDS_ADDR() g_CANAddr.ReqID = 0x78D g_CANAddr.ResID = 0x7CD g_CANAddr.MaxDLC = 8 g_DBC_Handle = ctypes.c_longlong(0) def load_dbc(dev_handle, dbc_path): global g_DBC_Handle if not os.path.exists(dbc_path): print(f"DBC文件不存在: {dbc_path}") return False handle_val = DBC_ParserFile(dev_handle, dbc_path.encode()) if handle_val <= 0: print("DBC解析失败") return False g_DBC_Handle = ctypes.c_longlong(handle_val) msg_cnt = DBC_GetMsgQuantity(g_DBC_Handle) return True def can_init_and_start(DevHandle, baudrate_kbps): if baudrate_kbps not in BAUDRATE_TABLE: return False sjw, bs1, bs2, brp = BAUDRATE_TABLE[baudrate_kbps] cfg = CAN_INIT_CONFIG() cfg.CAN_BRP = brp cfg.CAN_SJW = sjw cfg.CAN_BS1 = bs1 cfg.CAN_BS2 = bs2 cfg.CAN_Mode = 0x80 cfg.CAN_ABOM = 0 cfg.CAN_NART = 1 cfg.CAN_RFLM = 0 cfg.CAN_TXFP = 1 ret = CAN_Init(DevHandle, CAN_INDEX, ctypes.byref(cfg)) if ret != 0: return False filt = CAN_FILTER_CONFIG() filt.Enable = 1 filt.FilterIndex = 0 filt.FilterMode = 0 filt.ExtFrame = 1 filt.MASK_IDE = 0 filt.MASK_RTR = 0 filt.MASK_Std_Ext = 0 CAN_Filter_Init(DevHandle, CAN_INDEX, ctypes.byref(filt)) CAN_StartGetMsg(DevHandle, CAN_INDEX) return True if __name__ == '__main__': driver_file = ".\\9S12ZVM_LIN_FlashDriver.s19" ScanDevice(dev_handle) if OpenDevice(dev_handle) != 1: exit() can_init_and_start(dev_handle[0], CAN_BAUDRATE) load_dbc(dev_handle[0], parse_file)
————————————————
版权声明:本文为CSDN博主「学 无止境」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64205091/article/details/161659809
