代码拉取完成,页面将自动刷新
同步操作将从 衷于栖/中国交通标准808协议解析二次开发包 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
这个二次开发包是基于作者之前做过项目的源码改造的,那个时候使用不是很标准,仅仅是解析车辆定位数据, 并没有实现所有的内容。现在有时间终于可以重构一下原来的项目源码。
下面是基于maven简短的开发使用步骤,详细还请访问直播录屏
<dependency>
<groupId>com.zhoyq</groupId>
<artifactId>spring-boot-starter-jt808</artifactId>
<version>1.2.2</version>
</dependency>
@EnableJt808Server
注解。@SpringBootApplication
@EnableJt808Server
public class Application {
public static void main (String[] args) {
var app = new SpringApplication(Application.class);
// 不使用web容器 仅启动jt808服务
app.setWebApplicationType(WebApplicationType.NONE);
app.run(args);
}
}
import com.zhoyq.server.jt808.starter.service.DataService;
@Component
public class SimpleDataService implements DataService
application.yml
中添加配置:jt808:
enabled: true
use: mina
protocol: tcp
port: 10001
processCount: 2
corePoolSize: 1
maximumPoolSize: 10
# 单位毫秒
keepAliveTime: 1000
# 单位秒
idleTime: 10
idleCount: 6
readBufferSize: 2048
packageLength: 1024
threadCorePoolSize: 1
threadMaximumPoolSize: 10
# 单位毫秒
threadKeepAliveTime: 1000
masterSize: 1
slaveSize: 10
tcpNoDelay: true
keepAlive: true
建议使用 mina 配置,因为作者之前写的工程就是基于 mina 写的,当然我也写了 netty 的版本。
至此,启动程序,祝生活愉快。
因为很多时候处理逻辑并不是那么严谨,还是有需要自定义一些常规逻辑所以开放了对于单条命令的扩展方式,本节目标是使用自定义心跳包扩展,放弃原有心跳包逻辑定义。 只需要定义一个类即可,如下:
import com.zhoyq.server.jt808.starter.core.Jt808Pack;
import com.zhoyq.server.jt808.starter.core.PackHandler;
import com.zhoyq.server.jt808.starter.helper.ResHelper;
import lombok.extern.slf4j.Slf4j;
/**
* 0x0002 终端心跳
*/
@Slf4j
@Jt808Pack(msgId = 0x0002)
public class HeartbeatPackHandler implements PackHandler {
@Override
public byte[] handle(byte[] phoneNum, byte[] streamNum, byte[] msgId, byte[] msgBody) {
log.info("new heartbeat.");
return ResHelper.getPlatAnswer(phoneNum, streamNum, msgId, (byte) 0x00);
}
}
当然,应答需要自己组织,开发包里也提供了工具类 ResHelper
,只要定义好类,实现 PackHandler
接口并且使用 @Jt808Pack
注解即可。
当然也可以使用这种方式定义协议之外的消息,比如使用保留的消息位定义用户自己的消息类型。
注意:鉴权的逻辑还没有开放,未鉴权只能访问终端注册和终端鉴权两个包处理器。
二次开发包使用 MIT 授权,大家随便用~
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。