跳至主要內容

请求消息映射

hylexus约 584 字大约 2 分钟

请求消息映射

@Jt808ReqMsgBody

该注解只能标记于 请求消息体实体类 上。

注意

目前为止,请求消息体实体类 必须实现标记接口 RequestMsgBody

类似于 HibernateMyBatis 中的 @Table 注解。

属性解释取值示例
msgType808报文类型,消息Id0x0200
@Data
@Accessors(chain = true)
@Jt808ReqMsgBody(msgType = 0x0200)
public class LocationUploadMsgBody implements RequestMsgBody {
    // ...
}

@BasicField

只能标记于字段上。类比于HibernateMyBatis 中的 @Column@Basic

属性解释取值示例
startIndex起始字节索引0、4、12
startIndexMethod作用和startIndex相同,当startIndex无法直接指定时可根据该属性定义的方法名返回字节数"getLength"
dataType数据类型WORD、DWORD
length长度,字节数4、6
byteCountMethod作用和length相同,当length无法直接指定时可根据该属性定义的方法名返回字节数"getLength"
customerDataTypeConverterClass自定义的类型转换器
@BasicField(startIndex = 4, dataType = BYTES, length = 4)
private byte[] statusBytes;

@BasicField(startIndex = 4, dataType = BYTES, byteCountMethod = 'getLength')
private byte[] statusBytes1;

public int getLength() {
    return 4;
}

@SplittableField

将被修饰的字段拆分之后赋值给另一个bean。

注意

该注解目前仅仅适用于 intshortbyte 类型的字段。

属性解释取值示例
splitPropertyValueIntoNestedBeanField目标属性

用法请参考示例

@SlicedFrom

注意

该注解目前仅仅适用于 intshortbyte 类型的字段。

属性解释取值示例
sourceFieldName源字段名
bitIndex源字段中的第几个bit0
startBitIndex源字段中的起始bit索引1
endBitIndex源字段中的终止bit索引2

用法请参考示例

@ExtraField&@ExtraMsgBody

  • @ExtraField

适用于类似位置附加消息的结构。

属性解释取值示例
startIndex起始字节索引28
length字节数20
byteCountMethod作用和length相同,当length无法直接指定时可根据该属性定义的方法名返回字节数aFieldName
byteCountOfMsgId消息ID占用几个字节1
byteCountOfContentLength表示消息长度的字段占用几个字节1
  • @ExtraMsgBody

用于嵌套的附加信息实体类。

属性解释取值示例
byteCountOfMsgId消息ID占用几个字节1
byteCountOfContentLength表示消息长度的字段占用几个字节1

用法请参考示例