车载GPS设备对接java记录

车载GPS设备对接java记录

公司一个项目需要系统与车载GPS设备对接,获取设备的坐标和看到设备的监控视频画面,对接过程在此简单的记录一下(本文只涉及最简单的基础,深入的本人一点都没有进行研究)

涉及到的知识

本次设备设备对接涉及到的知识有:JT1078JT808kafka;jt1078和jt808我是从GitHub上找的开源代码,如果说对这部分很熟悉的可以自己写。

JT1078:流媒体服务器,用于接收、处理车载GPS设备推送过来的视频流,并展示出来

JT808:用于接收、解析车载GPS推送过来的坐标信息,向指定的设备发送查看视频的指令

kafka:jt808获取车载GPS设备坐标的时候推送到kafka,系统通过kafka获取坐标。jt1078、jt808没有跟系统结合在一块,是独立出来的两个小程序

工作流程

1、对车载GPS设备设置数据推送服务器IP(JT808),视频流数据推送服务器IP(JT1078)
2、JT808拿到数据根据协议进行解析,获取车载GPS坐标,将坐标数据推送给kafka(包含设备ID)
3、系统从kafka获取坐标数据,将数据存储到对应的数据库
4、系统对某个设备点击播放视频,将设备ID传输给JT808指定的接口,此接口给设备发送查看视频指令,车载GPS设备将视频流数据推送给JT1078,系统调用JT1078的显示视频的页面进行查看

详细流程步骤

一、对车载GPS设备设置JT808连接:设置JT808服务器的IP和端口号

在这里插入图片描述
备注:本人用的是中心3协议,部标2。其余没做研究

二、对车载GPS设备设置JT1078连接:设置JT1078服务器的IP和端口(从上图点击FTP设置进去)
在这里插入图片描述
备注:本人只修改了IP和端口,其余没做修改

三、JT808配置kafka
1、pom文件引入

	<dependency>
       <groupId>org.springframework.kafka</groupId>
       <artifactId>spring-kafka</artifactId>
    </dependency>
    <dependency>
       <groupId>org.apache.kafka</groupId>
       <artifactId>kafka-streams</artifactId>
    </dependency>

2、kafka配置

spring:
  kafka:
    bootstrap-servers: kafkaIP和端口
    producer:
      # broker回复发布确认的方式
      acks: all
      # 当发送失败时重试几次
      retries: 0
      # Producer是采用批量的方式来提高发送的吞吐量量的,这里指定批大小,单位字节
      batch-size: 16384
      # 存放数据的buffer的大小
      buffer-memory: 33554432
      # 消息数据的序列化器
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
    consumer:
      # 设置消费组
      group-id: jt808-consumer-group
      # 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
      auto-offset-reset: earliest
      # 如果此值设置为true,consumer会周期性的把当前消费的offset值保存到zookeeper。当consumer失败重启之后将会使用此值作为新开始消费的值
      enable-auto-commit: true
      # 自动消费offset提交的间隔时间
      auto-commit-interval: 1000

四、JT808发送数据,将获取的数据通过kafka推送到指定的topic
在这里插入图片描述
五、JT808发送查看视频指令
在这里插入图片描述
备注:系统调用指定的接口,传入设备ID即可

    @ApiOperation(value = "视频实时播放", tags = "其他")
    @PostMapping("video")
    public T9101 video(@ApiParam("终端手机号") @RequestParam String clientId) {
        T9101 request = new T9101();
        request.setHeader(new Header(clientId, JT808.视频实时播放));
        request.setIp("223.83.4.94");
        request.setTcpPort(1078);
        request.setUdpPort(0);
        request.setChannelNo(1);
        request.setDataType(1);
        request.setStreamType(0);
        T9101 response = messageManager.request(request, T9101.class);
        return response;
    }

六、JT1078播放视频
在这里插入图片描述
备注:在浏览器里打开http://localhost:3333/test/multimedia#SIM-CHANNEL (注意替换掉后面的SIM和CHANNEL,即终端的SIM卡号,不足12位前面补0,CHANNEL即为通道号)

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页