12、监测数据采集物联网应用开发步骤(9.1)

  1. 监测数据采集物联网应用开发步骤(8.2)

TCP/IP Server开发

com.zxy.common.Com_Para.py中添加如下内容

#锁机制
lock = threading.Lock()
#本机服务端端口已被连接客户端socket list
dServThreadList = {}
#作为服务端接收数据拦截器
ServerREFLECT_IN_CLASS = "com.plugins.usereflect.testServerReflectInClass1"
#本设备Server端口
AccSocketPort = 8090

com.zxy.business.Analyse_Data.py类的

def SubAnalyseRecBytes函数中添加如下内容

        #作为服务端接收数据拦截器elif inputIServ and Com_Para.ServerREFLECT_IN_CLASS != "":try:objC = importlib.import_module(Com_Para.ServerREFLECT_IN_CLASS)  #对模块进行导入                objName = Com_Para.ServerREFLECT_IN_CLASS.split(".")objN = getattr(objC,objName[len(objName) - 1])if hasattr(objN,"strResult"):setattr(objN,"strResult",inputStrResult)setattr(objN,"strIP",inputStrIP)setattr(objN,"strPort",inputStrPort)fun_us = getattr(objN,"init_start")fun_us(objN)temResult = getattr(objN,"strResult")temSend = getattr(objN,"strSend")temContinue = getattr(objN,"strContinue")#发送到客户端数据if temSend != "":Com_Fun.SendSocket(temSend,inputMServSocket)#不继续执行操作if temContinue == "0":return ""except Exception as e:if str(type(self)) == "<class 'type'>":self.debug_in(self,Com_Para.ServerREFLECT_IN_CLASS+"=1=>"+repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息else:self.debug_in(Com_Para.ServerREFLECT_IN_CLASS+"=1=>"+repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息finally:pass 

com.zxy.common.Com_Fun.py中添加代码

    @staticmethoddef SetThreadList(inputStrkey, inputStrValue):if Com_Para.dServThreadList is None:Com_Para.dServThreadList = {}if Com_Para.lock.acquire():Com_Para.dServThreadList[inputStrkey] = inputStrValueCom_Para.lock.release()@staticmethod        def RemoveThreadList(inputStrkey):if Com_Para.lock.acquire():if Com_Para.dServThreadList.get(inputStrkey) is not None:Com_Para.dServThreadList.pop(inputStrkey)Com_Para.lock.release()

新建TCP/IP Server类com.zxy.tcp.TcpServer.py

#! python3
# -*- coding: utf-8 -
'''
Created on 2017年05月10日
@author: zxyong 13738196011
'''import timefrom com.zxy.business.Analyse_Data import Analyse_Data
from com.zxy.common import Com_Para
from com.zxy.common.Com_Fun import Com_Fun
from com.zxy.z_debug import z_debug#监测数据采集物联网应用--TCP/IP Server
class TcpServer(z_debug):def __init__(self,skey):self.skey = skeydef server_link(self, sock, addr):Com_Fun.SetThreadList(self.skey, sock)     while True:temInit_msg = b'' # 初始化流try:temInit_msg = sock.recv(1024*50) # 接收数据        temValue = temInit_msg.decode(Com_Para.U_CODE)if temValue == "Exit":Com_Fun.RemoveThreadList(self.skey)if sock is not None:sock.close()breakelif len(temValue) > 0:ad = Analyse_Data()ad.SubAnalyseRecBytes(temValue,sock,True, sock.getpeername()[0],str(sock.getpeername()[1]))elif temValue == "":Com_Fun.RemoveHashTable(Com_Para.dServThreadList,self.skey)if sock is not None:sock.close()breaktime.sleep(0.1)except Exception as e:Com_Fun.RemoveThreadList(self.skey)if sock is not None:sock.close()if str(type(self)) == "<class 'type'>":self.debug_in(self,repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息else:self.debug_in(repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息Break

监测数据采集物联网应用开发步骤(9.2)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMP - 敏捷 3355

三个核心 产品负责人 负责最大化投资回报&#xff08;ROI&#xff09;&#xff0c;通过确定产品特性&#xff0c;把他们翻译成一个有优先级的列表 为下一个 sprint 决定在这个列表中哪些应该优先级最高&#xff0c;并且不断调整优先级以及调整这个列表 职责是定义需求、定义…

SSL核心概念 SSL类型级别

SSL&#xff1a;SSL&#xff08;Secure Sockets Layer&#xff09;即安全套接层&#xff0c;及其继任者传输层安全&#xff08;Transport Layer Security&#xff0c;TLS&#xff09;是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 H…

取暖器UL1278测试项目及注意事项!!!

UL1278是可移动的挂墙式或吊顶式室内电暖器的标准&#xff0c;适用于额定电压不超过600V的可移动的且挂墙式或吊顶式的电暖器。不适用于固定式电暖器&#xff0c; 管道式电暖器&#xff0c;中心加热的炉。 取暖器UL认证UL1278标准测试项目&#xff1a; 泄露电流试验&#xff…

leetcode 503. 下一个更大元素 II

2023.8.28 本题类似于下一个更大元素I &#xff0c;区别就是数组变成循环的了&#xff0c;可以将nums数组先double一下&#xff0c;如&#xff1a;{1&#xff0c;2&#xff0c;1}变成{1&#xff0c;2&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;1}&#xff0c;再用单调…

ElasticSearch-集成ik分词器

本文已收录于专栏 《中间件合集》 目录 背景介绍版本选择优势说明集成过程1.下载安装包2.解压安装包3.重启ElasticSearch服务3.1通过ps -ef | grep elastic查看正在启动的es进程号3.2使用kill -9 xxx 杀死进程3.3使用 ./elasticsearch 启动es服务 分词测试细粒度分词方式分词请…

PXE网络批量装机(centos7)

目录 前言 一、实验拓扑图 二、PXE的组件 三、配置PXE装机服务器 1、设置防火墙、selinux 2.安装、启动vsftp 3、拷贝系统文件到/var/ftp用于装机 4、配置tftp 5、准备pxelinx.0文件、引导文件、内核文件 6、配置本机IP 7、配置DHCP服务 8、创建default文件 四、配…

MFC -- Date Time Picker 控件使用

当前环境&#xff1a;VS2015 Windows 10 //&#xff08;一&#xff09;使用普通函数&#xff0c; 获取当前时间CString strCurrentTime; COleDateTime m_time COleDateTime::GetCurrentTime(); strCurrentTime m_time.Format(_T("%Y-%m-%d %H:%M:%S")); SetDlgIt…

问道管理:稳增长持续发力 A股市场信心迎修复

自7月政治局会议释放稳添加活泼信号以来&#xff0c;多项支持经济方针近期陆续落地。与此同时&#xff0c;活泼资本商场、提振出资者决计的一系列行动也正在逐渐发挥作用。业内人士表明&#xff0c;系列方针的出台进一步安稳了商场对我国经济的预期&#xff0c;也将助力修正出资…

STM32启动模式详解

文章目录 前置知识1. 单片机最小系统组成2. BOOT电路3. 三种启动模式4. 存储器映射 从主FLASH启动从系统存储区启动从SRAM启动 前置知识 1. 单片机最小系统组成 一个单片机最小系统由电源、晶振、下载电路、BOOT电路、和复位电路组成。少一个单片机都启动不了。 2. BOOT电路 …

设置微软Edge浏览器主页和新标签页,摆脱扰人和分散注意力的主页

默认情况下&#xff0c;Microsoft Edge会向您显示世界上最令人分心和讨厌的主页&#xff08;也称为主屏幕&#xff09;。微软不想只向你展示一个搜索框&#xff0c;也许还有一个漂亮的背景或一些你喜欢的网站的快捷方式&#xff0c;而是想在你面前扔一堆新闻标题和广告。 你可…

Revit SDK:Selections 选择

前言 Revit 作为一款成熟的商业软件&#xff0c;它将自己的UI选择功能也通过 API 暴露出来。通过 API 可以按照特定的过滤规则来选择相应的元素&#xff0c;能力和UI基本上是等价的。这个 SDK 用四个例子展示了 API 的能力&#xff0c;内容如下。 内容 PickforDeletion 核心…

谷歌发布Gemini以5倍速击败GPT-4

在Covid疫情爆发之前&#xff0c;谷歌发布了MEENA模型&#xff0c;短时间内成为世界上最好的大型语言模型。谷歌发布的博客和论文非常可爱&#xff0c;因为它特别与OpenAI进行了比较。 相比于现有的最先进生成模型OpenAI GPT-2&#xff0c;MEENA的模型容量增加了1.7倍&#xf…

【ES】elasticsearch8.3.3

这里仅实践操作并根据实际问题进行记录笔记。 运行 ES8 我们需要在自己的电脑上安装好 Docker Desktop。接着我们运行如下的命令&#xff1a;出现两个异常&#xff0c;一个是需要使用winpty因为我使用win的docker desktop&#xff0c;另外一个问题是docker启动elasticsearchE…

【MySQL】3、MySQL的索引、事务、存储引擎

create table class (id int not null,name char(10),score decimal(5,2)); insert into class values (1,zhangsan,80.5); update class set namewangwu,passwd123 where id2; select * from class where id2; drop 索引的概念 是一种帮助系统&#xff0c;能够更快速的查询信…

思乐直播系统短视频直播系统源码 直播短视频平台系统APP源码多功能后台系统

思乐直播系统&#xff0c;集直播、短视频等功能&#xff0c;根据市场趋势开发并推出思乐直播APP&#xff0c;APP功能丰富且可在后台管理系统进行配置&#xff0c;做到按需求来开启功能。APP使用起来方便快捷&#xff0c;随时随地开启直播、分享短视频。 整个系统具备非常完善、…

Docker部署(5)——使用docker run命令部署运行jar项目

对于一些简单的单体项目&#xff0c;可以使用 docker run 命令可以直接在命令行中运行容器&#xff0c;无需事先构建镜像。这相较于之前使用的 dockerfile 文件来运行部署项目相当于是另外一种简单的部署方法&#xff0c;关于之前使用dockerfile 文件来运行部署这种方法&#x…

错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li

错误&#xff1a; 错误原因&#xff1a;没有删除之前安装的依赖问题 解决办法&#xff1a; yum remove mysql-libs 再用下面指令检查一遍&#xff1a; rpm -qa | grep mysql 如果有还未清理的&#xff0c;用下面指令&#xff1a; rpm -e xxx

分布式定时任务框架Quartz总结和实践(2)—持久化到Mysql数据库

本文主要介绍分布式定时任务框架Quartz集成SpringBoot持久化数据到Mysql数据库的操作&#xff0c;上一篇文章使用Quartz创建定时任务都是保存在内存中&#xff0c;如果服务重启定时任务就会失效&#xff0c;所以Quartz官方也提供将定时任务等信息持久化到Mysql数据库的功能&…

C语言数值表示——进制、数值存储方式

进制 进制也就是进位制&#xff0c;是人们规定的一种进位方法对于任何一种进制—X进制&#xff0c;就表示某一位置上的数运算时是逢X进一位 十进制是逢十进一&#xff0c;十六进制是逢十六进一&#xff0c;二进制就是逢二进一&#xff0c;以此类推&#xff0c;x进制就是逢x进位…

如何提高工业网关的数据传输速度?

工业网关是工业物联网系统中不可或缺的设备&#xff0c;提高工业网关的数据采集、传输速度&#xff0c;是保障和优化物联网系统运营效率的基础。如何提高工业物联网关的数据传输速度&#xff1f;本篇就为大家简单介绍一下。 1、选用高品质网络设备 选用具有足够带宽容量的高质…