Main Content

unpack

从 CAN 报文中解包信号数据

说明

示例

value = unpack(message,startbit,signalsize,byteorder,datatype) 接受一组输入参数从报文中解包信号值并返回该值作为输出。

示例

全部折叠

从一个 CAN 报文中解包数据值。

解包一个 16 位整数值。

message = canMessage(500,false,8);
pack(message,int16(1000),0,16,'LittleEndian')
value = unpack(message,0,16,'LittleEndian','int16')
value =

  int16

   1000

解包一个 32 位单精度值。

pack(message,single(-40),0,32,'LittleEndian')
value = unpack(message,0,32,"LittleEndian",'single')
value =

   single

   -40

解包一个 64 位双精度值。

pack(message,3.14,0,64,'LittleEndian')
value = unpack(message,0,64,'LittleEndian','double')
value =

    3.1400

输入参数

全部折叠

从中解包数据的 CAN 报文,指定为 CAN 报文对象。

示例: canMessage

信号在数据中的起始位,指定为单精度值或双精度值。这是信号数据中最低有效位的位置。startbit 的可接受值介于 063 之间(包含端值)。

示例: 0

数据类型: single | double

信号的长度(以位为单位),指定为数值。signalsize 的可接受值介于 164 之间(包含端值)。

示例: 16

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

信号字节顺序格式,指定为 'LittleEndian''BigEndian'

示例: 'LittleEndian'

数据类型: char | string

解包后的值的数据类型,指定为字符向量或字符串。支持的参数值有 'uint8''int8''uint16''int16''uint32''int32''uint64''int64''single''double'

示例: 'double'

数据类型: char | string

输出参量

全部折叠

报文数据的值,以指定数据类型的数值形式返回。

版本历史记录

在 R2009a 中推出