CANoe系统变量模块里定义的结构体类型和变量从CAPL代码角度理解

CAPL里声明一个结构体类型:

variables
{
  struct DoIPMessage
  {
    byte      version;
    byte      inVersion;
    word      type;
    dword     length;
    byte      payload[1500];
  };
  struct DoIPMessage doipMessage;
}

声明一个结构体类型DoIPMessage,定义了一个此结构体类型的变量doipMessage。也就是说doipMessage作为变量,它的数据类型是DoIPMessage。

由于系统变量中没有byte、word等数据类型,所以在系统变量中定义结构体里的成员时数据类型使用UInt32。payload成员在CAPL中是byte数组,在系统变量中定义为Data类型。长度也要做相应地设置:

如果DoIP消息是基于UDP协议传输的,想要把UDP头部加进来,就可以使用结构体定义一个UDP Header。

struct UDPHeader
{
  word      sourcePort;
  word      destinationPort;
  word      length;
  word      checksum;
};

要如何把一个结构体作为另一个结构体的成员?

在系统变量模块中定义如下:


相关推荐
jasonj3314 天前
CANoe Trace窗口过滤栏消失的几种解决方法(附上最终解决方案)
canoe
蚂蚁小兵20 天前
LIN诊断(3)—— 传输层诊断协议(LINTP)
canoe·lin·tp·iso-17987-2
Zevalin爱灰灰1 个月前
CANoe/CANalyzer基础教程 第五章(CAPL语言)
汽车·can·canoe
智源笔记1 个月前
深入探索CANoe的CAPL语言
汽车·capl·canoe
slight smile2 个月前
MySQL是怎样运行的——第2章 启动选项和系统变量
数据库·mysql·系统变量·启动选项
OceanBase数据库官方博客2 个月前
OceanBase 配置项&系统变量实现及应用详解(4):新增系统变量
oceanbase·分布式数据库·系统变量·技术原理
劉小帅2 个月前
解析capl文件生成XML Test Module对应的xml工具
xml·canoe·xml test module
IAMeee3 个月前
从项目中学习Bus-Off的快慢恢复
网络·笔记·学习·canoe·can总线·bus-off·干扰测试
Anakki4 个月前
【MySQL精通之路】系统变量-系统变量权限
数据库·mysql·权限·系统变量