XXX程序 详细说明

用于记录理解PC程序的程序逻辑

1、程序的作用

根据原作者的说明(文件说明.txt),该程序 (PC.py) 的主要作用是提取某一个文件夹中的某个设备 (通过config中的信息看出来是Ag_T_8) 产生的日志文件,然后提取其中某些需要的数据,进行处理后放进数据库中

文件的主要部分就只有PC.py这一个程序,剩下的都是为他服务的,原作者将.py文件打包成了.exe文件并设置为后台运行

2、涉及到的主要的库

  1. Mqtt:MQTT 是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计,可以理解为这玩意就是用来进行不同软件之间地通信

    mqtt的主要分为三个部分,分别是服务端broker和各种客户端(这里用的是paho-mqtt ),客户端想要与服务器连接需要知道客户端的四个信息,分别是: broker服务端的 ① 地址;② 端口;③ 主题和 ④ 客户端的ID,这四个信息在config.json文件中进行设置,分别对应mqtt_broker、mqtt_port、mqtt_topic、mqtt_client_id

注意:原作者将所有有关于mqtt的内容全部都注释掉了,并没有用到mqtt通信,但是config中关于mqtt的配置信息还是要填写的,否则会因为读取而报错,这因该是原作者之前的开发者出于另外的目的配置的,这里可以直接忽略

  1. pyodbc:一个用来进行数据库操作的库,这里作者用的是pypyodbc(pyodbc的纯python实现版),可以理解为是将读取到的文件写入到数据库中的工具。
    数据库可以看作是一个excel表,pyodbc可以对这个表格进行增删改查等操作,但是与excel不同的是数据库是使用一行一行的命令进行操作的,而且在使用之前需要进行连接,连接需要用到的参数和config.json中对应的参数为:
    ①数据库的IP地址/mssql_ip
    ② 数据库的端口号/mssql_port
    ③ 登陆的用户名/mssql_user
    ④ 该用户名对应的密码/ mssql_password;
    ⑤ 登陆的数据库的名称/ mssql_db

  2. watchdog: 这里就当作是一个用来监听某个文件夹中的文件是否有变化的的库就够了

3、业务逻辑

所有的数据处理啥的都封装在FileHandler中,当程序启动后会运行FileWatcher类中的run函数,这个run函数会执行FileHandler类
1、当config.json中"log_path"对应的文件夹中有新的文件生成,会在日志文件logging.conf中进行记录
2、如果生成的这个新的文件不是以.dat结尾的就不进行操作
3、如果是以.dat结尾的就读取这个.dat文件并提取相关信息
4、原作者在datalog中给了6个测试案例,这里以第一个文件1_2111001232800464_230719211823.dat为例,说明从中提取了哪些信息
5、首先是从整个文件的前两行提取reference,sn,start_time,end time和cycle_time,具体的提取情况见:
在这里插入图片描述
6、之后总览后面所有的文字,如果出现了 “|01” 这个玩意就表示有错误产生,然后一行一行的看,找到这玩意出现的哪那一行,提取出error code,这个文件的第235行出现了 “|01” ,提取出error code 为 1%led1_color,见下图:
在这里插入图片描述
7、如果有错误产生,result为fail,error code 就是上面这样提取的error code,如果没有错误产生,result为pass, error code 为None

8、另外,在config.json中还有两个参数 :“equipment_code”“equipment_name”,这两个对应的值也会被记录下来

9、所有记录的值如下图:
在这里插入图片描述
10、一共得到了10个参数,全部写入到数据库中,他们在数据库中的名字分别为:
reference, sn, test_result, error_code, create_time, equipment_name, equipment_code, start_time, end_time, cycle_time。 都是以字符串的形式写入的


其他说明

需要配置的东西:
只需要设置config文件夹中的config.dat文件,其中各个参数的意义为:
在这里插入图片描述

注意:要想运行这个程序需要用到一些其他的python库和数据库,可以直接运行这个.py文件也可以打包成.exe文件运行,如果要打包就是另外的东西了,.spec文件就是和打包有关的设置,和这个程序的运行逻辑没啥关系,如果要了解打包的相关操作可以看看pyinstaller库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/88594.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyCAT命令行监控

9066端口 ,用mysql命令行连接 Mysql –utest –ptest –P9066 show help 可显示所有相关管理命令 显示后端物理库连接信息,包括当前连接数,端口 Show backend Show connection 显示当前前端客户端连接情况,已经网络流量信息、…

学习中ChatGPT的17种用法

ChatGPT本质上是一个聊天工具,旧金山的人工智能企业OpenAI于2022年11月正式推出ChatGPT。那么,ChatGPT与其他人工智能产品相比有什么特殊呢? 它除了可以回答结构性的问题,例如语法修正、翻译和查找答案之外。最关键的是它能够去解…

mysql--数据库的操作

数据库,是数据存储的最大单元。 1 创建数据库 create database mydatabase; 每次创建数据库的时候,都会多一个文件夹,关系型数据库是存储在磁盘当中的,所以这时候可以查看新建的数据库 2 指定字符集 MySQL中的字符集转换过程 制…

工程师是怎样对待开源

工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师,亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践,也看到了很多 Bad Cases,所以想把自己的一些心得体会写在这里,供工程师进行…

三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析

三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析 在三维模型的OBJ格式轻量化压缩处理过程中,除了减小文件大小和提高加载速度之外,我们也需要考虑如何提升数据质量。以下是几种常见的方法: 1、优化顶点数据:顶点数据是三维…

学习心得04:CUDA

2018年的时候,看过同事使用CUDA。因为工作忙,所以也没请教。 近来买了本入门的CUDA书,学习了一番。有两个心得: 工作拆分。 CUDA是并行计算,也就是大量重复的可拆分的计算。数组最符合这个要求。简单点就是把数组外面…

战略企业家派:企业家愿景形成的过程

战略企业家派:战略的是企业家愿景形成的过程【安志强趣讲267期】 趣讲大白话:企业家才是关键因素 **************************** 战略企业家派的代表是熊彼特 他认为企业家的职责在创新 只有创新才能赢得更多利润 创新是新产品或新生产方式的各种组合 提…

【动手学深度学习】--20.目标检测和边界框

文章目录 目标检测和边界框1.目标检测2.边界框 目标检测和边界框 学习视频:物体检测和数据集【动手学深度学习v2】 官方笔记:目标检测和边界框 在图像分类任务中,我们假设图像中只有一个主要物体对象,我们只关注如何识别其类别…

CTFshow——web入门——反序列化web254-web278 详细Writeup

前言 在做题之前先简要总结一下知识点 private变量会被序列化为:\x00类名\x00变量名 protected变量会被序列化为: \x00\*\x00变量名 public变量会被序列化为:变量名__sleep() ://在对象被序列化之前运行__wakeup() //将在反序列化之后立即…

ChatGPT提示与技巧分享:如何作出更好的提示2023年8月

​对ChatGPT的一些酷炫技巧感兴趣吗?这里提供了一些可以帮助你充分利用ChatGPT,成为AI工具专家的技巧。 毫无疑问,ChatGPT是目前最广泛使用的人工智能工具之一。它不仅毫不留情地取代了一些特定领域常用的软件小工具(如智能对联、经典语录生…

密码学学习笔记(二十):DSA签名与X.509证书

数字签名 下图是一个制作以及使用数字签名过程的通用模型。 假设Bob发送一条消息给Alice,尽管消息并不重要,也不需要保密,但他想让Alice知道消息确实是他本人发的。出于这个目的,Bob利用一个安全的散列函数,比如SHA-…

【C++初阶】list的常见使用操作

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法

初探修模的三维模型OBJ格式轻量化压缩的遇到常见问题与处理方法 在对经过修模的三维模型进行OBJ格式轻量化压缩处理的过程中,可能会遇到一些常见问题。以下是一些常见问题以及相应的处理方法: 1、顶点丢失和形状变形:在减小顶点数量的过程中…

k8s 常用命令(三)

1、查看版本信息:kubectl version [rootmaster ~]# kubectl version [rootmaster ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f7952…

前端学习记录~2023.8.10~JavaScript重难点实例精讲~第6章 Ajax

第 6 章 Ajax 前言6.1 Ajax的基本原理及执行过程6.1.1 XMLHttpRequest对象(1)XMLHttpRequest对象的函数(2)XMLHttpRequest对象的属性 6.1.2 XMLHttpRequest对象生命周期(1)创建XMLHttpRequest对象&#xff…

Django基础3——视图函数

文章目录 一、基本了解1.1 Django内置函数1.2 http请求流程 二、HttpRequest对象(接受客户端请求)2.1 常用属性2.2 常用方法2.3 服务端接收URL参数2.4 QueryDict对象2.5 案例2.5.1 表单GET提交2.5.2 表单POST提交2.5.3 上传文件 三、HttpResponse对象&am…

OnePlus Open可折叠手机:规格、价格、发布日期等详细信息汇总!

我们知道OnePlus可折叠手机即将问世,无论它是否被命名为OnePlus Open。我们迫不及待地想让它到来,为该公司再添一根弦,为最好的可折叠手机增添一个新的竞争对手。 OnePlus以前没有生产过任何可折叠产品,但它确实拥有合作伙伴公司Oppo的丰富知识,并可以向三星、摩托罗拉和…

【C语言】基础知识杂记(整理自用)

前言 之前一直在学新知识,最近打算复习一下之前学的,所以写了这篇文章,记录一下不熟练的知识点,自用,对大家帮助可能不是很大。 double类型与float类型 编译器默认7.0为double类型 在数据后加一个f,编译…

机器人远程控制软件设计

机器人远程控制软件设计 That’s all.

2023年高教社杯 国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…