广告招募

当前位置:中美贸易网 > 技术中心 > 所有分类

从CANlib访问环境变量(2/3)

2026年01月31日 09:27:29      来源:广州智维电子科技有限公司 >> 进入该公司展台      阅读量:6

分享:

这是关于t程序环境变量3篇系列文章的第二篇

1. 环境变量简介

2. 从CANlib访问环境变量

3. KvaserTRX和环境变量

本系列的篇文章介绍了环境变量,以及如何在t程序中应用环境变量。第二篇将介绍如何使用CANlib访问环境变量。

环境变量用于在不同的t程序之间通信,或者使用CANlib与PC通信。 环境变量必须在t程序的envvar部分中定义。

为了从CANlib访问环境变量,你需要为环境变量设置句柄:

l kvScriptEnvvarOpen (const inthnd, char *envvarName, int *envvarType, int *envvarSize)打开现有的环境变量,并返回句柄以及环境变量的类型和大小。为了使环境变量存在,环境变量必须在CAN通道句柄hnd指向的设备加载的t程序中定义。

l kvScriptEnvvarClose ::(kvEnvHandle eHnd)关闭环境变量 (已使用kvScriptEnvvarOpen()打开)。

你需要记住环境变量的数据类型。如果尝试使用错误类型访问环境变量,则访问将失败。根据不同的数据类型,可以使用不同的函数访问环境变量:

l kvScriptEnvvarSetInt ::(kvEnvHandle eHnd, int val)设置由eHnd指向的环境变量的值,其已定义为int。

l kvScriptEnvvarGetInt ::(kvEnvHandle eHnd, int *val)检索定义为int的环境变量的值。

l kvScriptEnvvarSetFloat ::(kvEnvHandle eHnd, float val)设置定义为float的环境变量的值。

l kvScriptEnvvarGetFloat ::(kvEnvHandle eHnd, float *val)检索定义为float的环境变量的值。

环境变量也可以定义为长度高达ENVVAR_MAX_SIZE的char数组。为了减少传输的数据的大小,使用start_index和data_len来交换定义为char数组的环境变量。 如果你已划分数据并知道你感兴趣的数据部分,这可能很有帮助。

l kvScriptEnvvarSetData ::(kvEnvHandle eHnd, void *buf, int start_index, int data_len)设置定义为char数组的环境变量中的数据字节范围。

l kvScriptEnvvarGetData ::(kvEnvHandle eHnd, void *buf, int start_index, int data_len) 从定义为char数组的环境变量中检索数据字节范围。

现在,我们从Python的角度尝试谈论一下t程序。

使用Python和环境变量

现在我们可以来测试在本系列篇文章中概述过的与一台运行t程序的设备进行交互。为了运行测试,我们需要运行包含在CANlib SDK v5.12中的环境变量的包装器。预发布版本见https://github.com/Kvaser/canlib-samples

import time

import kvDevice

# Define some values and messages to send to our device

# In order to hide these secret messages, we write them encoded

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