UDP端口接收到的字节流如何转为QJsonObject、QJsonArray的方法

news/2024/5/18 16:08:48 标签: udp, 网络协议, 网络
//配置应答--检测点设置写文件
                    if(p9==0x03){
                        //需要注意:json对象中的[]应转成JsonArray,{}应转成JsonObject,p10是json字符串
                        QJsonDocument jsonDocument = QJsonDocument::fromJson(p10);//从传入的json字符串中生成一个json文件
                        QJsonObject convertedJsonObject = jsonDocument.object();//从json文件中转成json对象
                        QJsonArray p_Object = convertedJsonObject["pointsArray"].toArray();//从json对象中取到jsonArray
                        
                        for(int i=1;i<=SUPPORTED_MAX_POINTS_PERCAMERA;i++){
                            paramsPoint point;//根据接收的修改后的配置文件创建一个类并更新
                            
                            QJsonObject p_sub_Object = p_Object.at(i-1).toObject();
                            
                            point.setX(p_sub_Object["x"].toInt());//设置主检测点坐标x
                            point.setY(p_sub_Object["y"].toInt());//设置主检测点坐标y
                            point.setName(p_sub_Object["name"].toString());//设置检测点名称
                            point.setValid(p_sub_Object["valid"].toInt());//设置主检测点是否有效
                            point.setSubValid(p_sub_Object["subvalid"].toInt());//设置辅检测点是否有效
                            
                            // 获取subpoint对象
                            paramsSubPoint params_sub_point;
                            QJsonObject sub_point_Object = p_sub_Object["subpoint"].toObject();
                            params_sub_point.setX(sub_point_Object["x"].toInt());
                            params_sub_point.setY(sub_point_Object["y"].toInt());
                            point.setSubpoint(params_sub_point);//设置辅检测点:subpoint
                            
                            // 获取Channel4U对象
                            params4UDirection params_chnnel_4u;
                            QJsonObject chnnel_4u_Object = p_sub_Object["channel4U"].toObject();
                            params_chnnel_4u.setChannel(chnnel_4u_Object["channel"].toInt());
                            params_chnnel_4u.setDirection(chnnel_4u_Object["direction"].toInt());
                            point.setChannel4U(params_chnnel_4u);//设置4U通道:Channel4U
                            
                            point.setChannelNo(p_sub_Object["channelNo"].toInt());//设置通道号
                            
                            // 获取PointType对象
                            paramsChannelType params_PointType;
                            QJsonObject ChannelType_Object = p_sub_Object["pointtype"].toObject();
                            params_PointType.setGoChannel(p_sub_Object["go"].toInt(),p_sub_Object["goEN"].toInt());
                            params_PointType.setLeftChannel(p_sub_Object["left"].toInt(),p_sub_Object["leftEN"].toInt());
                            params_PointType.setLeftChannel(p_sub_Object["right"].toInt(),p_sub_Object["rightEN"].toInt());
                            point.setPointtype(params_PointType);//设置检测点类型:pointType
                            
                            point.setRedLightX(p_sub_Object["redlightx"].toInt());//红灯坐标x
                            point.setRedLightY(p_sub_Object["redlighty"].toInt());//红灯坐标y
                            point.setSpecValid(p_sub_Object["specvalid"].toInt());//帧差轮廓专用点是否有效
                            
                            paramsSpecPoint params_spec_point;
                            QJsonObject spec_point_Object = p_sub_Object["specpoint"].toObject();
                            params_spec_point.setX(spec_point_Object["x"].toInt());
                            params_spec_point.setX(spec_point_Object["y"].toInt());
                            point.setSpecpoint(params_spec_point);//设置专用点坐标:spec_point
                            
                            point.setQueueValid(p_sub_Object["queue"].toInt());//设置是否计算排队长度
                            point.setCheckmethod(p_sub_Object["checkmethod"].toInt());//设置检车算法
                            point.setGreenLightX(p_sub_Object["greenlightx"].toInt());//设置绿灯坐标x
                            point.setGreenLightY(p_sub_Object["greenlighty"].toInt());//设置绿灯坐标y
                            point.setGreenLessInterval(p_sub_Object["greenLessInterval"].toInt());//设置绿损间隔
                            gCarDetectorParams.configParams.getCamera(camId)->setPoint(i,point);//依次更新各检测点的参数
                        }
                        gCarDetectorParams.saveparam();//最后更新配置文件
                    }

http://www.niftyadmin.cn/n/5200167.html

相关文章

centos7 安装node.js,不用wget也不用解压文件

更新系统&#xff1a;首先&#xff0c;更新系统的软件包列表和已安装的软件包。在终端中以root用户或具有sudo权限的用户身份运行以下命令&#xff1a; sudo yum update添加Node.js源&#xff1a;CentOS 7默认的软件仓库中可能不包含最新的Node.js版本。因此&#xff0c;我们需…

【教程】Sqlite迁移到mysql(django)

1、先将sqlite db文件导出sql sqlite3 db.sqlite3 .dump>output.sql db.sqlite3 是 sqlite 数据库文件 output.sql是导出sql文件的名称 2、sql文件转换、处理 sed s/AUTOINCREMENT/AUTO_INCREMENT/g output.sql | sed s/datetime/timestamp/g | sed s/INTEGER/int/g &g…

3D 纹理渲染如何帮助设计师有效、清晰地表达设计理念

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 定义 3D 渲染可视化及其用途 3D 可视化是一种艺术形式。这是一个机会。这是进步。借助 3D 纹理…

深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

了解JVM的相关概述,发现很多全忘了(文末福利)

1、学之前存在的问题 1、你被JVM伤害过吗&#xff1f; 你是否也遇到过这些问题&#xff1f; 运行着的线上系统突然卡死&#xff0c;系统无法访问&#xff0c;甚至直接OOM&#xff01;想解决线上JVM GC问题&#xff0c;但却无从下手。新项目上线&#xff0c;对各种JVM参数设置一…

Oracle-分析函数(累计求和,排序等)

在Oracle中分析函数又称为开窗函数 分为以下两类&#xff1a; 第一类&#xff1a;是聚合分析函数&#xff0c;主要包含&#xff08;sum&#xff0c;count&#xff0c;AVG、MAX、MIN等&#xff09;&#xff0c;主要是对内部分组的数值按照要求内部聚合处理&#xff1b; 第二类&a…

Linux fork和vfork函数用法

fork和vfork是用于创建新进程的函数&#xff0c;在Linux的C语言编程中非常常见。 fork函数 fork函数是用于创建一个新的进程&#xff0c;新进程是调用进程的副本。新进程将包含调用进程的地址空间、文件描述符、栈和数据。在fork之后&#xff0c;父进程和子进程将并发执行。 …

Java WebSocket 获取客户端 IP 地址

在开发 Web 应用程序时&#xff0c;我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作。当使用 WebSocket 协议时&#xff0c;我们可以使用 Java WebSocket API 来获取客户端的 IP 地址。 本文将介绍如何使用 Java WebSocket API 获取客户端 IP 地址&a…