# tDAL **Repository Path**: gitee_chenzhou/tDAL ## Basic Information - **Project Name**: tDAL - **Description**: 数据访问层(DAL)- Python: 1、负责与数据库进行交互,执行数据的增删改查操作; 2、它隐藏了数据访问的细节,为业务逻辑层(BLL)提供统一的数据访问接口; 3、数据访问层(DAL)的设计可以使业务逻辑层(BLL)与具体的数据存储方式解耦,便于数据库的迁移和扩展; 4、通讯协议层可以视为数据访问层(DAL)的一个子层或扩展,它负责处理与通信相关的细节,并向数据访问层提供必要的接口和服务。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/gitee_chenzhou - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-23 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, sqlite3, serial, crcmod, binascii ## README # tDAL #### 介绍 数据访问层(DAL): 1、负责与数据库进行交互,执行数据的增删改查操作; 2、它隐藏了数据访问的细节,为业务逻辑层(BLL)提供统一的数据访问接口; 3、数据访问层(DAL)的设计可以使业务逻辑层(BLL)与具体的数据存储方式解耦,便于数据库的迁移和扩展; 4、通讯协议层可以视为数据访问层(DAL)的一个子层或扩展,它负责处理与通信相关的细节,并向数据访问层提供必要的接口和服务。 #### 软件架构 基于Python实现 #### 导入说明 from DAL import * #### 资源说明 1. tBluetoothHelper.py:蓝牙通信模块; 2. tCrcCheck.py:CRC校验模块; 3. tJLinkHelper.py:J-Link通讯模块; 4. tModbusHelper.py:Modbus通信模块 & 串口通信模块; 5. tSQLiteHelper.py:SQLite数据库操作模块; #### 特技 1. Gitee 官方博客:[https://gitee.com/gitee_chenzhou](https://gitee.com/gitee_chenzhou) 2. CSDN 个人博客:[https://blog.csdn.net/sallyyellow?spm=1000.2115.3001.5343](https://blog.csdn.net/sallyyellow?spm=1000.2115.3001.5343) #### 更新日志 1. 2024.10.16 a. 增加Modbus通信通用模块中的数据地址(dataAdd)的输入格式判断功能 (`tDAL->tModbusHelper.py->f_modbusExecute()`) 2. 2024.12.17 a. Modbus通信通用模块增加 串口发送/读取信号 (`tDAL->tModbusHelper.py->__f_receiveMsgParse()`) 3. 2024.12.26 a. Modbus接收数据解析函数增加工业风机产测模式启动帧写入功能码33 (`tDAL->tModbusHelper.py->__f_receiveMsgParse()`) 4. 2024.12.31 a. Modbus通信通用模块 串口发送函数执行write()后发送写入信号 (`tDAL->tModbusHelper.py->f_comSend()`) 5. 2025.02.13 a. Modbus通信通用模块 增加串口发送/接受异常捕获,解决串口热插拔异常 (`tDAL->tModbusHelper.py->f_comSend()`) (`tDAL->tModbusHelper.py->f_comRead()`) 6. 2025.02.21 a. CRC校验通用模块 CRC16/CCITT校验的具体过程 增加补0操作 (`tDAL->tModbusHelper.py->__f_getCrcValueFunc()`) 7. 2025.02.28 a. 增加SQLite数据库操作模块 (`tDAL->tSQLiteHelper.py->ctSQLiteHelper`) 8. 2025.03.24 a. 增加蓝牙通信模块 (`tDAL->tBluetoothHelper.py->ctBluetoothHelper`) b. 优化蓝牙通信模块支持多设备连接 (`tDAL->tBluetoothHelper.py->ctBluetoothHelper`) c. 蓝牙扫描函数修改为仅当设备变化时发送信号 (`tDAL->tBluetoothHelper.py->__f_scanDevicesFunc()`) 9. 2025.05.06 a. Modbus通信通用模块 增加对波特率的处理 (`tDAL->tModbusHelper.py->f_openCom()`) b. Modbus通信通用模块 发送报文后增加0.01s的延时 (`tDAL->tModbusHelper.py->f_comSend()`) 10. 2025.06.17 a. 增加tJLinkHelper:J-Link通讯模块 (`tDAL->tJLinkHelper.py->ctJLinkHelper()`) 11. 2025.06.19 a. Modbus通信通用模块 读写开始结束信号 只有在Modbus通信时才发送 (`tDAL->tModbusHelper.py->ctModbusRTUHelper()->f_comSend()`) (`tDAL->tModbusHelper.py->ctModbusRTUHelper()->__f_receiveMsgParse()`) 12. 2025.06.24 a. J-Link通讯模块解决打包后dll路径问题 (`tDAL->tJLinkHelper.py->resource_path()`) 13. 2025.08.07 a. J-Link通讯模块增加RTT读取参数针对不同参数的解析功能 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readRttParametersFunc()`) 14. 2025.08.11 a. J-Link通讯模块修改读取内存值函数 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->f_readMemoryFunc()`) 15. 2025.08.12 a. J-Link通讯模块开始监控参数函数取消对地址的校验 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->f_startMonitoringFunc()`) 16. 2025.08.13 a. J-Link通讯模块解决添加新的观测点或曲线后重新启动监控时多个监控线程同时运行导致的程序卡死问题 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->f_startMonitoringFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->f_stopMonitoringFunc()`) 17. 2025.08.14 a. J-Link通讯模块根据AXF文件和配置中的"数据长度"读取相应字节数的数据 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readBatchMemoryFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_parseDataBytesFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readParamsIndividuallyFunc()`) 18. 2025.08.18 a. J-Link通讯模块将参数读取的唯一标识从名称改为地址 (`tDAL->tJLinkHelper.py->ctJLinkHelper()->f_startMonitoringFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readAsyncParametersFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readBatchMemoryFunc()`) (`tDAL->tJLinkHelper.py->ctJLinkHelper()->__f_readParamsIndividuallyFunc()`) 19. 2025.09.01 a. 新增ctModbusTCPHelper类实现Modbus TCP通讯功能 (`tDAL->tModbusHelper.py->ctModbusTCPHelper()`) b. 添加一个持续监听TCP连接的线程,用于接收所有来自服务器的数据 (`tDAL->tModbusHelper.py->ctModbusTCPHelper()`) 20. 2025.09.03 a. Modbus TCP通讯模块通讯执行和响应解析与Modbus RTU模块保持一致 (`tDAL->tModbusHelper.py->ctModbusTCPHelper()`) b. Modbus TCP通讯模块通讯的报文显示问题修复 (`tDAL->tModbusHelper.py->ctModbusTCPHelper()->__f_tcpReceiveThread()`) (`tDAL->tModbusHelper.py->ctModbusTCPHelper()->f_modbusExecute()`) c. 在TCP通讯过程中正确触发读写信号,更改状态栏读写状态灯 (`tDAL->tModbusHelper.py->ctModbusRTUHelper()->__f_receiveMsgParse()`) (`tDAL->tModbusHelper.py->ctModbusTCPHelper()->__f_parseModbusTCPResponse()`)