广告招募

当前位置:全球装备网 > 技术中心 > 所有分类

KVASER CANlib新功能:自定义通道名

2025年05月17日 18:08:27      来源:广州智维电子科技有限公司 >> 进入该公司展台      阅读量:19

分享:

CANlib v5.17的新功能之一是添加自定义通道名。在支持的设备上,您就就可以识别出特定设备的通道。当启动Kvaser产品的时候,会显示一个新行,如图1所示。我们尚未分配任何自定义通道名称,因此Kvaser 产品显示为“ – ”。自定义通道名

图1:Kvaser产品现在可以显示自定义通道名

要分配新的自定义通道名,请使用setchannelname.exe工具。该工具可以在您安装CANlib SDK的Bin目录中找到。我将CANlib SDK安装在了D:CanlibSDKCanlibSDK_5.17,
所以工具位置就在D:CanlibSDKCanlibSDK_5.17Binsetchannelname.exe。运行-h参数工具可打印使用帮助。


d:>D:CanlibSDKCanlibSDK_5.17Binsetchannelname.exe --helpChannel naming utility for Kvaser AB products.-h         --help    | Print this information.-channel=X           | CANlib channel index-name="ABc de"       | Name for selected channel.-v                   | Verbose mode.Example:         setchannelname -channel=4 -name="Test unit 1"


因此,让我们为设备通道1设置自定义通道名。从图1可以看出,设备通道1可以使用CANlib通道0访问。让我们将此自定义通道名设置为“Backbone 2”。


D:CanlibSDKCanlibSDK_5.17Binsetchannelname.exe -channel=0 -name="Backbone 2"echo


自定义通道名的长度因设备而异,但至少要有24个字节(包括空终止符)。

ccnamekvhwbackbone
图2:自定义通道名现在设置为“Backbone 2”

为了读取CANlib中的自定义通道名,我们使用canCHANNELDATA_CUST_CHANNEL_NAME调用函数canGetChannelData()。参见下面清单1中的第39行。


#Include #Include void Check(char* id, canStatus stat){  if (stat != canOK) {    char buf[50];    buf[0] = '';    canGetErrorText(stat, buf, sizeof(buf));    printf("%s: failed, stat=%d (%s)n", id, (int)stat, buf);  }}void main(int argc, char* argv[]){  canStatus stat;  int i, chanCount;  canInitializeLibrary();  stat = canGetNumberOfChannels(&chanCount);  Check("canGetNumberOfChannels", stat);  if (chanCount<0 || chanCount > 1000) {    printf("ChannelCount = %d but I don't believe it.n", chanCount);    exit(1);  } else {    printf("%d channels.n", chanCount);  }  for (i=0; i


清单1:读取自定义通道名简短实例程序。

运行上面的程序输出以下结果:


4 channels.== Channel 0 ===============================Channel name = 'Kvaser Memorator 2xHS v2 #1 (Channel 0)'Custom Channel name = 'Backbone 2'== Channel 1 ===============================Channel name = 'Kvaser Memorator 2xHS v2 #1 (Channel 1)'Custom Channel name = ''== Channel 2 ===============================Channel name = 'Virtual #0 (Channel 0)'canCHANNELDATA_CUST_CHANNEL_NAME: failed, stat=-32 (Not implemented)Custom Channel name = ''== Channel 3 ===============================Channel name = 'Virtual #0 (Channel 1)'canCHANNELDATA_CUST_CHANNEL_NAME: failed, stat=-32 (Not implemented)Custom Channel name = ''


要删除自定义通道名,您只需要写一个新的通道名。

希望此简短概述让您了解利用自定义通道名功能。

我们非常感谢您能通过电子邮件发送到support提供错误报告、贡献、改进建议以及其他类似方面。

脚注

所有新款设备,如Kvaser Memorator 2xHS v2,都支持自定义通道名。

在Linux下不支持写入自定义通道名。

版权与免责声明:
1.凡本网注明"来源:全球装备网"的所有作品,版权均属于全球装备网,转载请必须注明全球装备网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。