gici-open学习日记(5):runMeasurementAddin函数引申——初始化

gici-open学习日记——初始化 回顾GNSS/INS初始化初始化器的观测量添加`addGnssSolutionMeasurement` `optimize()`优化 GNSS/INS初始化补充1:`RtkEstimator`流程`SppEstimator::addGnssMeasurementAndState` 视觉初始化`FeatureHandler::initializeLandmarks``addImageMeasurementAndState` 总结 回顾 能进行到具体状态估计初始化的这步,是在具体的addMeasurement这个函数中,关于具体怎么调用到这个函数以及这个函数的其他作用,可以看我的上一篇博客runMeasurementAddin线程 ,这里看上去是分开进行了GNSS/IMU的初始化和视觉的初始化 这篇文章有大量的内容涉及到GNSS、IMU的具体解算和知识,如SPP、RTK以及预积分等,这些内容的具体原理会放在之后的博客,这里只是梳理一下流程 GNSS/INS初始化 首先关注一个变量,gnss_imu_initializer_,其涉及到了GINS初始化的具体操作和相关设置,它的定义是在RtkImuCameraRrrEstimator类的构造函数中(这里以RTK/IMU/视觉的紧组合为学习对象,所以很多变量的基础都在RtkImuCameraRrrEstimator里,同理如果选择其他的解算组合类型,对应的变量也就在对应的XXXEstimator中) gnss_imu_initializer_.reset(new GnssImuInitializer( init_options, gnss_loose_base_options, imu_base_options, // 这里都会用到GNSS松组合的设置 base_options, graph_, initializer_sub_estimator_)); manual手册里关于GNSS/INS的初始化有一段话的解释 The GNSS/INS initializer estimates initial poses, velocities, and biases for LC or TC estimators. Regardless of whether we use LC or TC integrations, we use the LC formulations, i.e. position and velocity, to form the initialization optimization graph for efficiency. The pitch and roll angle is first computed by the acceleration measure.

windows下载安装启动nexus

参考:https://blog.csdn.net/lovelife000/article/details/125880764 https://blog.csdn.net/qq_36219549/article/details/125916072 https://blog.csdn.net/m0_67505824/article/details/123872810 世界上第一个也是最值得信赖的二进制存储库 nexus有收费版和开源免费版,其中的Nexus Repository Manager OSS是开源免费的,其功能基本满足我们的需求,所以本次搭建采用该版本。 官网地址:https://www.sonatype.com/products/nexus-repository 下载地址:https://www.sonatype.com/thanks/repo-oss 文档地址:https://help.sonatype.com/repomanager3 下oss的才是免费版的,其他的需要凭证! 解压后进入运行这个文件夹运行命令: nexus /run 网页访问: http://localhost:8081/nexus 账号:admin 密码:需要去D:\nexus\sonatype-work\nexus3这个文件夹下打开admin.password这个文件,是个uuid,这个就是密码,登录成功后就会呗删除! 我会修改为admin123 默认端口8081,修改默认端口号:我改为9091

csv文件中出现乱码的解决方法

1、首先用UE打开CSV文件,发现没有乱码了 2、然后新建一个txt文本,把CSV中的数据复制到txt文本中,保存格式为ANSI / ASCII. 3、复制txt文件,再把副本后缀改为CSV格式,再用EXCEL重新打开就没有乱码了。 csv文件中有换行的乱码: 1、使用记事本打开CSV文件 2、文件-另存为,编码方式选择ANSI 3、保存完毕后,再用EXCEL打开这个文件就不会出现乱码的情况。

记一次ARM架构下centos7的环境配置经历

本来centos的系统,用着挺不错的,毕竟稳定,奈何公司最近接了一个项目,要求使用Cortex A55内核,Linux系统,本质实际上使用arm架构,而通常的centos系统默认情况下都是X86的。 初次拿到系统,发现装的是ubuntu的,试了下后发现有点不习惯的,怕后续的配置下还会遇到不一样的地方,所以让系统厂商重新装了centos7。 接下来拿到新系统后,正式开始配置,结果也遇到了很多坑,下面说一些关键性的东西,也为自己留个备注: 目录 1.IP配置 2.java配置 3.mysql配置 4.fastDFS及nginx配置 5.串口配置 6.浏览器配置 7.触摸屏及虚拟键盘配置 1.IP配置 正常修改完IP之后,重启服务,报错: code=exited status=6 Failed to start LSB: Bring up/down networking 网上搜索一番之后,大多数的方法都是大同小异,但是状态码都不是6,后面终于找到一个关于status=6的说明。 解释如下: 如果不存在特定的文件,即/etc/sysconfig/network,那么运行的/etc/rc.d/init.d/network脚本将立即出错,状态为6,即network可以为空 但是必须存在。 所以手动创建一个空的network之后,问题解决。 2.java配置 修改完IP之后,使用远程工具,开始配置java。 一开始没注意,拿以前的包解压,配置环境变量之后验证:java -version,直接报错。 后面才反映过来是内核不同,然后又是一番搜索,找到了支持arm64的包 替换掉之后,java环境可正常使用。 附jdk历史版本下载地址:Java Archive | Oracle 3.mysql配置 这次有了防备,直接下了aarch64支持的包,和arm64是一样的。 附mysql下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 附安装连接:arm架构安装mysql5.7 - 码农教程 远程使用Navicat的时候报了个错10060,防火墙的原因,关闭即可。 4.fastDFS及nginx配置 按照正常流程安装下来之后,发现fastDFS不可用,最后找到一篇说明: 按照说明中的指定版本和对应配置文件的修改之后,fastDFS可正常使用 nginx常规配置即可 5.串口配置 因为项目上会使用到串口通信,所以需要配置串口环境,之前一直使用的都是RXTX,按照正常流程配置: RXTXcomm.jar放在$JAVA_HOME/jre/lib/ext中 librxtxSerial.so放在$JAVA_HOME/jre/lib/amd64中 结果程序启动之后,报错。 网上的解释是需要重新在arm架构下编译RXTX。 附编译连接一:【linux】Ubuntu aarch64编译安装RXTX进行串口通信_arm rxtx_svt_井木的博客-CSDN博客 结果编译完成后,仍然报错,最后发现是版本原因,之前用的2.1.7,后面使用2.2,编译完成后,可用。 附编译连接二: 银河麒麟龙芯mips64架构集成RXTX串口通讯兼容问题_十年一梦惊觉醒的博客-CSDN博客 附RXTX下载地址:Download - Rxtx

充电协议介绍

Oppo的VOOC闪充协议: 1.增加电池接触点至8个接触点(触点翻倍); 2.高通通过调整DP,DM电压调整输出电压 4.第一代 VOOC 采用5V/4.5A=22.5w的充电方案 OPPO的电池是是2个电芯并联的(并联增加容量,串联增加电压),这样你就可以理解了他的7pin可以看成是2个VBUS的电流分流了充电头端的,然后2个VBUS流到2个电芯,类似于QCOM的Parallel Charging。 后来 VOOC 发展成为 Super VOOC。第一代 Super VOOC 采用了串联双电芯的设计,充电电流保持5A,充电电压提升到10V,最大充电功率达到了50w。 之后第二代 Super VOOC 把充电电流提升到6.5A,电压继续保持10V,最大充电功率达到65w。 目前第三代 Super VOOC 采用三路电荷泵并联分压设计,每颗电荷泵承担42W的供电功率,最大充电功率可达125W。 支持 VOOC 协议的手机有 OPPO,一加和 realme。 MTK的PE通过VBUS来调整输出电压: Mi Turbo Charge 协议 第一代 Flash Charge 支持5V/4.5A=22.5w 的充电功率。 后来 Flash Charge 发展成为 Super Flash Charge。第一代 Super Flash Charge,采用电荷泵半压充电技术,最高支持11V/4A=44w的充电功率。 之后第二代 Super Flash Charge 将充电电流提升到5A,最高支持11V/5A=55w 的充电功率。第三代 Super Flash Charge 继续提高充电电压和电流,最高支持20V/6A=120w 的充电功率。 目前的第四代 Super Flash Charge 继续提高充电性能,最高支持20V/10A=200w 的充电功率。 支持 Flash Charge 协议的手机有 iQoo 和 vivo。

wonderful-sql day01 环境搭建、初识数据库

一些感想:一直想学习sql,但是不知道怎么开始学,总是卡在第一步环境搭建上。之前也有接触过一些sql的基本语法,了解句式,但是因为环境搭建的问题一直没有实践的机会。本次学习的目的是为了掌握sql语句并熟练运用(企业更常使用sql,对于找工作实习都很有帮助),也是为以后往数据分析岗发展做准备。本次学习在此平台记录遇到的问题和解决方案,记录经典案例,以备未来复习所用。

最新免费图源!星图地球2023版底图更新,还有历史影像

小编从星图地球公众号中了解到,星图地球数据云正式发布【星图地球数据云2023版】,影像数据和矢量数据均有大范围更新,还可在线查看历史影像。 影像数据 分辨率0.5米的影像,更新范围为全国615个省会城市、地级市、县等区域及34个岛礁。0.8米影像更新范围为全国(部分岛礁不全),包括23个省,5个自治区,4个直辖市,2个特别行政区。 从星图地球数据云官网可在线直接查看: ▲南京市空港会展中心 2022年8月 ▲海南省三亚市海棠区亚特兰蒂斯水世界 2022年10月 ▲天津市静海区第六中学 2022年10月 ▲湖南省湘西土家族苗族自治州保靖县酉水生态公园 2022年10月 全球1-7级矢量数据,包含境界政区、居民地、水系等信息。 全国8-18级矢量数据,包括22个省(不包含台湾省),5个自治区,4个直辖市,2个特别行政区,包含POI兴趣点、公共服务设施、建筑轮廓、境界政区、水系、道路、铁路、居民地等信息。 历史影像:可在线查看 这个功能还是挺惊喜的,可在线查看2016年-2022年的影像 第三方软件调用:操作简单 目前ArcGIS、QGIS、奥维、图新、Global Mapper等常用软件都能快速调用星图地球数据云的各类数据。 ▲ 奥维手机端调用截图 如何免费调用 开通企业认证 立享300万/日配额 01 注册账号(点击文末阅读原文注册) 02 认证成为企业开发者 03 免费获得基础地图数据【300万次/日】请求配额! ▲ 任何关于数据调用和使用的问题 都可扫码入群咨询【技术客服】 END -

MYSQL日期类型总结

1、日期总结 各种各样的日期格式让人头疼,对于mysql的全部日期进行了总结,mysql中有以下几种表示时间的字段类型 日期/时间类型日期格式日期最小值日期最大值存储需求YEARYYYY190121551字节TIMFHH:MM:S-838:5959838:59:593字节DATESYYYY-MMDD1000-01-019999-12-033字节DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:009999-12-31 23:59:598字节TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01UTC2038-01-19 03:14:07 UTC4字节 2、YEAR YEAR见名知意,只是表达年份的字段。最小为1901,最大为2155【0000年表示错误时】 接下来按步骤进行演示: 1、首先创建表t1 CREATE TABLE `t1`( y YEAR ); 2、在表中插入两条数据分别为数字2023和字符串2023。 INSERT INTO `t1` VALUES (2023),('2023'); 3、查询表中的数据 SELECT * FROM t1; 4、添加2156年,进行尝试 INSERT into 't1' VALUES (2156); 发现会报错: INSERT into 't1' VALUES(2156) > 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''t1' VALUES(2156)' at line 1 > 查询时间: 0s 5、删除全部数据

多个Git账户该如何拉取代码

存在多个 Git 账户该如何拉取代码 起因 在早些时候写过一篇一台电脑该如何配置多个 git 账户 但是如今又遇到另外一种情况,我司旧版云效迁移新版云效,代码仓库也跟着迁移,此时在ssh文件下的config中新增的密钥会出现重复昵称,也就是Host相同 # aliyvnOld Host codeup.aliyun.com HostName codeup.aliyun.com # 仓库域名 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_yvnxiao # 你的私钥文件 IdentityAgent none IdentitiesOnly yes User 昵称1 # aliyvnNew Host codeup.aliyun.com HostName codeup.aliyun.com # 仓库域名 PreferredAuthentications publickey IdentityFile ~/.ssh/ssh_yvnxiaoNew # 你的私钥文件 IdentityAgent none IdentitiesOnly yes User 昵称1 # github Host github.com HostName github.com # 仓库域名 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github # 你的私钥文件 IdentityAgent none IdentitiesOnly yes User Found-404 解决 这种情况下拉取代码会出现没有权限,就是因为重复的Host导致的,解决方法也很简单。

VS生成事件

VS生成后事件 一、编辑位置 打开项目,右击项目,打开属性—>配置属性–>生成事件,如图所示: ---- 二、设置目的 为了提高编译生成后的事件效率,不需要手动的拷贝到固定目录。 三、编辑生成事件 点击“编辑后期生成”,进入编辑事件界面,如图所示: 可以在其中直接填入copy,xcopy等DOS文件复制命令 copy 将一份或多份文件复制到另一个位置。 COPY [/D] [/V] [/N] [/Y|/-Y] [/Z] [/L] [/A|/B ] source [/A | /B] [+source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件。 /A 表示一个 ASCII 文本文件。 /B 表示一个二进位文件。 /D 允许解密要创建的目标文件destination 为新文件指定目录和/或文件名。 /V 验证新文件写入是否正确。 /N 复制带有非 8dot3 名称的文件时,尽可能使用短文件名。 /Y 不使用确认是否要覆盖现有目标文件的提示。 /-Y 使用确认是否要覆盖现有目标文件的提示。 /Z 用可重新启动模式复制已联网的文件。 /L 如果源是符号链接,请将链接复制 xcopy 复制文件和目录树。 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W][/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U][/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B][/EXCLUDE:file1[+file2][+file3].

Nginx安装配置http以及stream

1、安装nginx ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module --user=nginx --group=nginx 2、配置nginx #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } #stream配置 stream { upstream adr1 { server 127.0.0.1:8110; } server { listen 82; proxy_pass adr1; } } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost;

【Protobuf】Linux 下源码编译 Protobuf 库

本文记录如何在 Linux 下源码编译 Protobuf 库文件。 参考:protobuf编译安装 1. 下载 Protobuf 源码 Protobuf 有许多版本,以 v3.11.4 为例,下载地址在:Protobuf v3.11.4 。其他 release 版本见 这里 。 推荐下载 cpp 版本:protobuf-cpp-3.11.4.zip 。 2. 编译 unzip protobuf-cpp-3.11.4.zip cd protobuf-3.11.4/ ./configure --prefix=/home/protobuf/ make -j8 make check make install 其中,--prefix= 指明编译完成之后生成的头文件、库文件、可执行文件的路径,如果没有此参数默认在 /usr/local 目录下。 编译成功之后,就可以在对应目录下看到编译出来的库文件和头文件了,库有动态库和静态库,然后就可以将其放置在工程中使用了。 关于如何用 proto 文件生成 C++ 对应的 *.pb.h/cc 文件的方法参考这篇文章:【ProtoBuf】ProtoBuf 通过 proto 文件生成 cc/h 文件 。

【MAAC,MARL注意力机制】多智能体强化学习的Actor-Attention-Critic算法

【MAAC,MARL注意力机制】多智能体强化学习的Actor-Attention-Critic算法 MAAC Actor-Attention-Critic for Multi-Agent Reinforcement Learning 提出注意力机制的多智能体强化学习方法 方法分类 独立训练每个代理以最大化其个人奖励,同时将其他代理视为环境的一部分 这种方法违背了环境应该是平稳的、马尔可夫性的。由于其他智能体的策略变化,任何单个智能体的环境都是动态和非稳态的。 所有的智能体可以被集体建模为一个单一的智能体,它的动作空间是所有智能体的联合动作空间 此方法不可扩展,操作空间的大小随着智能体的数量呈指数增长。此外,还需要在执行期间进行密切的通信,因为中央策略必须收集来自各个智能体的观察结果并将操作分发给各个智能体 集中训练分散执行(critic使用全局信息学习,actor只能使用其相应的信息) 不能拓展到更多的agent情况(大规模agent)以及普遍适用于合作(共享全局reward),竞争性或混合性的环境和任务 本文特点 在上述方法中拓展。提出的注意力评论家(attention critic)能够在训练过程中的每个时间点动态选择需要关注的智能体,而不是像集中学习的critic一样简单地考虑所有时间点的所有智能体提出的方法具有相对于agent数量线性增长的输入空间,适用于合作、竞争和混合环境 具体方法 Multi-Actor-Attention-Critic (MAAC) Q i ψ ( o , a ) Q^ψ_i(o,a) Qiψ​(o,a)是智能体i的观察和行动以及其他智能体的贡献的函数, f i f_i fi​为多层感知器(MLP)的第二层, g i g_i gi​为第一层 在实验中使用多个注意力头,每个头使用单独的 ( W k , W q , V ) (W_k,W_q,V) (Wk​,Wq​,V)参数,然后产生所有其他agent对agent i的贡献总和,最后将所有头得到的贡献和连接为单个向量 Attentive Critics学习 由于参数共享,所有的critic被一起更新,最小联合损失计算为: ψ ‾ 、 θ ‾ \overline ψ、\overline θ ψ​、θ分别是critic target和actor target网络的参数, α α α是决定最大熵和奖励之间平衡的参数

全网最好的免费开源ERP:Odoo库存路线规则设置应用详解

引言 在库存管理中,供应链战略确定了产品何时应该采购或制造、交付到分销中心,并最终提供给零售渠道。 在开源智造·Odoo免费开源ERP解决方案中,可以使用WMS应用中的仓库路线来配置产品的供应链策略,其中包括库内作业的拉取和推送规则 。一旦一切都正确配置,WMS库存应用程序可以自动根据配置的推或拉规则生成仓内物料转移工作。 仓内作业的基础概述 在通用仓库中,有收货区、质检区、存储区、拆卸和包装区以及发货区。所有产品都经过这些位置。随着物料在这些位置中移动,每个位置都会触发物料指定的路线和规则。 在这个例子中,供应商的卡车在收货区卸下订购的物料托盘。操作员然后在收货区扫描产品。根据产品的路线和规则,其中一些产品被送到质检区(例如,用于制造过程的组件产品),而其他产品则直接进入对应的存储区域。 以下是一个物料出库路线的例子。为了准备当天的所有订单,需要进行物料的拣货作业。这些物品从存储区所在的位置挑选出来,移动到拣货区域,靠近订单打包区域。然后,订单被打包在各自的盒子中,传输带将它们带到靠近发货区域的地方,准备交付给客户。 什么是拉动规则 使用“拉动规则”,某些产品的需求会触发采购,而“推动规则”则是由产品到达特定位置触发的。 拉动规则用于满足销售订单。Odoo为订单中的每个产品在“客户位置”生成需求。由于拉动规则是由需求触发的,因此Odoo会查找在“客户位置”上定义的拉动规则。 在这种情况下,找到了一个将产品从发货区域转移到客户位置的”交付订单”拉取规则,并创建了两个位置之间的转移。 然后,Odoo找到另一个拉取规则,试图满足发货区域的需求:”包装”规则将产品从包装区域转移到发货区域 。最后,其他拉取规则被触发,直到在库存和拣货区域之间创建了一次转移。 注:所有这些物料转移都是根据Odoo的拉取规则自动生成的,从末端(客户位置)开始,向后(库存仓库)移动。在工作过程中,操作员按相反的顺序处理这些转移:首先是拣货,然后是包装,最后是交货单。 什么是推送规则 另一方面,推送规则更容易理解。与根据需求生成作业不同,它们在产品到达指定位置时实时触发。推送规则基本上是这样理解:“当产品到达特定位置时,将其移动到另一个位置。” 一个推送规则的例子是:当一个物料到达收货区时,将其移动到存储位置 。由于不同的物料可以应用不同的推送规则,用户可以为不同的物料分配不同的存储区域位置。 另一个推送规则可以理解:当物料到达某个位置时,将它们移动到质检区 。然后,在质检完成后,将它们移动到指定的存储位置 。 注:如果已经有生成物料转移的拉动规则,则无法触发推送规则。 重要提示:这些推货拉规则的集合被称为路线 。规则上的分组决定了物料是否在同一次调拨中分组。例如,在拣货操作期间,所有订单及其物料都被分组在一个调拨中,而装箱操作则按客户订单分组。 如何使用Odoo的路线和规则 由于路线是推送和拉动规则的集合,因此开源智造·Odoo免费开源ERP解决方案可以帮助您管理WMS功能应用的高级路线配置,例如: 管理物料的生产供应链。按物料管理默认位置。根据业务需求在库存仓库内定义路线,例如质量控制、售后服务或供应商退货。通过为租用产品生成自动归还移动,帮助租赁业务的管理。 要为物料配置路线,请首先打开WMS库存应用程序,然后转到配置 ‣ 设置 。然后点击仓库设置标签,启用多步骤路线功能并单击保存 。 注:使用多步骤路线功能时, 存储位置功能会自动激活。 完成第一步后,用户可以使用开源智造·Odoo免费开源ERP提供的预配置路线,也可以创建自定义路线。 预配置路线 访问Odoo预配置的路线,请设置: 库存 ‣ 配置 ‣ 仓库 。然后,打开一个仓库档案。在仓库配置选项卡中,用户可以查看仓库的预配置路线,包括入库和出库应用 。 还有一些更高级的路线,例如拣货-包装-发货,也是可用的。用户可以选择最适合其业务需求的路线。一旦设置了入库和出库路线,前往库存->配置->路线查看Odoo生成的具体路线。 在路线页面,点击一个路线以打开路线表单。在路线档案中,用户可以查看路线适用于哪些地方。用户还可以将路线设置为仅适用于特定的公司 。这对于多公司环境非常有用;例如,用户可以在国家A拥有一家公司和仓库,在国家B拥有第二家公司和仓库。 在路线表单的底部,用户可以查看路线的具体规则。每个规则都有一个动作 ,一个原位置和一个目的位置。 自定义路线 要创建自定义路线,请转到库存 ‣ 配置 ‣ 路线 ,然后单击创建 。接下来,选择可以选择此路线的位置。路线可以适用于多个位置的组合。 每个地方的行为都不同,因此只勾选有用的选项并相应地调整每个路线非常重要。然后,配置路线的规则 。 如果路线适用于某个物料类别,则需要在物料类别表单上手动设置路线,设置方法: 库存 ‣ 配置 ‣ 物料类别 ,然后选择产品类别并打开档案。接下来,点击编辑 ,在路线部分下设置 路线 。

CURL访问 https CA证书问题

CURL访问 https CA证书问题 1、证书错误 运行报错:SSL peer certificate or SSH remote key was not OK 谷歌翻译:SSL对等证书或SSH远程密钥不正确 方法一:不检查证书 // 不检查证书 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); 方法二:下载一个证书并设置证书所在路径 (1)到 curl 官网下载证书 (2)在你的程序中设置证书的路径 // SSL CA证书 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); // 验证服务器证书有效性 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); // 检验证书中的主机名和你访问的主机名是否一致 curl_easy_setopt(curl, CURLOPT_CAPATH, “./lib/”); // 设置证书路径 //curl_easy_setopt(curl, CURLOPT_CAINFO, “./lib/cacert.pem”); // 具体的 CA 证书,和上一行效果一样,选用一个即可 2、证书路径错误 运行报错:Problem with the SSL CA cert (path? access rights?) 谷歌翻译:SSL CA证书有问题(路径?访问权限?) 分析:CA 证书默认路径 /etc/ssl/certs 找不到正确的证书

基于Spring boot的校园报修管理系统的设计与实现计算机毕业设计源码11720

Springboot校园报修管理系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,校园报修管理通过网络进行信息管理掀起了热潮,所以针校园报修管理的用户需求开发出一套校园报修系统。 整个开发过程首先对系统进行需求分析,得出其主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。 本系统开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与校园报修管理系统的实际需求相结合,确定了Springboot开发校园报修管理系统的使用。 关键字:校园报修 ; Springboot;数据库 Springboot Campus Repair Application Management System Abstracts With the advent of the Internet trend, all walks of life are considering using the Internet as a medium to promote their information more timely and effectively. The best way is to establish a network management system and manage its information. Due to the development of the network, the campus repair application management has set off an upsurge of information management through the network, so a campus repair application system has been developed according to the user needs of the campus repair application management.

XML文件格式讲解、和xml文件的xsd约束和HTTP状态码详细解读

一、XML文件 1.1 xml文件概述 xml文件是一种文本传输格式,也是配置文件的一种形式,一般简单xxx.xml文件,xxx.properties文件,xxx.yml这些文件一般就会想到配置文件上 下面先写一个非常简单的xml文件 <?xml version="1.0" encoding="UTF-8" ?> <students> <student id="01"> <name>张三</name> <age>18</age> <gender>男</gender> <address>郑州</address> </student> <student id="02"> <name>李四</name> <age>19</age> <gender>男</gender> <address>北京</address> </student> <student id="03"> <name>王五</name> <age>20</age> <gender>女</gender> <address>西安</address> </student> </students> 开头的<?xml version="1.0" encoding="UTF-8" ?>当中的 xml 代表的是xml文件 version代表的是版本号 encoding代表的是编码集 xml里面的标签除了开头的规则以外,其他的标签都是可以自己定义的。 标签一定有结尾标记 一个xml文件中只允许有一个【根节点】 1.2 xml文件解析方式对比 DOM解析方式 把整个 XML 文件完整的读取到内存,进行数据解析操作,可以针对于 XML 文件进行【增删改查】操作。会导致文件内存占用过大。常用于 服务器配置,项目配置 【Spring 全家桶】内置 DOM 解析方式,使用第三方工具 Dom4j. SAX解析方式 读取一行 XML 文件内容,解析一行数据,节约内存,但是有且只能完成针对于 XML 文件的【读取解析操作】,可以用于手机端相关软件的配置,APP,通讯录。。。 1.3 代码 在pom.xml文件中导入Dom4j依赖 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.

软件测试之自动化测试

目录 1.什么是自动化测试 2.selenium+java环境搭建 3.熟悉selenium的API 定位元素 添加等待 打印信息 浏览器的相关操作 键盘组合键用法 鼠标事件 特殊场景 定位一组元素 多层框架定位 下拉框处理 弹窗处理 上传文件 关闭浏览器 窗口切换 截图 1.什么是自动化测试 将人工测试手段转换为机器执行的过程 自动化测试金字塔 自动化测试分类: 单元测试: 最大的投入应该在单元测试上,单元测试运行的频率也更加高。java的单元测试框架是Junit 接口测试: 接口测试就是API测试,相对于UI自动化API自动化更加容易实现,执行起来也更稳定。 接口自动化的有以下特点: 可在产品前期,接口完成后介入 用例维护量小 适合接口变动较小,界面变动频繁的项目 常见的接口自动化测试工具有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等。 UI测试: 虽然测试金字塔告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。并且有时候我们不得不进行UI层的测试。 UI自动化的特点: 用例维护量大 页面相关性强,必须后期项目页面开发完成后介入 UI测试适合与界面变动较小的项目 selenium介绍 什么是selenium? 是web应用中基于UI的自动化测试框架 特点 支持多平台、多浏览器、多语言 原理 三个对象: 自动化脚本代码:编写的代码 浏览器驱动:需要下载驱动 浏览器:各种浏览器 2.selenium+java环境搭建 1.安装chrome浏览器并察看其版本 2.下载浏览器驱动,要和对应的版本相同的驱动 3.将驱动放在浏览器应用目录下,并且配置Path环境 4.验证是否搭建好环境 导入依赖文件 <dependencies> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> </dependencies> 编写代码 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.

史上最全霍夫变换详解(含源码)

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 引言 本文讲述霍夫变换的一些内容,并加入一些理解性东西,参考了部分博客等相关性内容。希望能对霍夫变换有所了解,也希望看到的人如果发现错误及时帮忙纠正。博主水平有限,还望赐教。 历史和简介 历史 霍夫变换(Hough Transform)是在1959年由气泡室(Bubble Chamber)照片的机器分析而发明,发明者Paul Hough在1962年获得美国专利,被命名为Method and Means for Recognizing Complex Patterns(用于识别复杂图案的方法和手段)。该专利对直线采用斜截距参数化,但由于斜率可能变成无穷大,这有可能导致无限变换空间(unbounded transform space)。 现在使用的霍夫变换是1972年由Richard Duda和Peter Hart所发明,称为“广义霍夫变换[GHT]”(Use of the Hough Transformation to Detect Lines and Curves in Pictures,1972)。 然后1981年在Dana H. Ballard的计算机视觉社区中出现一篇文章名为 Generalizing the Hough transform to detect arbitrary shapes,从而推广开来。 该文描述了使用模板匹配原理对霍夫变换进行修改。要知道霍夫变换最初是为了分析定义的形状(如线、圆、椭圆等)而开发。通过了解其形状并旨在其找出图像中的位置和方向,这种改变使得霍夫变换能够检测用其模型描述的任意对象。这将图像中查找对象(用模型描述)的问题通过查找模型在图像中的位置来解决。利用广义霍夫变换(GHT),找到模型位置的问题转换为寻找将模型映射到图像中的变换参数的问题。给定变换参数的值,就可以确定模型在图像中的位置。 后来产生了更多霍夫变换的变体和扩展,比如KHT,3DKHT,这里不细致说明。 简介 霍夫变换是一个特征提取技术。其可用于隔离图像中特定形状的特征的技术,应用在图像分析、计算机视觉和数字图像处理领域。目的是通过投票程序在特定类型的形状内找到对象的不完美实例。这个投票程序是在一个参数空间中进行的,在这个参数空间中,候选对象被当作所谓的累加器空间中的局部最大值来获得,所述累加器空间由用于计算霍夫变换的算法明确地构建。最基本的霍夫变换是从黑白图像中检测直线(线段)。Hough变换主要优点是能容忍特征边界描述中的间隙,并且相对不受图像噪声的影响。 原理 霍夫变换最简单的是检测直线。我们知道,直线的方程表示可以由斜率和截距表示(这种表示方法,称为斜截式),如下所示: 如果用参数空间表示则为,即用斜率和截距就能表示一条直线。 但是这样会参数问题,垂直线的斜率不存在(或无限大),这使得斜率参数的值接近于无限。为此,为了更好的计算,Richard O. Duda和Peter E. Hart在1971年4月,提出了Hesse normal form(Hesse法线式) 其中是原点到直线上最近点的距离(其他人可能把这记录为,下面也可以把r看成参数),是轴与连接原点和最近点直线之间的夹角。如图1所示。 图1 因此,可以将图像的每一条直线与一对参数相关联。这个参数平面有时被称为霍夫空间,用于二维直线的集合。 在概念上,霍夫变换很接近Radon变换有人将之看成同一变换的不同形式 经过Hough变换,将图像空间中的一个点映射到Hough空间,如图2所示。 图2 图2:固定一个点(3,4),在角度取时,r的取值范围情况. 该图是用matlab绘制,代码如下 % 一个点的坐标为(3,4) x=3; y=4; %将给定的一个定点映射到霍夫变换空间 theta=0:pi/200:2*pi;% 角度 r=x*cos(theta)+y*sin(theta); plot(theta,r);%绘图 set(gca,'XTick',[0:pi/10:2*pi]); % 修改x轴坐标间隔 xlabel('变量\theta') ylabel('变量r') 继续正题内容,图2显示了经过定点()时的关系。显示了在极坐标对极径极角平面绘出所有通过该定点的直线, 将得到一条正弦曲线。正弦曲线的形状取决于,点到所定义原点的距离。通常,越大,正弦曲线的振幅越大,反之则会越小。