南昌市物联网技防平台-后台
钟日健
2021-02-27 f19d7d458e175b0e4beb8aec96a541dd3e8ced25
体温监测实体类,控制/服务/数据映射层创建
2 files modified
5 files added
189 ■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/controller/AnimalHeatController.java 20 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/entity/BladeAnimalHeat.java 39 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/handle/UdpServerHandler.java 3 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/mapper/AnimalHeatMapper.java 11 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java 92 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/AnimalHeatService.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/impl/AnimalHeatServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/controller/AnimalHeatController.java
New file
@@ -0,0 +1,20 @@
package org.springblade.jfpt.nettyUdpServer.controller;
import lombok.AllArgsConstructor;
import org.springblade.jfpt.nettyUdpServer.service.AnimalHeatService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 体温监测控制层
 * @time 2021-2-25
 */
@RestController
@RequestMapping("animalHeat/animalHeat")
@AllArgsConstructor
public class AnimalHeatController {
    private final AnimalHeatService animalHeatService;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/entity/BladeAnimalHeat.java
New file
@@ -0,0 +1,39 @@
package org.springblade.jfpt.nettyUdpServer.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @title 体温数据表
 * @author  arsn
 * @time 2021-2-25
 */
@Data
@TableName("blade_animal_heat")
public class BladeAnimalHeat implements Serializable {
    private static final long serialVersionUID = 4356978043337357357L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;// bigint(20) NOT NULL COMMENT '主键',
    private Integer method;// int(1) NOT NULL COMMENT '方法名: 0 表示 infrared_aiom_picture 图片数据, 1 表示 engine_echo  心跳包    ',
    private String ip;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备IP地址',
    private String picture;// varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '图片url路径',
    @TableField("picture_red")
    private String pictureRed;// varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外图片url路径',
    @TableField("temp_red")
    private Float tempRed;// float(4,2) DEFAULT NULL COMMENT '当前人员的温度',
    @TableField("person_rect")
    private String personRect;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '人脸位置二位数组,[left,top,right,bottom]',
    @TableField("person_rect_red")
    private String personRectRed;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外人脸位置二位数组,[left,top,right,bottom]',
    @TableField("create_time")
    private Date createTime;// datetime DEFAULT NULL COMMENT '创建时间',
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/handle/UdpServerHandler.java
@@ -1,7 +1,6 @@
package org.springblade.jfpt.nettyUdpServer.handle;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.socket.DatagramPacket;
@@ -11,7 +10,7 @@
import org.springframework.stereotype.Component;
/**
 * Created by wangshikai on 2016/7/18.
 * updHandler udp 服务端数据接收处理
 */
@Component
public class UdpServerHandler extends SimpleChannelInboundHandler<DatagramPacket> {
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/mapper/AnimalHeatMapper.java
New file
@@ -0,0 +1,11 @@
package org.springblade.jfpt.nettyUdpServer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.jfpt.nettyUdpServer.entity.BladeAnimalHeat;
/**
 * mapper 映射层
 *
 */
public interface AnimalHeatMapper extends BaseMapper<BladeAnimalHeat> {
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java
@@ -17,7 +17,7 @@
import java.util.concurrent.Executors;
/**
 * Created by wangshikai on 2016/7/18.
 * updServer udp服务端
 */
public class UdpServer {
    private static Logger LOG = LoggerFactory.getLogger(UdpServer.class);
@@ -73,51 +73,57 @@
    //使用ChannelPipeline实现自定义IO
    //Channel channel;
    public void run() {
        //InetSocketAddress socketAddress = new InetSocketAddress("s16s652780.51mypc.cn", 21403);
        //启动服务
        EventLoopGroup workerGroup = new NioEventLoopGroup();
        //优化使用的线程
        final EventExecutorGroup group = new DefaultEventExecutorGroup(16);
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                //InetSocketAddress socketAddress = new InetSocketAddress("s16s652780.51mypc.cn", 21403);
                //启动服务
                EventLoopGroup workerGroup = new NioEventLoopGroup();
                //优化使用的线程
                final EventExecutorGroup group = new DefaultEventExecutorGroup(16);
        try {
            Bootstrap b = new Bootstrap();//udp不能使用ServerBootstrap
            b.group(workerGroup).channel(NioDatagramChannel.class)//设置UDP通道
                //设置udp的管道工厂
                .handler(new ChannelInitializer<NioDatagramChannel>() {
                    //NioDatagramChannel标志着是UDP格式的
                    @Override
                    protected void initChannel(NioDatagramChannel ch)
                        throws Exception {
                        // TODO Auto-generated method stub
                        //创建一个执行Handler的容器
                        ChannelPipeline pipeline = ch.pipeline();
                        pipeline.addLast(new StringDecoder());
                        pipeline.addLast(new StringEncoder());
                        //执行具体的处理器
                        pipeline.addLast(group, "handler", new UdpServerHandler());//消息处理器
                    }
                try {
                    Bootstrap b = new Bootstrap();//udp不能使用ServerBootstrap
                    b.group(workerGroup).channel(NioDatagramChannel.class)//设置UDP通道
                        //设置udp的管道工厂
                        .handler(new ChannelInitializer<NioDatagramChannel>() {
                            //NioDatagramChannel标志着是UDP格式的
                            @Override
                            protected void initChannel(NioDatagramChannel ch)
                                throws Exception {
                                // TODO Auto-generated method stub
                                //创建一个执行Handler的容器
                                ChannelPipeline pipeline = ch.pipeline();
                                pipeline.addLast(new StringDecoder());
                                pipeline.addLast(new StringEncoder());
                                //执行具体的处理器
                                pipeline.addLast(group, "handler", new UdpServerHandler());//消息处理器
                            }
                })//初始化处理器
                //true / false 多播模式(UDP适用),可以向多个主机发送消息
                .option(ChannelOption.SO_BROADCAST, true)// 支持广播
                .option(ChannelOption.SO_RCVBUF, 2048 * 1024)// 设置UDP读缓冲区为2M
                .option(ChannelOption.SO_SNDBUF, 1024 * 1024);// 设置UDP写缓冲区为1M
                        })//初始化处理器
                        //true / false 多播模式(UDP适用),可以向多个主机发送消息
                        .option(ChannelOption.SO_BROADCAST, true)// 支持广播
                        .option(ChannelOption.SO_RCVBUF, 2048 * 1024)// 设置UDP读缓冲区为2M
                        .option(ChannelOption.SO_SNDBUF, 1024 * 1024);// 设置UDP写缓冲区为1M
            // 绑定端口,开始接收进来的连接
            ChannelFuture f = b.bind(port).sync();
            //获取channel通道
            //channel=f.channel();
            System.out.println("UDP Server 启动!");
            // 等待服务器 socket 关闭 。
            // 这不会发生,可以优雅地关闭服务器。
            f.channel().closeFuture().sync();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            // 优雅退出 释放线程池资源
            group.shutdownGracefully();
            workerGroup.shutdownGracefully();
        }
                    // 绑定端口,开始接收进来的连接
                    ChannelFuture f = b.bind(port).sync();
                    //获取channel通道
                    //channel=f.channel();
                    System.out.println("UDP Server 启动,端口:"+port);
                    // 等待服务器 socket 关闭 。
                    // 这不会发生,可以优雅地关闭服务器。
                    f.channel().closeFuture().sync();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    // 优雅退出 释放线程池资源
                    group.shutdownGracefully();
                    workerGroup.shutdownGracefully();
                }
            }
            });
        thread.start();
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/AnimalHeatService.java
New file
@@ -0,0 +1,7 @@
package org.springblade.jfpt.nettyUdpServer.service;
/**
 * 体温监测服务层接口层
 */
public interface AnimalHeatService {
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/impl/AnimalHeatServiceImpl.java
New file
@@ -0,0 +1,17 @@
package org.springblade.jfpt.nettyUdpServer.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.jfpt.nettyUdpServer.entity.BladeAnimalHeat;
import org.springblade.jfpt.nettyUdpServer.mapper.AnimalHeatMapper;
import org.springblade.jfpt.nettyUdpServer.service.AnimalHeatService;
import org.springframework.stereotype.Service;
@Service
public class AnimalHeatServiceImpl extends ServiceImpl<AnimalHeatMapper, BladeAnimalHeat> implements AnimalHeatService {
    @Override
    public boolean save(BladeAnimalHeat entity) {
        return false;
    }
}