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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
package org.yzh.client;
 
import io.github.yezhihao.netmc.core.annotation.Endpoint;
import io.github.yezhihao.netmc.core.annotation.Mapping;
import lombok.extern.slf4j.Slf4j;
import org.yzh.protocol.basics.JTMessage;
import org.yzh.protocol.commons.JT808;
import org.yzh.protocol.t808.*;
 
import java.util.concurrent.atomic.AtomicInteger;
 
import static org.yzh.protocol.commons.JT808.*;
 
/**
 * @author yezhihao
 * https://gitee.com/yezhihao/jt808-server
 */
@Slf4j
@Endpoint
public class JTClientEndpoint {
 
    private AtomicInteger serialNo = new AtomicInteger();
 
    private String mobileNo = "20232500220";
 
    @Mapping(types = 平台通用应答, desc = "平台通用应答")
    public void 平台通用应答(T0001 message) {
    }
 
    @Mapping(types = 服务器补传分包请求, desc = "服务器补传分包请求")
    public T0001 服务器补传分包请求(T8003 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 查询服务器时间应答, desc = "查询服务器时间应答")
    public T0001 查询服务器时间应答(T8004 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 终端注册应答, desc = "终端注册应答")
    public T0001 终端注册应答(T8100 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 设置终端参数, desc = "设置终端参数")
    public T0001 设置终端参数(T8103 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 查询终端参数, desc = "查询终端参数")
    public T0001 查询终端参数(JTMessage message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 终端控制, desc = "终端控制")
    public T0001 终端控制(T8105 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 查询指定终端参数, desc = "查询指定终端参数")
    public T0001 查询指定终端参数(T8106 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 查询终端属性, desc = "查询终端属性")
    public T0001 查询终端属性(T0107 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 下发终端升级包, desc = "下发终端升级包")
    public T0001 下发终端升级包(T8108 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 位置信息查询, desc = "位置信息查询")
    public T0200 位置信息查询(JTMessage message) {
        return ClientTest.T0200("1");
    }
 
    @Mapping(types = 临时位置跟踪控制, desc = "临时位置跟踪控制")
    public T0001 临时位置跟踪控制(T8202 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 人工确认报警消息, desc = "人工确认报警消息")
    public T0001 人工确认报警消息(T8203 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 服务器向终端发起链路检测请求, desc = "服务器向终端发起链路检测请求")
    public T0001 服务器向终端发起链路检测请求(JTMessage message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 文本信息下发, desc = "文本信息下发")
    public T0001 文本信息下发(T8300 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 事件设置, desc = "事件设置")
    public T0001 事件设置(T8301 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 提问下发, desc = "提问下发")
    public T0001 提问下发(T8302 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 信息点播菜单设置, desc = "信息点播菜单设置")
    public T0001 信息点播菜单设置(T8303 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 信息服务, desc = "信息服务")
    public T0001 信息服务(T8304 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 电话回拨, desc = "电话回拨")
    public T0001 电话回拨(T8400 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 设置电话本, desc = "设置电话本")
    public T0001 设置电话本(T8401 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 车辆控制, desc = "车辆控制")
    public T0001 车辆控制(T8500 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = {删除圆形区域, 删除矩形区域, 删除多边形区域, 删除路线,}, desc = "删除圆形区域")
    public T0001 删除圆形区域(T8601 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 设置圆形区域, desc = "设置圆形区域")
    public T0001 设置圆形区域(T8600 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
 
    @Mapping(types = 设置矩形区域, desc = "设置矩形区域")
    public T0001 设置矩形区域(T8602 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 设置多边形区域, desc = "设置多边形区域")
    public T0001 设置多边形区域(T8604 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 设置路线, desc = "设置路线")
    public T0001 设置路线(T8606 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 查询区域或线路数据, desc = "查询区域或线路数据")
    public T0001 查询区域或线路数据(T8608 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 行驶记录仪数据采集命令, desc = "行驶记录仪数据采集命令")
    public T0001 行驶记录仪数据采集命令(JTMessage message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 行驶记录仪参数下传命令, desc = "行驶记录仪参数下传命令")
    public T0001 行驶记录仪参数下传命令(T8701 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 上报驾驶员身份信息请求, desc = "上报驾驶员身份信息请求")
    public T0001 上报驾驶员身份信息请求(JTMessage message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 多媒体数据上传应答, desc = "多媒体数据上传应答")
    public T0001 多媒体数据上传应答(T8800 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 摄像头立即拍摄命令, desc = "摄像头立即拍摄命令")
    public T0001 摄像头立即拍摄命令(T8801 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 存储多媒体数据检索, desc = "存储多媒体数据检索")
    public T0001 存储多媒体数据检索(T8802 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 存储多媒体数据上传, desc = "存储多媒体数据上传")
    public T0001 存储多媒体数据上传(T8803 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 录音开始命令, desc = "录音开始命令")
    public T0001 录音开始命令(T8804 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 单条存储多媒体数据检索上传命令, desc = "单条存储多媒体数据检索上传命令")
    public T0001 单条存储多媒体数据检索上传命令(T8805 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 数据下行透传, desc = "数据下行透传")
    public T0001 数据下行透传(T8900 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    @Mapping(types = 平台RSA公钥, desc = "平台RSA公钥")
    public T0001 平台RSA公钥(T0A00_8A00 message) {
        T0001 result = buildResult(message, T0001.Success);
        return result;
    }
 
    private T0001 buildResult(JTMessage message, int resultCode) {
        T0001 result = new T0001();
        result.copyBy(message);
        result.setMessageId(JT808.终端通用应答);
        result.setClientId(mobileNo);
        result.setSerialNo(serialNo.addAndGet(1));
 
        result.setResponseSerialNo(message.getSerialNo());
        result.setResponseMessageId(message.getMessageId());
        result.setResultCode(resultCode);
        return result;
    }
}