问题描述
问题是关于 CAPL 信号访问。让我们假设在代码中有来自某个 PDU 的 64 位无符号整数信号。
尝试将信号值分配给 sysvar
或 qword
变量时,例如:
@sysvar::bar = $foo;
出现警告:
CAPL / .NET Accessing integer signal '[...]/foo' with more than 52 bits,possible loss of data!
在关于警告 2808
的 CANoe 帮助中,我发现
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 位无符号整数信号值吗?
解决方法
在文档中找到了解决方案:
由于数据类型为 double,.raw
不会返回准确的值
信号长度超过 52 位。请使用这些信号长度 .raw64
数据类型为 int64
。
int64 largeValue;
largeValue = $Some64bitSignal.raw64;