Matlab不调用Python类的继承方法

问题描述

我正在使用Matlab从python-can包中调用Python CAN函数

Python中的代码可以正常工作,但是从Matlab调用时却不能。问题似乎是Matlab从父类而不是子类中调用send()方法。 Matlab需要从子类中调用send()方法

链接显示了Matlab对Python支持的限制: https://www.mathworks.com/help/matlab/matlab_external/limitations-to-python-support.html

这是我的python代码

import can

bus = can.interface.Bus(bustype = "slcan",channel = 'COM6',bitrate = 250000)
print(type(bus))
dataToSend = [1,2,3,4,5,6,7,8]
CAN_Msg = can.Message(arbitration_id = 0x1,is_extended_id = True,data = dataToSend)
bus.send(CAN_Msg)

输出

<class 'can.interfaces.slcan.slcanBus'>

这是我在Matlab中的代码

kwa = pyargs('bustype','slcan','channel','COM6','bitrate',250000);
bus = py.can.interface.Bus(kwa);
class(bus)

dataToSend = py.list({int32(1),int32(2),int32(3),int32(4),int32(5),int32(6),int32(7),int32(8)});
kwa = pyargs('arbitration_id',hex2dec('1'),'is_extended_id','True','data',dataToSend);

CAN_Msg = py.can.Message(kwa);

bus.send(CAN_Msg);

输出

ans =

    'py.can.interface.Bus'

Error using bus>send (line 171)
Python Error: NotImplementedError: Trying to write to a readonly bus?

在Matlab中有使用python send()方法的简单方法吗?即使我必须创建新的python库或修改python库代码,也欢迎任何调用python代码的想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)