鹏程万里-----python开发中遇到的问题

2024-09-04 00:38

本文主要是介绍鹏程万里-----python开发中遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.    self.tabWidget.currentChanged.connect(self.tab_change())
TypeError: argument 1 has unexpected type 'NoneType'

解决办法:

self.search.clicked.connect(lambda:self.search_information(e))

我个人理解是,当用connect时,里面调用函数时,需要给他用lambda定义。

 

2.在用modbus tk的时候总是不知道通信什么时候结束,在关闭串口的时候会遇到正在通信中被关闭的错误

Unhandled exception in thread started by <function get_info_into_DB at 0x00000284F3E74048>
Traceback (most recent call last):
  File "E:/hypn/python/uart_tool/main.py", line 69, in get_info_into_DB
    num = matt_modbus_com.execute(1, cst.READ_HOLDING_REGISTERS, 30110, 38)
  File "C:\Program Files\Python36\lib\site-packages\modbus_tk\utils.py", line 39, in new
    raise excpt
  File "C:\Program Files\Python36\lib\site-packages\modbus_tk\utils.py", line 37, in new
    ret = fcn(*args, **kwargs)
  File "C:\Program Files\Python36\lib\site-packages\modbus_tk\modbus.py", line 306, in execute
    response_pdu = query.parse_response(response)
  File "C:\Program Files\Python36\lib\site-packages\modbus_tk\modbus_rtu.py", line 60, in parse_response
    raise ModbusInvalidResponseError("Invalid CRC in response")
modbus_tk.exceptions.ModbusInvalidResponseError: Invalid CRC in response

 

3.安装matplotlib的时候用pythoncharm直接导入没成功,只能用指令执行

pip3 install matplotlib即可

 

4.python查询mongodb的数据,大于+小于应该这么写

for x in self.db_list.find({"time": {"$gt": 20190614172602, "$lte": 20190614172845}}, {"time": 1, "Output_P": 1}):
 

5.modbus指令

读取40310

01 03 9d 76 00 01 4a 7c

返回

01 03 02 01 2C B8 09

 

写40310,多寄存器模式

01 10 9d 76 00 01 02 01 01 21 9f

返回

01 10 9D 76 00 01 CF BF

 

读40343

01 03 9d 97 00 1B 9B 81

返回

01 03 36 01 2C 01 2C 01 2C 01 2C 01 2C 01 2C 01 2C 01 2C 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CF 9A

 

写40369 单寄存器

01 06 9d b1 00 01 37 81

返回

 

读40410

01 03 9d da  00 19 8a 57

 

写40434 单寄存器

01 06 9d f2 00 01 c6 55

 

读40622

01 03 9e a2 00 0d 0a 05

 

 

 

6.由于用modbus tk出现了每次写了以后就没法再接受数据,也就是出现了传说中的

Response length is invalid 0

,也没发现又什么办法可以解决,于是只能用python直接串口读写

result = matt_uart_com.write(b'\x01\x10\x9d\x76\x00\x01\x02\x01\x01\x21\x9f')
time.sleep(1)  # sleep() 与 inWaiting() 最好配对使用
rec_num = matt_uart_com.inWaiting()if rec_num:try:  # 如果读取的不是十六进制数据--data = str(binascii.b2a_hex(matt_uart_com.read(rec_num)))[2:-1]  # 十六进制显示方法2print(data)except:  # --则将其作为字符串读取rev_str = matt_uart_com.read(rec_num)print(rev_str)time.sleep(5)
result = matt_uart_com.write(b'\x01\x03\x9d\x76\x00\x01\x4a\x7c')
time.sleep(1)  # sleep() 与 inWaiting() 最好配对使用
rec_num = matt_uart_com.inWaiting()if rec_num:try:  # 如果读取的不是十六进制数据--data = str(binascii.b2a_hex(matt_uart_com.read(rec_num)))[2:-1]  # 十六进制显示方法2print(data)except:  # --则将其作为字符串读取rev_str = matt_uart_com.read(rec_num)print(rev_str)

然后还遇到一个问题,就是如果获取linedit这种text的字符串如何转

self.list_tmp1 = '01 10 9e a2 00 0d 1a '

然后

Hex_str = bytes.fromhex(self.list_tmp2)就转成了上面的b'型字符串可以直接发送
matt_uart_com.write(Hex_str)

5.non-hexadecimal number found in fromhex() arg at position 1559

结果发现crc函数校验后的值是0xd,而不是正常的0xXXXX这种四位的,所以出现了一个单独的d所以无法转hex

 

6.wifistick通信

1.json通信

def wifi_post_rawdata(data):url = 'http://' + ip_addr + '/fdbg.cgi'form_data = json.dumps({'data': data})try:results = requests.post(url, data=form_data)#print(results.text)except Exception as err:print(err)return results.text
internal_information = wifi_post_rawdata('01 03 76 02 00 04 ff 81 ')
url_list = data.split(',')
url_sub_list = url_list[3].split(':')
main_status_info_struct.PV1_voltage = int_str_convert_01(url_sub_list[1])

 

2.rawdata通信

 

3.搞scrollArea_2之前失败了,但是这次却意外成功了,其实很简单,先拖一个控件到桌面,然后设定大小,然后

把这个设为空白

然后设置

然后把框缩小就可以了,也就是取消自适应后需要把窗口缩小才能让滑条使能

4.在用socket的时候,开启两个线程,发现会出现错误10054,后来改成socket不长时间链接,每次发送接收完数据都关闭然后重新链接就没有问题了

 

5.PermissionError: [WinError 5] 拒绝访问。: 'c:\\program files\\python36\\lib\\site-packages\\pip-9.0.3.dist-info\\description.rst'
You are using pip version 9.0.3, however version 20.2.4 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

到C:\Program Files\Python36>where cmd
C:\Windows\System32\cmd.exe这里用管理员权限打开这个exe然后执行python -m pip install --upgrade pip即可

这篇关于鹏程万里-----python开发中遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134506

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监