CAPL学习-AVB交互层-功能函数-通用函数

AvbGetLastError

CAPL 函数 >> 以太网 >> AVB IL >> AvbGetLastError

函数

语法
dword AvbGetLastError();

功能

该函数用于检查 AVB IL 的上一个调用函数是否成功执行。调用此函数不会重置已保存的错误。若发生错误,可通过 AvbGetLastErrorText 函数读取详细的错误描述。

参数

返回值

  • 0:上一个调用函数执行成功。
  • 0:错误代码。

可用性

  • 版本:8.2 SP2
  • 限制:仅适用于仿真/测试设置

示例

capl 复制代码
dword retVal;
dword listenerHandle;
// 打开监听器
listenerHandle = AvbOpenListener();
// 检查上一个函数是否成功执行
if ((retVal = AvbGetLastError()) != 0)
{
  write("AVB IL 发生错误:错误代码:%d", retVal);
}

AvbGetLastErrorText

CAPL 函数 >> 以太网 >> AVB IL >> AvbGetLastErrorText

函数

语法
dword AvbGetLastErrorText(dword bufferLength, char buffer[]);

功能

以字符串形式检索 AVB IL 中发生的最后一个错误。调用此函数不会重置已保存的错误文本。

参数

  • bufferLength:字符数量。
  • buffer:接收错误文本的缓冲区。

返回值

复制的字符数。

可用性

  • 版本:8.2 SP2
  • 限制:仅适用于仿真/测试设置

示例

capl 复制代码
char buffer[1024];
dword listenerHandle;
// 打开监听器
listenerHandle = AvbOpenListener();
// 检查上一个函数是否成功执行
if ((AvbGetLastErrorText(elcount(buffer), buffer)) != 0)
{
  write("AVB IL 发生错误:%s", buffer);
}

AvbSetProperty

CAPL 函数 >> 以太网 >> AVB IL >> AvbSetProperty

函数

语法

capl 复制代码
dword AvbSetProperty(char propertyName[], long value);          // 形式 1
dword AvbSetProperty(char propertyName[], qword value);         // 形式 2
dword AvbSetProperty(dword objHandle, char propertyName[], long value);  // 形式 3
dword AvbSetProperty(dword objHandle, char propertyName[], dword length, byte value[]);  // 形式 4
dword AvbSetProperty(dword objHandle, char propertyName[], qword value); // 形式 5

功能

可通过属性配置 AVB IL 的行为。属性可针对当前总线上下文(形式 1-2)或特定对象(如 talker,形式 3-4)进行设置。属性默认值如下表所示。

参数

  • propertyName:要设置的属性名称。
属性名称 默认值 描述
当前总线上下文
StreamReservation 1 不支持流预留,需将此属性设为 0。
监听器/发送器
VlanId 2 用于发送或接收 AVB 数据包的 VLAN ID。
监听器
RtpPort 1024 UDP 上 RTP 使用的本地客户端端口(RTCP 端口比 RTP 端口大 1)。
RtspAddress 未设置/0 TCP 上 RT(S)P 使用的远程服务器地址;未设置时,调用 AvbListen 不尝试连接 RTSP 服务器。
发送器
FramesPerPacket 由 SR 类和帧率推导(若可能) 每个 AVTPDU 的固定帧数。
VlanPriority 2 发送 AVB 数据包使用的 VLAN 优先级。
PresentationTimeOffset 由 SR 类和帧率推导(若可能) 演示时间偏移量(单位:ns),即演示时间与样本移交至 MAC 出口缓冲区的时间差。需考虑网络 SR 类的最大传输时间(见 IEEE 1722-2011 图 6)。
RtpPayloadType 由媒体类型自动推导 RTP 负载类型,描述 RTP 流负载样本的媒体编码格式。可通过本属性手动设置。
  • objHandle:发送器或监听器的句柄。
  • length:传递的 value 缓冲区长度。
  • value:属性的新值。

返回值

  • 0:函数执行成功。
  • 0:错误代码。

可用性

  • 形式 1、3:8.2 SP2
  • 形式 2、4、VlanId 属性:10.0
  • RtspAddress 属性:10.0 SP3
  • 形式 5、PresentationTimeOffset 属性:12.0 SP4
  • RtpPayloadType 属性:14

示例

capl 复制代码
dword talkerHandle;
talkerHandle = AvbOpenTalker();
AvbSetProperty(talkerHandle, "FramesPerPacket", 64);

AvbSetVerbosity

CAPL 函数 >> 以太网 >> AVB IL >> AvbSetVerbosity

函数

语法
dword AvbSetVerbosity(long verbosity);

功能

设置"输出窗口"中 AVB IL 消息的详细级别。

参数
verbosity:详细级别:

  • 0:静默模式(不输出消息)
  • 1:错误模式(仅输出错误消息,默认)
  • 2:警告模式(输出警告和错误消息)
  • 3:信息模式(输出信息、警告和错误消息)

返回值

复制的字符数。

可用性

  • 版本:8.2 SP2
  • 限制:仅适用于仿真/测试设置

示例

capl 复制代码
on key '0'
{
  char buffer[1024];
  // 设置详细级别为"静默"模式
  if (AvbSetVerbosity(0) == 0)
  {
    write("AVB IL 详细级别已设置为"静默"模式");
  }
  else
  {
    // 检查上一个函数是否成功执行
    AvbGetLastErrorText(elcount(buffer), buffer);
    write("设置 AVB IL 详细级别失败:%s", buffer);
  }
}

PtpSetProperty

CAPL 函数 >> 以太网 >> AVB IL >> PtpSetProperty

函数

语法

capl 复制代码
long PtpSetProperty(char propertyName[], long value);          // 形式 1
long PtpSetProperty(char propertyName[], dword length, byte value[]);  // 形式 2

功能

通过属性配置 PTP 层行为。可静态配置仿真节点的端口角色,或预设时间感知终端站的配置(例如在 on prestart 事件中将 PortRole 设置为从站端口)。

参数

  • propertyName:要设置的属性名称。
属性名称 描述
PortRole 整数:0=自动选择(默认,由 BMCA 决定);1=主站端口;2=从站端口;3=被动端口;4=禁用端口。>0 时跳过 BMCA。
PortNumber 整数(1-65535,默认 1):主站端口发送 Sync 和 Sync-follow-up 消息时使用的端口号。
LogSyncInterval 整数(-128~127,默认 -3=0.125s):发送 Sync 消息的时间间隔。
Priority1 整数(0~0xFF,默认 0xFA):系统标识的 Priority1 值。
ClockClass 整数(0~0xFF,默认 0xF8):系统标识的 ClockClass 值。
ClockAccuracy 整数(0~0xFF,默认 0xFE):系统标识的 ClockAccuracy 值。
OffsetScaledLogVariance 整数(0~65535,默认 1):系统标识的 OffsetScaledLogVariance 值。
Priority2 整数(0~0xFF,默认 0xF8):系统标识的 Priority2 值。
VlanId 整数:0=不使用 VLAN(默认);1~4094=VLAN ID。
VlanPriority 整数(0~7,默认 0):VLAN 优先级(PCP)。
RequestLogSyncInterval 整数(-127~125=请求的同步间隔;127=停止发送同步消息;126=重置间隔;-128=不修改)。不可在 on prestart 中设置
RequestLogPdelayReqInterval 整数(-127~125=请求的传播延迟间隔;127=停止发送延迟测量消息;126=重置间隔;-128=不修改)。不可在 on prestart 中设置
RequestLogAnnounceInterval 整数(-127~125=请求的宣告间隔;127=停止发送宣告消息;126=重置间隔;-128=不修改)。不可在 on prestart 中设置
DestinationAddress(CANoe 11.0+) PTP 消息的目标 MAC 地址。需使用字节数组类型(长度=6,网络字节序);默认地址为 01:80:C2:00:00:0E。
LogPdelayReqInterval 整数(-128~127,默认 0=1s):发送 Pdelay_Req 消息的时间间隔。
LogAnnounceInterval 整数(-128~127,默认 0=1s):发送 Announce 消息的时间间隔。
  • length:属性(数组)的字节大小。
  • value:属性的新值。

返回值

  • 0:函数执行成功。
  • ≠0:错误代码。

可用性

  • 形式 1:9.0
  • 形式 2:11.0

示例

capl 复制代码
on preStart
{
  // 将端口角色设置为从站
  if (PtpSetProperty("PortRole", 2) != 0)
  {
    Stop();
    return;
  }
}

PtpSimulationTimespanFromPtpTimespan

CAPL 函数 >> 以太网 >> AVB IL >> PtpSimulationTimespanFromPtpTimespan

函数

语法
int64 PtpSimulationTimespanFromPtpTimespan(qword ptpTimespan);

功能

返回与 PTP 时间跨度对应的仿真时间跨度(时间跨度为两个时间值的差值)。

参数

  • ptpTimespan:PTP 时间跨度(单位:ns)。

返回值

仿真时间跨度(单位:ns)。

可用性

  • 版本:11.0
  • 限制:仅适用于仿真/测试设置

PtpTimeFromSimulationTime

CAPL 函数 >> 以太网 >> AVB IL >> PtpTimeFromSimulationTime

函数

语法
qword PtpTimeFromSimulationTime(int64 simulationTime);

功能

返回与仿真时间对应的全局 PTP 时间。

参数

  • simulationTime:仿真时间(单位:ns)。

返回值

全局 PTP 时间(单位:ns)。

可用性

  • 版本:8.2 SP2
  • 限制:仅适用于仿真/测试设置

PtpTimeNow

CAPL 函数 >> 以太网 >> AVB IL >> PtpTimeNow

函数

语法
qword PtpTimeNow();

功能

返回当前全局 PTP 时间。

参数

返回值

当前全局 PTP 时间(单位:ns)。

可用性

  • 版本:8.2 SP2
  • 限制:仅适用于仿真/测试设置
相关推荐
元气满满-樱3 小时前
DHCP服务部署
网络
车载测试工程师3 小时前
CAPL学习-SOME/IP交互层-符号数据库访问类函数
学习·tcp/ip·以太网·capl·canoe
离凌寒3 小时前
一、基于freertos下对LAN8720模块进行通信测试
网络·freertos
不染尘.4 小时前
UDP客户服务器模型和UDP协议
服务器·网络·网络协议·计算机网络·udp
Macbethad4 小时前
Linux网关应用技术报告
网络
旺仔Sec4 小时前
2026年河北省职业院校技能大赛“网络系统管理”(高职组)网络构建样题
运维·服务器·网络
小妖6664 小时前
力扣(LeetCode)- 93. 复原 IP 地址(JavaScript)
javascript·tcp/ip·leetcode
Neolnfra5 小时前
Xshell SSH 连接故障排查
运维·服务器·网络·ssh·xshell·运程连接
testpassportcn5 小时前
Cisco 300-540 SPCNI 認證考試介紹(CCNP Service Provider 專業考試)
网络·数据库