2

问题是关于 CAPL 信号访问。假设在代码中有来自某个 PDU 的 64 位无符号整数信号。

在尝试将信号值分配给sysvarqword变量时,例如:

@sysvar::bar = $foo;

警告出现:

CAPL / .NET Accessing integer signal '[...]/foo' with more than 52 bits, possible loss of data!

在关于警告的 CANoe 帮助中,2808我发现

In $ instructions only integer signals with up to 52 bits can be used without data loss, as values are saved and disclosed internally as doubles.

您知道如何在不丢失数据的情况下分配 64 位无符号整数信号值吗?

4

1 回答 1

3

在文档中找到解决方案:

由于数据类型为 double,.raw因此不会为超过 52 位的信号返回准确值。请将这些信号长度.raw64 与数据类型一起使用int64

int64 largeValue;
largeValue = $Some64bitSignal.raw64;
于 2021-02-18T13:53:36.793 回答