如何解决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 举报,一经查实,本站将立刻删除。