使用Matlab 2017a,我为自己编写了一个包装程序,以使用矢量CAN硬件。它基于向量中的vxlapi_NET
。
在以前的版本中,我可以这样做:
xlstatus = obj.fid.XL_OpenDriver();
if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS .....
因为xl_opendriver
返回的类型为vxlapi_NET.XL_Status
。
完全有道理...
现在与2018b相比,情况似乎完全不同了。
XL_OpenDriver
返回类型为XLDefine+XL_Status
的内容。
有人可以在这里解释这个“加号”是什么意思吗?我以前从未在Matlab中看到过类似的东西。此外,我没有找到任何将if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS
转换为与2018b兼容的解决方案。
vxlapi_NET.XLDefine+XL_Status.XL_STATUS
当然不是有效的表达式。
这是一个错误还是为什么行为方式如此不同?
非常感谢您!
答案 0 :(得分:1)
我得到了MathWorks支持的答复。他们确认发生了一些变化:
类或枚举名称中的“ +”表示它嵌套在另一个类中。您不能直接从.NET Assembly实例化嵌套类或枚举。为此,必须使用反射。发行版之间的界面确实发生了变化。