|
|
1 ماه پیش | |
|---|---|---|
| node_caller | 1 ماه پیش | |
| .gitignore | 1 ماه پیش | |
| api_test.py | 1 سال پیش | |
| build.py | 1 ماه پیش | |
| data_analyse_origin.py | 1 ماه پیش | |
| data_clean.py | 1 ماه پیش | |
| entry.py | 1 ماه پیش | |
| frequency_filter.py | 7 ماه پیش | |
| keygen.py | 1 ماه پیش | |
| license_checker.py | 1 ماه پیش | |
| orginal_plot.py | 1 ماه پیش | |
| readme.md | 1 ماه پیش | |
| requirements.txt | 1 ماه پیش | |
| 接口说明.md | 1 سال پیش |
将激光测距仪硬件根据测量方法采集到的数据进行分析处理,得到各种分析结果,包括:
导入1台风机的2组标准测量数据(定位(locate)数据和测量(measure)数据),输入风机的锥角和轴向倾角,即可得到分析结果。此外本项目还具有:
| 文件名 | 功能描述 |
|---|---|
| api_test.py | 和前端的接口传输 |
| data_analyse_origin.py | 调用frequency_filter.py组成的完整的算法代码,包含了data_clean.py中的全部功能。有着完整的注释、检查点和日志输出,不依赖软件即可分析,并添加了画图功能,但分析结果无法自动保存,通常用作算法调试。 |
| data_clean.py | 调用frequency_filter.py组成的完整算法代码,但是没有注释、检查点和日志输出,无画图功能。是api_test.py调用的主程序,用于软件部署。 |
| frequency_filter.py | 塔筒振动分析,叶根叶尖处塔筒距离计算,是完整算法的重要组成部分,内部有已经被注释掉的塔筒振动画图算法。 |
| orginal_plot.py | 读取原始测量数据存储文件夹中的全部数据并绘图,通常用于检验原始数据基本情况。 |
尽可能的防反编译或增加反编译成本(时间、解读)。
pip 安装 nuitka、 codeenigma 、cryptography
执行命令:python keygen.py genkey
输出到 dist/license/ 目录:private_key.pem、public_key.pem
# 永不过期
python keygen.py genlicense --expire "never" --product "laser_cal" --version "1.0.0" --licensee "客户名"
# 指定过期日期
python keygen.py genlicense --expire "2027-12-31" --product "laser_cal" --version "1.0.0" --licensee "客户名"
# 清理
python build.py --clean
# 混淆 + 编译(standalone 模式)
python build.py
# 混淆 + 编译(单文件模式)
python build.py --onefile
# 混淆 + 编译为可执行程序(推荐生产使用)
python build.py --exe
# 仅编译,跳过混淆
python build.py --skip-obfuscate
# 仅编译为可执行程序(跳过混淆,开发调试用)
python build.py --exe --skip-obfuscate
# 编译为单文件(最便于分发)
python build.py --onefile --skip-obfuscate
# 编译为共享库(原有模式,向后兼容;共享库在windows下为pyd文件,linux下位so文件)
python build.py --module --skip-obfuscate
注意事项
1. --exe (编译为可执行程序后,Node.js 不再需要 Python 环境,可以直接调用) 和 --onefile 模式会将 pandas、numpy、scipy 等大型库一起打包,编译时间较长(Windows 上约 5-15 分钟),产物体积较大(约 200-500MB)。
2. --module 模式编译快(约 30 秒),产物小,但运行时仍需要 Python 虚拟环境。
3. 三种模式均支持 --skip-obfuscate 跳过混淆步骤。
4. license.lic 和 public_key.pem 会自动复制到编译产物目录。
5. node_caller文件夹为 vue3 调用算法示例, 如命令: node -e "require('./node_caller/laser.js').callPython('getpath').then(console.log).catch(console.error)"