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

源码将于最后一遍文章给出下载

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

系统整体结构搭建

新建项目

输入项目名称:MonitorData

所谓兵马未动粮草先行,按下图创建好对应的模块备用:

com.plugins 业务插件模块

com.zxy.adminlog 日志或文本文件读写模块

com.zxy.autoUpdate 程序版本自动更新模块

com.zxy.business 通用业务处理模块

com.zxy.common 通用函数模块

com.zxy.comport 串口通讯模块

com.zxy.db_Self 静态接口配置库(Sqlit3)模块

com.zxy.db1 静态接口配置库(Sqlit3)模块

com.zxy.db2 业务数据库(Sqlite3)模块

com.zxy.interfaceReflect 通用插件管理模块

com.zxy.main 全局变量初始化模块

com.zxy.taskhandler 定时器任务模块

com.zxy.tcp tcp协议模块

编写主程序代码MonitorDataCmd.py,打印启动时间,sleep 5秒,然后打印结束时间

python 复制代码
#! python3
# -*- coding: utf-8 -
'''
Created on 2023年08月28日
@author: zxyong 13738196011
'''

import time
from com.zxy.common.Com_Fun import Com_Fun

#监测数据采集物联网应用-主程序
class MonitorDataCmd(object):

    def __init__(self, params):
        pass
    
    if __name__ == '__main__':
        print("监测数据采集物联网应用软件开始:"+Com_Fun.GetTimeDef())
        time.sleep(5)
        print("监测数据采集物联网应用软件结束:"+Com_Fun.GetTimeDef())

新建通用函数代码com.zxy.common.Com_Fun.py

python 复制代码
#! python3
# -*- coding: utf-8 -
'''
Created on 2023年08月28日
@author: zxyong 13738196011
'''

import datetime,uuid,time
from datetime import timedelta

#监测数据采集物联网应用--通用函数
class Com_Fun():
        
    def __init__(self):
        pass
    
    @staticmethod
    def NoNull(objTag):
        if objTag is None:
            return ""
        else:
            return str(objTag)
    
    @staticmethod
    def FloatNull(objTag):
        if objTag is None or objTag == "" or objTag == "-":
            return 0
        else:
            return float(objTag)
        
    @staticmethod
    def ZeroNull(objTag):
        if objTag is None or objTag == "":
            return 0
        else:
            return int(objTag)
        
    @staticmethod
    def GetLong(inputTimeFormat,inputTime):
        if len(inputTime) > 19:
            inputTime = inputTime[0:19]
        time1=datetime.datetime.strptime(inputTime.replace("T"," "),inputTimeFormat)
        return time.mktime(time1.timetuple())

    #获得当前时间戳
    @staticmethod
    def getTimeLong():
        temT = datetime.datetime.now()
        timeStamp = time.mktime(temT.timetuple())
        return timeStamp

    #日期信息格式化timeFormat : '%Y-%m-%d %H:%M:%S'
    @staticmethod
    def GetTime(inputTimeFormat):
        return datetime.datetime.now().strftime(inputTimeFormat)
    
    #日期信息格式化秒数据10整数化
    @staticmethod
    def GetTimeNum(inputTime):
        temTime = datetime.datetime.strptime(inputTime.replace("T", " "),"%Y-%m-%d %H:%M:%S")
        temSB = temTime.strftime("%Y-%m-%d %H:%M")
        temSE = temTime.strftime("%S")
        temSec = int(int(temSE) / 10)
        return temSB+":"+str(temSec)+"0"
        
    #日期信息格式化timeFormat : '%Y-%m-%d %H:%M:%S'
    @staticmethod
    def GetTimeDef():
        return str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    
    #日期信息格式化timeFormat : '%Y-%m-%d %H:%M:%S' 字符串
    @staticmethod
    def GetTimeInput(inputTimeFormat,inputTime):
        if inputTime is None or inputTime == "":
            return "1900-01-01 00:00:00"
        time1=datetime.datetime.strptime(inputTime.replace("T", " "),inputTimeFormat)
        return time1
    
    #日期信息格式化timeFormat : '%Y-%m-%d %H:%M:%S' 字符串
    @staticmethod
    def GetStrTimeInput(inputTimeFormat,inputTime):
        if inputTime is None or inputTime == "":
            return "1900-01-01 00:00:00"
        time1=datetime.datetime.strptime(inputTime.replace("T", " "),inputTimeFormat)
        return str(time1)
        
    #返回time格式
    @staticmethod
    def GetToTimeInput(inputTimeFormat,inputTime):
        if inputTime is None or inputTime == "":
            return "1900-01-01 00:00:00"
        elif len(inputTime) <= 19:
            return datetime.datetime.strptime(inputTime.replace("T"," "),inputTimeFormat)
        else:
            return datetime.datetime.strptime(inputTime[0:19],inputTimeFormat)
        
    #日期信息格式化timeFormat : '%Y-%m-%d %H:%M:%S',返回字符串格式
    @staticmethod
    def GetDateInput(inputDateFormat,inputTimeFormat,inputTime):
        if len(inputTime) < 10 or inputTime is None or  inputTime == "":
            return "1900-01-01"
        time1=datetime.datetime.strptime(inputTime.replace("T"," "),inputTimeFormat)
        return time1.strftime(inputDateFormat)
    
    #(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
    @staticmethod
    def DateTimeAdd(inputDate,inputDateType,inputNum):
        #%d %H:%M:%S
        delta = None
        if inputDateType == "d":
            delta = timedelta(days=inputNum)
        elif inputDateType == "W":
            delta = timedelta(weeks=inputNum)
        elif inputDateType == "H":
            delta = timedelta(hours=inputNum)
        elif inputDateType == "M":
            delta = timedelta(minutes=inputNum)
        elif inputDateType == "S":
            delta = timedelta(seconds=inputNum)
        return inputDate + delta
        
    @staticmethod
    def SetHashTable(inputHt,inputStrKey,inputStrValue):
        if inputHt is None:
            inputHt = {}
        inputHt[inputStrKey] = inputStrValue
    
    @staticmethod
    def GetHashTable(inputHt,inputStrKey):
        if inputHt is None or inputStrKey not in list(inputHt.keys()):
            return ""
        else:
            return inputHt[inputStrKey]

    @staticmethod
    def GetHashTableNone(inputHt,inputStrKey):
        if inputHt is None or inputStrKey not in list(inputHt.keys()):
            return None
        else:
            return inputHt[inputStrKey]

    @staticmethod
    def RemoveHashTable(inputHt,inputStrKey):
        if inputHt.get(inputStrKey) is not None:
            inputHt.pop(inputStrKey)
    
    @staticmethod
    def Str_To_Int(inputStr):
        if inputStr is not None and inputStr != "":
            return int(inputStr)
        else:
            return 0
    
    @staticmethod
    def Get_New_GUID():
        return str(uuid.uuid1()).upper()

运行程序,选择主程序右键:

程序执行结果:

恭喜你!系统整体结构搭建完成。

  1. 监测数据采集物联网应用开发步骤(4)
相关推荐
denghai邓海21 分钟前
红黑树删除之向上调整
python·b+树
封步宇AIGC1 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
何曾参静谧1 小时前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices1 小时前
C++如何调用Python脚本
开发语言·c++·python
我狠狠地刷刷刷刷刷1 小时前
中文分词模拟器
开发语言·python·算法
Jam-Young1 小时前
Python的装饰器
开发语言·python
Mr.咕咕2 小时前
Django 搭建数据管理web——商品管理
前端·python·django
AnFany2 小时前
LeetCode【0028】找出字符串中第一个匹配项的下标
python·算法·leetcode·字符串·kmp·字符串匹配
爪哇学长2 小时前
Java API类与接口:日期类型与集合的使用
java·开发语言·python
EterNity_TiMe_2 小时前
【论文复现】STM32设计的物联网智能鱼缸
stm32·单片机·嵌入式硬件·物联网·学习·性能优化