vTESTstudio - VT System CAPL Functions - VT7001

vtsSerialClose - 关闭VT系统通道的串行端口

功能:关闭由系统变量命名空间指定的VT系统通道的串行端口。

Target:目标通道变量空间名称,例如:VTS::ECUPowerSupply

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

Demo演示

查看vtsSerialConfigure函数

vtsSerialOpen - 打开VT系统通道的串行端口

功能:要确保没有数据丢失,请在调用此函数和随后发送或接收数据之间执行等待命令。

Target:目标通道变量空间名称,例如:VTS::ECUPowerSupply

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

Demo演示

查看vtsSerialConfigure函数

vtsSerialConfigure - 配置VT系统通道的串行端口

功能:要配置由系统变量命名空间指定的VT系统通道的串行端口。如果不配置,则使用默认配置。

默认波特率:1200,8个数据位,1个停止位,无奇偶校验。

注意:为了确保使用了正确的设置,请在调用此函数和随后发送或接收数据之间执行等待命令

Target:目标通道变量空间名称,例如:VTS::ECUPowerSupply

baudrate:用于接收和传输的波特率,设置值如下表:

Value

Enum

Short Description

1200

eVTSBaudRate1200

用于接收和发送的串口通信波特率1200

2400

eVTSBaudRate2400

用于接收和发送的串口通信波特率2400

4800

eVTSBaudRate4800

用于接收和发送的串口通信波特率4800

9600

eVTSBaudRate9600

用于接收和发送的串口通信波特率9600

19200

eVTSBaudRate19200

用于接收和发送的串口通信波特率19200

38400

eVTSBaudRate38400

用于接收和发送的串口通信波特率38400

numberOfDataBits:传输帧内的数据位数。设置值如下表:

Value

Enum

Short Description

7

eVTSDataBitsSeven

7 Data Bits

8

eVTSDataBitsEight

8 Data Bits

numberOfStopBits:传输帧内的停止位数,设置值如下表:

Value

Enum

Short Description

1

eVTSStopBitsOne

1 StopBit

2

eVTSStopBitsTwo

2 StopBits

parity:指定使用的校验模式,设置如下表:

Value

Enum

Short Description

0

eVTSParityNone

no parity used, i.e. frame contains no parity bit

1

eVTSParityOdd

odd parity

2

eVTSParityEven

even parity

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

Demo演示

以下示例是初始化串口

RS232Init_Example ()
{
   //声明RS232通信的变量
   char stringToSend[20] = "Hello World !"; // 字符串发送
   byte sendBuffer[20];                     // 用于保存发送数据的字节数组
   byte receiveBuffer[20];                  // 定义接收buffer
   int i;                                   // 字符长度

   //注册RS232回调函数
   vtsSerialSetOnErrorHandler("VTS::ECUPowerSupply", "OnRS232Error");
   vtsSerialSetOnReceiveHandler("VTS::ECUPowerSupply", "OnRS232Receive");
   vtsSerialSetOnSendHandler("VTS::ECUPowerSupply", "OnRS232Sent");

   //配置串行端口,即用于与外部通信
   //ECU电源至9600波特,8个数据位,1个停止位,无奇偶校验
   vtsSerialConfigure("VTS::ECUPowerSupply", eVTSBaudRate9600, eVTSDataBitsEight, eVTSStopBitsOne, eVTSParityNone);

   // 打开串行端口,即与外部ECU电源通信
   vtsSerialOpen("VTS::ECUPowerSupply");

  // 短暂等待以确保应用了设置并且端口已就绪
   TestWaitForTimeOut(10);

   // 关闭串口
   vtsSerialClose("VTS::ECUPowerSupply");
}

vtsSerialReceive - 从串行端口接收字节块

功能:开始从指定VT7001通道的串行端口接收字节块。将接收的数据复制到指定的缓冲区。只能在OnSerialReceive回调中访问数据。

Target:目标通道变量空间名称,例如:VTS::ECUPowerSupply

buffer:接收数据复制到的字节数组,缓冲区仅在OnSerialReceive回调中有效。

size:一次可接收的最大字节数。值必须大于0且小于65

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 其中一个参数的值无效。

-5:串行端口未打开。

Demo演示

发送数据demo

// **** 接收数据 ****

// 在10秒内,将所有接收到的数据输出到写入窗口
Write("Waiting for incomming data...");
vtsSerialReceive("VTS::ECUPowerSupply", receiveBuffer, elcount(receiveBuffer));
TestWaitForTimeOut(10000);

vtsSerialSend - 从串行端口接收字节块

功能:向指定VT7001通道的串行端口发送一个字节块

Target:目标通道变量空间名称,例如:VTS::ECUPowerSupply

buffer:接收数据复制到的字节数组,缓冲区仅在OnSerialReceive回调中有效。

number:要从缓冲区发送的字节数。数字的值必须大于0且小于65

返回值:

0:成功重置目标通道最大和最小值

-1:非特定错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 其中一个参数的值无效。

-5:串行端口未打开。

Demo演示

发送数据demo

// **** 发送数据 ****

// 将字符串复制到字节数组并发送
for (i=0; i<strlen(stringToSend); ++i) sendBuffer[i] = stringToSend[i];
vtsSerialSend("VTS::ECUPowerSupply", sendBuffer, strlen(stringToSend));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值