18045010223
2025-07-07 0d3a683a0c97154b1f2e6657398664537e4e3e82
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package org.yzh.protocol.commons.transform;
 
import io.github.yezhihao.protostar.PrepareLoadStrategy;
import io.github.yezhihao.protostar.schema.ArraySchema;
import io.github.yezhihao.protostar.schema.MapSchema;
import io.github.yezhihao.protostar.schema.NumberSchema;
import io.github.yezhihao.protostar.schema.StringSchema;
import org.yzh.protocol.commons.transform.parameter.*;
 
/**
 * 终端参数项转换器
 * @author yezhihao
 * https://gitee.com/yezhihao/jt808-server
 */
public class ParameterConverter extends MapSchema<Number, Object> {
 
    public ParameterConverter() {
        super(NumberSchema.DWORD_INT, 1);
    }
 
    @Override
    protected void addSchemas(PrepareLoadStrategy<Number> schemaRegistry) {
        schemaRegistry
                .addSchema(0x0001, NumberSchema.DWORD_LONG)//终端心跳发送间隔,单位为秒(s)
                .addSchema(0x0002, NumberSchema.DWORD_LONG)//TCP消息应答超时时间,单位为秒(s)
                .addSchema(0x0003, NumberSchema.DWORD_LONG)//TCP消息重传次数
                .addSchema(0x0004, NumberSchema.DWORD_LONG)//UDP消息应答超时时间,单位为秒(s)
                .addSchema(0x0005, NumberSchema.DWORD_LONG)//UDP消息重传次数
                .addSchema(0x0006, NumberSchema.DWORD_LONG)//SMS消息应答超时时间,单位为秒(s)
                .addSchema(0x0007, NumberSchema.DWORD_LONG)//SMS消息重传次数
 
                .addSchema(0x0010, StringSchema.GBK)//主服务器APN,无线通信拨号访问点.若网络制式为CDMA,则该处为PPP拨号号码
                .addSchema(0x0011, StringSchema.GBK)//主服务器无线通信拨号用户名
                .addSchema(0x0012, StringSchema.GBK)//主服务器无线通信拨号密码
                .addSchema(0x0013, StringSchema.GBK)//主服务器地址,IP或域名
                .addSchema(0x0014, StringSchema.GBK)//备份服务器APN,无线通信拨号访问点
                .addSchema(0x0015, StringSchema.GBK)//备份服务器无线通信拨号用户名
                .addSchema(0x0016, StringSchema.GBK)//备份服务器无线通信拨号密码
                .addSchema(0x0017, StringSchema.GBK)//备份服务器地址,IP或域名(2019版以冒号分割主机和端口,多个服务器使用分号分隔)
                .addSchema(0x0018, NumberSchema.DWORD_LONG)//服务器TCP端口(2013版)
                .addSchema(0x0019, NumberSchema.DWORD_LONG)//服务器UDP端口(2013版)
 
 
                .addSchema(0x001A, StringSchema.GBK)//道路运输证IC卡认证主服务器IP地址或域名
                .addSchema(0x001B, NumberSchema.DWORD_LONG)//道路运输证IC卡认证主服务器TCP端口
                .addSchema(0x001C, NumberSchema.DWORD_LONG)//道路运输证IC卡认证主服务器UDP端口
                .addSchema(0x001D, StringSchema.GBK)//道路运输证IC卡认证主服务器IP地址或域名,端口同主服务器
 
                .addSchema(0x0020, NumberSchema.DWORD_LONG)//位置汇报策略:0.定时汇报 1.定距汇报 2.定时和定距汇报
                .addSchema(0x0021, NumberSchema.DWORD_LONG)//位置汇报方案:0.根据ACC状态 1.根据登录状态和ACC状态,先判断登录状态,若登录再根据ACC状态
                .addSchema(0x0022, NumberSchema.DWORD_LONG)//驾驶员未登录汇报时间间隔,单位为秒(s),>0
 
                //JT808 2019
                .addSchema(0x0023, StringSchema.GBK)//从服务器APN.该值为空时,终端应使用主服务器相同配置
                .addSchema(0x0024, StringSchema.GBK)//从服务器无线通信拨号用户名.该值为空时,终端应使用主服务器相同配置
                .addSchema(0x0025, StringSchema.GBK)//从服务器无线通信拨号密码.该值为空时,终端应使用主服务器相同配置
                .addSchema(0x0026, StringSchema.GBK)//从服务器备份地址、IP或域名.主服务器IP地址或域名,端口同主服务器
                //JT808 2019
 
                .addSchema(0x0027, NumberSchema.DWORD_LONG)//休眠时汇报时间间隔,单位为秒(s),>0
                .addSchema(0x0028, NumberSchema.DWORD_LONG)//紧急报警时汇报时间间隔,单位为秒(s),>0
                .addSchema(0x0029, NumberSchema.DWORD_LONG)//缺省时间汇报间隔,单位为秒(s),>0
 
                .addSchema(0x002C, NumberSchema.DWORD_LONG)//缺省距离汇报间隔,单位为米(m),>0
                .addSchema(0x002D, NumberSchema.DWORD_LONG)//驾驶员未登录汇报距离间隔,单位为米(m),>0
                .addSchema(0x002E, NumberSchema.DWORD_LONG)//休眠时汇报距离间隔,单位为米(m),>0
                .addSchema(0x002F, NumberSchema.DWORD_LONG)//紧急报警时汇报距离间隔,单位为米(m),>0
                .addSchema(0x0030, NumberSchema.DWORD_LONG)//拐点补传角度,<180°
                .addSchema(0x0031, NumberSchema.WORD_INT)//电子围栏半径,单位为米
                //JT808 2019
                .addSchema(0x0032, TimeRange.class)//违规行驶时段范围,精确到分
 
                .addSchema(0x0040, StringSchema.GBK)//监控平台电话号码
                .addSchema(0x0041, StringSchema.GBK)//复位电话号码,可采用此电话号码拨打终端电话让终端复位
                .addSchema(0x0042, StringSchema.GBK)//恢复出厂设置电话号码,可采用此电话号码拨打终端电话让终端恢复出厂设置
                .addSchema(0x0043, StringSchema.GBK)//监控平台SMS电话号码
                .addSchema(0x0044, StringSchema.GBK)//接收终端SMS文本报警号码
                .addSchema(0x0045, NumberSchema.DWORD_LONG)//终端电话接听策略,0.自动接听 1.ACC ON时自动接听,OFF时手动接听
                .addSchema(0x0046, NumberSchema.DWORD_LONG)//每次最长通话时间,单位为秒(s),0为不允许通话,0xFFFFFFFF为不限制
                .addSchema(0x0047, NumberSchema.DWORD_LONG)//当月最长通话时间,单位为秒(s),0为不允许通话,0xFFFFFFFF为不限制
                .addSchema(0x0048, StringSchema.GBK)//监听电话号码
                .addSchema(0x0049, StringSchema.GBK)//监管平台特权短信号码
 
                .addSchema(0x0050, NumberSchema.DWORD_LONG)//报警屏蔽字.与位置信息汇报消息中的报警标志相对应,相应位为1则相应报警被屏蔽
                .addSchema(0x0051, NumberSchema.DWORD_LONG)//报警发送文本SMS开关,与位置信息汇报消息中的报警标志相对应,相应位为1则相应报警时发送文本SMS
                .addSchema(0x0052, NumberSchema.DWORD_LONG)//报警拍摄开关,与位置信息汇报消息中的报警标志相对应,相应位为1则相应报警时摄像头拍摄
                .addSchema(0x0053, NumberSchema.DWORD_LONG)//报警拍摄存储标志,与位置信息汇报消息中的报警标志相对应,相应位为1则对相应报警时牌的照片进行存储,否则实时长传
                .addSchema(0x0054, NumberSchema.DWORD_LONG)//关键标志,与位置信息汇报消息中的报警标志相对应,相应位为1则对相应报警为关键报警
                .addSchema(0x0055, NumberSchema.DWORD_LONG)//最高速度,单位为公里每小时(km/h)
                .addSchema(0x0056, NumberSchema.DWORD_LONG)//超速持续时间,单位为秒(s)
                .addSchema(0x0057, NumberSchema.DWORD_LONG)//连续驾驶时间门限,单位为秒(s)
                .addSchema(0x0058, NumberSchema.DWORD_LONG)//当天累计驾驶时间门限,单位为秒(s)
                .addSchema(0x0059, NumberSchema.DWORD_LONG)//最小休息时间,单位为秒(s)
                .addSchema(0x005A, NumberSchema.DWORD_LONG)//最长停车时间,单位为秒(s)
 
                .addSchema(0x005B, NumberSchema.WORD_INT)//超速预警差值
                .addSchema(0x005C, NumberSchema.WORD_INT)//疲劳驾驶预警插值
                .addSchema(0x005D, NumberSchema.WORD_INT)//碰撞报警参数
                .addSchema(0x005E, NumberSchema.WORD_INT)//侧翻报警参数
 
                .addSchema(0x0064, NumberSchema.DWORD_LONG)//定时拍照参数
                .addSchema(0x0065, NumberSchema.DWORD_LONG)//定距拍照参数
 
                .addSchema(0x0070, NumberSchema.DWORD_LONG)//图像/视频质量,1~10,1最好
                .addSchema(0x0071, NumberSchema.DWORD_LONG)//亮度,0~255
                .addSchema(0x0072, NumberSchema.DWORD_LONG)//对比度,0~127
                .addSchema(0x0073, NumberSchema.DWORD_LONG)//饱和度,0~127
                .addSchema(0x0074, NumberSchema.DWORD_LONG)//色度,0~255
 
                //JT1078 start
                .addSchema(ParamVideo.key, ParamVideo.class)//音视频参数设置,描述见表2
                .addSchema(ParamChannels.key, ParamChannels.SCHEMA)//音视频通道列表设置,描述见表3
                .addSchema(ParamVideoSingle.key, ParamVideoSingle.SCHEMA)//单独视频通道参数设置,描述见表5
                .addSchema(ParamVideoSpecialAlarm.key, ParamVideoSpecialAlarm.class)//特殊报警录像参数设置,描述见表7
                .addSchema(0x007A, NumberSchema.DWORD_LONG)//视频相关报警屏蔽字,和表13的视频报警标志位定义相对应,相应位为1则相应类型的报警被屏蔽
                .addSchema(ParamImageIdentifyAlarm.key, ParamImageIdentifyAlarm.class)// 图像分析报警参数设置描述见表8
                .addSchema(ParamSleepWake.key, ParamSleepWake.class)//终端休眠唤醒模式设置,描述见表9
                //JT1078 end
 
                .addSchema(0x0080, NumberSchema.DWORD_LONG)//车辆里程表读数,1/10km
                .addSchema(0x0081, NumberSchema.WORD_INT)//车辆所在的省域ID
                .addSchema(0x0082, NumberSchema.WORD_INT)//车辆所在的市域ID
                .addSchema(0x0083, StringSchema.GBK)//公安交通管理部门颁发的机动车号牌
                .addSchema(0x0084, NumberSchema.BYTE_INT)//车牌颜色,按照JT/T415-2006的5.4.12
 
                .addSchema(0x0090, NumberSchema.BYTE_INT)//定位模式
                .addSchema(0x0091, NumberSchema.BYTE_INT)//波特率
                .addSchema(0x0092, NumberSchema.BYTE_INT)//模块详细定位数据输出频率
                .addSchema(0x0093, NumberSchema.DWORD_LONG)//模块详细定位数据采集频率,单位为秒,默认为1
                .addSchema(0x0094, NumberSchema.BYTE_INT)//模块详细定位数据上传方式
                .addSchema(0x0095, NumberSchema.DWORD_LONG)//模块详细定位数据上传设置
                .addSchema(0x0100, NumberSchema.DWORD_LONG)//总线通道1 采集时间间隔(ms),0 表示不采集
                .addSchema(0x0101, NumberSchema.WORD_INT)//总线通道1 上传时间间隔(s),0 表示不上传
                .addSchema(0x0102, NumberSchema.DWORD_LONG)//总线通道2 采集时间间隔(ms),0 表示不采集
                .addSchema(0x0103, NumberSchema.WORD_INT)//总线通道2 上传时间间隔(s),0 表示不上传
                .addSchema(0x0110, ArraySchema.BYTES)//总线ID 单独采集设置
 
                //JSATL12 start
                .addSchema(ParamADAS.key, ParamADAS.class)//高级驾驶辅助系统参数,见表4-10
                .addSchema(ParamDSM.key, ParamDSM.class)//驾驶员状态监测系统参数,见表4-11
                .addSchema(ParamTPMS.key, ParamTPMS.class)//胎压监测系统参数,见表4-12
                .addSchema(ParamBSD.key, ParamBSD.class)//盲区监测系统参数,见表4-13
                //粤标
                .addSchema(0xF370, NumberSchema.BYTE_INT)//智能视频协议版本信息,引入此智能视频协议版本信息方便平台进行版本控制初始版本是1,每次修订版本号都会递增(注:只支持获取,不支持设置)
        ;
    }
}