m0_63572190 2023-03-18 21:01 采纳率: 76.9%
浏览 19
已结题

线程1发出信号,线程2进行判断(判断有没有收到包),然后解码(10进制转16进制含浮点数),然后解码(10进制转16进制含浮点数)如何解决?需要代码

线程1发出信号,线程2进行判断(判断有没有收到包),然后解码(10进制转16进制含浮点数),写数据库,需要代码

import copy
import threading
from PyQt5.QtCore import pyqtSignal, QObject
from Sql import sql
import time
import traceback
from FormatConvert import FormatConvert
class myThread2 (QObject,threading.Thread):
    DataReady_recv = pyqtSignal(list)
    def __init__(self, name):
        QObject.__init__(self)
        threading.Thread.__init__(self)
        self.name = name
        #数据库
        self.sql=sql()
        self.FormatCon = FormatConvert()
    def data_decoding(self,data1):
        write_data=[]
        print("接收到数据:"+data1)
        table_name='device_info'+data1[0:1]
        disu = self.FormatCon.int64_to_float(int(data1[2:10],16))
        write_data.append(disu)
        yuliang  = self.FormatCon.int64_to_float(int(data1[11:19], 16))
        write_data.append(yuliang)
        if data1[-2:] == '01':
            status = "正常"
        else:
            status = "异常"
        write_data.append(status)
        self.sql.insert_device_info_table(table_name,write_data)
 
#self.data2=[{'node': '2', 'lon': 114.4198, 'lat': 30.5186}, {'node': '2', 'lon': 114.4198, 'lat': 30.5186}]
 
    def run(self):
 
        while True :
            #收到数据了
            print()
#这里进行判断
if __name__ == "__main__":
   
#这里进行解码,写数据库(类似下面这个)
thread1=myThread2("thrad2")
 
     print(".....1")
   
    # thread1.creatable(s)
    s2={'node_name': 'lora_node3', 'data': 'AAAA0312013BD1E442BC34F441CDCC4C3DDA5555'}
    s={'node_name': 'lora_node18', 'data': '"/a14FBbBQKgS/lora_node18/user/update"\r\nAAAA03250214021B1021101327E1BFD78D7ABE952BF64003B9FB430550A23FD792FC43641EA141E4BD75403F3BD1E442BC34F4414C5555'}
 
    s3 = {'node_name': 'lora_node18',
         'data': '"/a14FBbBQKgS/lora_node18/user/update"\r\nAAAA03020215030C0E2001410BBE3E752F85BEC2DC87C2FC8A3DC10000000000000000073B8D4133698640BA5555'}
    s4={'data': 'AAAA03020215030C0E1F345960BD3E76CC00BF4E5B75C2DA0745C10000000000000000073B8D41997486403F55',
 
     'node_name': 'lora_gateway'}
    s5={'data': 'AAAA03020215030C0E1F36E0FEBB3ECA6E00BF289684C212FD42C10000000000000000073B8D41A46B8640AB55',
     'node_name': 'lora_gateway'}
 
     thread1.data_check(s5)
 
 
    thread1.data_decoding(s3)

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-03-18 21:05
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月18日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分