IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> UWB人员定位 UDP协议位置报文display解析示例java代码 -> 正文阅读

[网络协议]UWB人员定位 UDP协议位置报文display解析示例java代码

package Jiexi;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**UDP接收解析display位置报文示例代码
 * @author 北京华星智控
 * 不同于TCP的三次握手建立连接、四次挥手释放连接,UDP协议的通信双方随时可以互相发送数据
 * UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。
 * */
public class Dell_display   implements Runnable {

	//UDP套接字
	static DatagramSocket socket;

	//UDP报文接收端口,根据自己的实际需要修改数据监听端口
	int port=8000;

	//数据包
	DatagramPacket packet;

	public  Dell_display() throws NumberFormatException, IOException{
		socket = new DatagramSocket(port);		
		byte[] data = new byte[1024]; // 创建byte数组
		packet= new DatagramPacket(data, data.length);

	}


	/**启动线程的方法*/
	public void startThread() {
		Thread t=new Thread(this);
		t.start();
	}


	/**while循环接收报文数据*/
	public void run() {
		while(true) {
			try {		
				// 接收数据包
				socket.receive(packet); 
				//接收到的数据长度
				int lenth=packet.getLength();
				//获取发送端的IP地址对象
				String ip=packet.getAddress().getHostAddress();
				//发送端的发送端口
				int port=packet.getPort();
				//接收到的数据内容
				String message=new String(packet.getData(), 0, lenth);

				//如果数据是display开头的则处理
				if(message.startsWith("display")) {
					//调用处理报文方法
					dell_display(ip, port,message);
				}

			} catch (Exception e) {
				e.printStackTrace(); // 输出异常信息
			}
		}
	}

	/**处理display开头的报文数据方法
	 * @param ip地址
	 * @param port接收端口
	 * @param message报文内容
	 * 标签实时位置display  UWB标签上传的位置报文
	 * display,[lenth],[tagid],[baoxu],[timestamp],[layer],[x],[y],[z], [vbat],[state],[sos],[mark]
	 * 示例:
	 * display,68,0001,32697,2021-09-02 15:06:12.353,0,637,213,150,23,1,0,1
	 * display,68,0001,32699,2021-09-02 15:06:12.480,0,637,214,150,23,1,0,1
	 * 报文说明:
	 * 1	display:包头
	 * 2	[length]:报文长度
	 * 3	[tagid] :标签的ID号,唯一编号
	 * 4	[baoxu] :包序(0~65535循环)
	 * 5	[timestamp] :时间戳(这条报文发出的时间)
	 * 6	[layer] :标签所在的层
	 * 7	[x] :标签的X坐标,单位厘米
	 * 8	[y] :标签的Y坐标,单位厘米
	 * 9	[z] :标签的Z坐标,单位厘米
	 * 10	[vbat] :标签的电量信息,(0~100)
	 * 11	[state] :标签的状态,静止为1,运动为0
	 * 12	[sos] :标签的SOS按键状态,按下为1,没有按下为0
	 * 13	[mark] :标志位,区别从哪个引擎上传数据,适用于多个项目传入一个平台,默认为0
	 * */
	@SuppressWarnings("unused")
	public static void dell_display(String ip,int port,String message) {
		String[] dis=message.split(",");//用英文逗号分割字符串
		String start=dis[0];//报文头
		String lenth=dis[1];//报文长度
		String tagid=dis[2];//标签ID		
		String baoxu=dis[3];//包序
		String timestamp=dis[4];//时间戳		
		String floor=dis[5];//标签所在的层		
		String posx=dis[6];//标签的X坐标
		String posy=dis[7];//标签的y坐标
		String posz=dis[8];//标签的z坐标
		String vbat=dis[9];//标签的电量
		String state=dis[10];//标签状态IMU传感器状态,静止为1,运动为0
		String sos=dis[11];//标签的SOS按键状态,按下为1,没有按下为0
		String mark=dis[12];//标志位,区别从哪个引擎上传数据,适用于多个项目传入一个平台,默认为0

		//调用你的程序处理方法
		do_your_method(
				tagid,
				timestamp,
				floor,
				posx,
				posy,
				posz,
				vbat,
				state,
				sos,
				mark
				);

	}

	/**你自己的处理方法*/
	public static void do_your_method(
			String tagid,
			String timestamp,
			String floor,
			String posx,
			String posy,
			String posz,
			String vbat,
			String state,
			String sos,
			String mark
			) {
		//你的程序内容
	}


}

UWBLOC定位系统,采用无线脉冲技术,实现对工业厂区人员、物资、车辆实现精准的定位,定位精度优于30厘米,通过在定位现场布设定位基站,需要被定位的目标对象佩戴定位标签,从而实现对目标对象的实时精确定位,基于此可以拓展各种功能,实现对人员、物资、车辆的智慧管控,实现丰富的功能应用。

整个定位系统由3部分组成,1、是数据采集层(包括定位标签和定位基站);2、数据传输层;3、是数据处理层(主要包括服务器和定位平台软件)组成。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:36:22  更:2021-09-18 10:37:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 2:07:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码