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);
vtsSerialReceive - 从串行端口接收字节块
功能:向指定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));