4567789
This commit is contained in:
1 parent
bac04def8e
commit
160a06bdb6
7 files changed
+106
-31
No files matched your search
@@ -10,7 +10,7 @@ from .utils.request import requestApiToUpdateSliceStatusComplate
|
|||||||
from utils.config import cfg
|
from utils.config import cfg
|
||||||
|
|
||||||
|
|
||||||
def upLoadSliceFileToOSS(folderPath):
|
def upLoadSliceFileToOSS(data):
|
||||||
exe_path = cfg('exe.small_exe', None)
|
exe_path = cfg('exe.small_exe', None)
|
||||||
if not exe_path:
|
if not exe_path:
|
||||||
print(f"错误:exe_path 未配置")
|
print(f"错误:exe_path 未配置")
|
||||||
@@ -24,7 +24,7 @@ def upLoadSliceFileToOSS(folderPath):
|
|||||||
if os.path.isdir(file1):
|
if os.path.isdir(file1):
|
||||||
dataFilePath = os.path.join(dataFolder,file1, 'data.snslc')
|
dataFilePath = os.path.join(dataFolder,file1, 'data.snslc')
|
||||||
if os.path.exists(dataFilePath):
|
if os.path.exists(dataFilePath):
|
||||||
upload_file(f"complatte/slice/{folderPath}/data.snslc", dataFilePath)
|
upload_file(f"slice/complate/{data}/data.snslc", dataFilePath)
|
||||||
|
|
||||||
|
|
||||||
#"C:/test/10192_small_No4/data"
|
#"C:/test/10192_small_No4/data"
|
||||||
@@ -59,7 +59,7 @@ def BeginSliceing(batchId,machineId, folderPath,data):
|
|||||||
# 开启死循环,判断文件是否全部导入成功
|
# 开启死循环,判断文件是否全部导入成功
|
||||||
log("切片结束")
|
log("切片结束")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
res = upLoadSliceFileToOSS(folderPath)
|
res = upLoadSliceFileToOSS(data)
|
||||||
if not res:
|
if not res:
|
||||||
print("上传切片文件失败")
|
print("上传切片文件失败")
|
||||||
exit(1)
|
exit(1)
|
||||||
@@ -67,7 +67,7 @@ def BeginSliceing(batchId,machineId, folderPath,data):
|
|||||||
# requestApiToUpdateSliceStatusComplate(batchId, 0)
|
# requestApiToUpdateSliceStatusComplate(batchId, 0)
|
||||||
# sadd 插入对应的队列
|
# sadd 插入对应的队列
|
||||||
r = redisClient()
|
r = redisClient()
|
||||||
r.sadd('pb:begin_print_machine_'+machineId, batchId)
|
r.sadd('pb:begin_print_machine_'+machineId, data)
|
||||||
|
|
||||||
def main(work_dir=None):
|
def main(work_dir=None):
|
||||||
r = redisClient()
|
r = redisClient()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import zipfile,time
|
|||||||
import os
|
import os
|
||||||
from .utils.oss_redis import redisClient
|
from .utils.oss_redis import redisClient
|
||||||
from .utils.logs import log
|
from .utils.logs import log
|
||||||
|
from utils.config import cfg
|
||||||
# 打印机旁边的电脑下载切片文件到本地
|
# 打印机旁边的电脑下载切片文件到本地
|
||||||
# 解压压缩包,将数据移动到指定的目录
|
# 解压压缩包,将数据移动到指定的目录
|
||||||
#
|
#
|
||||||
@@ -26,19 +26,29 @@ def unzip(localZipPath, localUnzipPath):
|
|||||||
|
|
||||||
def getCurrentMachineId():
|
def getCurrentMachineId():
|
||||||
# 获取当前电脑的id
|
# 获取当前电脑的id
|
||||||
return "1"
|
machineId = cfg('machine.id', None)
|
||||||
|
if machineId is None:
|
||||||
|
log("获取当前电脑id失败")
|
||||||
|
exit(0)
|
||||||
|
return machineId
|
||||||
|
|
||||||
def main(work_dir=None):
|
def main(work_dir=None):
|
||||||
if work_dir is None:
|
# if work_dir is None:
|
||||||
log("工作目录不能为空")
|
# log("工作目录不能为空")
|
||||||
exit(0)
|
# exit(0)
|
||||||
# redis 获取队列中的数据
|
# redis 获取队列中的数据
|
||||||
r = redisClient()
|
r = redisClient()
|
||||||
machineId = getCurrentMachineId()
|
machineId = getCurrentMachineId()
|
||||||
if machineId is None:
|
if machineId is None:
|
||||||
log("获取当前电脑id失败")
|
log("获取当前电脑id失败")
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
|
downloadPath = cfg('machine.download_path', None)
|
||||||
|
if downloadPath is None:
|
||||||
|
log("数据存放路径失败没有设置")
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
data = r.lpop('pb:begin_print_machine_'+machineId)
|
data = r.lpop('pb:begin_print_machine_'+machineId)
|
||||||
if data is None:
|
if data is None:
|
||||||
@@ -47,24 +57,24 @@ def main(work_dir=None):
|
|||||||
continue
|
continue
|
||||||
data = data.decode('utf-8')
|
data = data.decode('utf-8')
|
||||||
# 判断是否是数字
|
# 判断是否是数字
|
||||||
if not data.isdigit():
|
if data.isdigit():
|
||||||
log("取出的数据不是数字")
|
log("取出的数据是数字")
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
continue
|
continue
|
||||||
batchId = str(data)
|
# batchId = str(data)
|
||||||
ossZipPath = f'data/slice/{batchId}.zip'
|
ossZipPath = f'slice/complate/{data}/data.snslc'
|
||||||
localZipPath = os.path.join(work_dir,batchId, f'{batchId}.zip')
|
localPath = os.path.join(downloadPath, f'data.snslc')
|
||||||
# 判断目录是否存在,不存在就创建
|
# 判断目录是否存在,不存在就创建
|
||||||
if not os.path.exists(os.path.join(work_dir,batchId)):
|
if not os.path.exists(os.path.join(downloadPath)):
|
||||||
os.makedirs(os.path.join(work_dir,batchId))
|
os.makedirs(os.path.join(downloadPath))
|
||||||
else:
|
else:
|
||||||
# 删除目录下的所有文件
|
# 删除目录下的所有文件
|
||||||
for file in os.listdir(os.path.join(work_dir,batchId)):
|
for file in os.listdir(os.path.join(downloadPath)):
|
||||||
os.remove(os.path.join(work_dir,batchId, file))
|
os.remove(os.path.join(downloadPath, file))
|
||||||
|
|
||||||
# 下载 zip 文件
|
# 下载 zip 文件
|
||||||
downloadZip(ossZipPath, localZipPath)
|
downloadZip(ossZipPath, localPath)
|
||||||
# 解压 zip 文件
|
# # 解压 zip 文件
|
||||||
localUnzipPath = os.path.join(work_dir,batchId)
|
# localUnzipPath = os.path.join(work_dir,batchId)
|
||||||
unzip(localZipPath, localUnzipPath)
|
# unzip(localZipPath, localUnzipPath)
|
||||||
# 触发打印处理
|
# # 触发打印处理
|
||||||
@@ -39,7 +39,22 @@ def build_exe():
|
|||||||
'--hidden-import=download_batch_data',
|
'--hidden-import=download_batch_data',
|
||||||
'--hidden-import=download_batch_data.main_download_batch_data_and_trans',
|
'--hidden-import=download_batch_data.main_download_batch_data_and_trans',
|
||||||
'--hidden-import=auto_sliceing_operate.utils',
|
'--hidden-import=auto_sliceing_operate.utils',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.exe_operate',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.click_soft_button',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.import_all_file',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.miniIo',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.oss_redis',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.request',
|
||||||
|
'--hidden-import=auto_sliceing_operate.utils.logs',
|
||||||
'--hidden-import=download_batch_data.utils',
|
'--hidden-import=download_batch_data.utils',
|
||||||
|
'--hidden-import=download_batch_data.utils.funcs',
|
||||||
|
'--hidden-import=download_batch_data.utils.small_machine_transform',
|
||||||
|
'--hidden-import=download_batch_data.utils.oss_redis',
|
||||||
|
'--hidden-import=download_batch_data.utils.oss_func',
|
||||||
|
'--hidden-import=download_batch_data.utils.changeFiles',
|
||||||
|
'--hidden-import=download_batch_data.utils.logs',
|
||||||
|
'--hidden-import=utils',
|
||||||
|
'--hidden-import=utils.config',
|
||||||
|
|
||||||
# UI 自动化相关模块
|
# UI 自动化相关模块
|
||||||
'--hidden-import=uiautomation',
|
'--hidden-import=uiautomation',
|
||||||
@@ -58,6 +73,36 @@ def build_exe():
|
|||||||
# 其他可能需要的模块
|
# 其他可能需要的模块
|
||||||
'--hidden-import=psutil', # 进程管理(可选,但有 try-except)
|
'--hidden-import=psutil', # 进程管理(可选,但有 try-except)
|
||||||
|
|
||||||
|
# NumPy 相关模块(用于 small_machine_transform.py)
|
||||||
|
'--hidden-import=numpy',
|
||||||
|
'--hidden-import=numpy.core',
|
||||||
|
'--hidden-import=numpy.core._methods',
|
||||||
|
'--hidden-import=numpy.lib',
|
||||||
|
'--hidden-import=numpy.lib.format',
|
||||||
|
'--collect-all=numpy', # 收集 numpy 的所有子模块和依赖
|
||||||
|
|
||||||
|
# OSS2 客户端相关模块
|
||||||
|
'--hidden-import=oss2',
|
||||||
|
'--hidden-import=oss2.models',
|
||||||
|
'--hidden-import=oss2.exceptions',
|
||||||
|
'--collect-all=oss2', # 收集 oss2 的所有子模块和依赖
|
||||||
|
|
||||||
|
# Redis 客户端相关模块
|
||||||
|
'--hidden-import=redis',
|
||||||
|
'--hidden-import=redis.connection',
|
||||||
|
'--hidden-import=redis.client',
|
||||||
|
'--collect-all=redis', # 收集 redis 的所有子模块和依赖
|
||||||
|
|
||||||
|
# Requests 相关模块
|
||||||
|
'--hidden-import=requests',
|
||||||
|
'--hidden-import=requests.adapters',
|
||||||
|
'--hidden-import=urllib3',
|
||||||
|
'--collect-all=requests', # 收集 requests 的所有子模块和依赖
|
||||||
|
|
||||||
|
# TOML 配置文件解析模块
|
||||||
|
'--hidden-import=toml', # 如果 Python < 3.11 需要 toml 包
|
||||||
|
'--hidden-import=tomllib', # Python 3.11+ 内置模块
|
||||||
|
|
||||||
# MinIO 客户端相关模块
|
# MinIO 客户端相关模块
|
||||||
'--hidden-import=minio',
|
'--hidden-import=minio',
|
||||||
'--hidden-import=minio.error',
|
'--hidden-import=minio.error',
|
||||||
@@ -161,9 +206,19 @@ def build_exe():
|
|||||||
print()
|
print()
|
||||||
print("使用方法:")
|
print("使用方法:")
|
||||||
print(" factory_sliceing.exe <command> [work_dir]")
|
print(" factory_sliceing.exe <command> [work_dir]")
|
||||||
print(" 可用命令: batch_download | begin_sliceing | download_zip")
|
print(" 可用命令:")
|
||||||
|
print(" - batch_download: 批量下载数据并转换")
|
||||||
|
print(" - begin_sliceing: 开始切片处理")
|
||||||
|
print(" - download_zip: 下载切片文件")
|
||||||
print()
|
print()
|
||||||
print("注意: 配置文件 config.toml 需要放在 exe 同级目录")
|
print(" 示例:")
|
||||||
|
print(" factory_sliceing.exe batch_download D:/work")
|
||||||
|
print(" factory_sliceing.exe begin_sliceing")
|
||||||
|
print(" factory_sliceing.exe download_zip")
|
||||||
|
print()
|
||||||
|
print("注意:")
|
||||||
|
print(" - 配置文件 config.toml 需要放在 exe 同级目录")
|
||||||
|
print(" - work_dir 参数可选,如果未提供将从配置文件读取默认值")
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
print("打包失败!")
|
print("打包失败!")
|
||||||
|
|||||||
@@ -42,3 +42,7 @@ soft_name = "赛纳3D打印控制系统 V1.4.3.6"
|
|||||||
big_exe = ""
|
big_exe = ""
|
||||||
small_exe = "C:/Users/Administrator/print_factory_type_setting/software/小机型 切片软件/切片软件V1.4.3.6_2/切片软件V1.4.3.6_2/NormalTek.ThreeDPrinter.UI.exe"
|
small_exe = "C:/Users/Administrator/print_factory_type_setting/software/小机型 切片软件/切片软件V1.4.3.6_2/切片软件V1.4.3.6_2/NormalTek.ThreeDPrinter.UI.exe"
|
||||||
|
|
||||||
|
#机器编号
|
||||||
|
[machine]
|
||||||
|
id=1
|
||||||
|
download_path = ""
|
||||||
@@ -52,8 +52,10 @@ def step1(versionId):
|
|||||||
elif str(machineInfo["machine_type"]) == '2':
|
elif str(machineInfo["machine_type"]) == '2':
|
||||||
machineType = 'big'
|
machineType = 'big'
|
||||||
keyValue = f'{versionId}_{machineType}_No{machineInfo["id"]}'
|
keyValue = f'{versionId}_{machineType}_No{machineInfo["id"]}'
|
||||||
r = redisClient()
|
# 小机台才塞入我的切片队列,大机台有自己的切片队列
|
||||||
r.sadd('pb:to_sliceing', keyValue)
|
if machineType == 'small':
|
||||||
|
r = redisClient()
|
||||||
|
r.sadd('pb:to_sliceing', keyValue)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ if __name__ == '__main__':
|
|||||||
}
|
}
|
||||||
|
|
||||||
# 检查参数数量
|
# 检查参数数量
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2 and sys.argv[1] != 'download_zip':
|
||||||
print('Usage: python main.py <command> [work_dir]')
|
print('Usage: python main.py <command> [work_dir]')
|
||||||
print('可用命令:', ' | '.join(command_handlers.keys()))
|
print('可用命令:', ' | '.join(command_handlers.keys()))
|
||||||
print('\n注意: work_dir 参数可选,如果未提供将从配置文件读取默认值')
|
print('\n注意: work_dir 参数可选,如果未提供将从配置文件读取默认值')
|
||||||
@@ -29,14 +29,15 @@ if __name__ == '__main__':
|
|||||||
print('可用命令:', ' | '.join(command_handlers.keys()))
|
print('可用命令:', ' | '.join(command_handlers.keys()))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# 获取工作目录:优先使用命令行参数,其次使用配置文件,最后使用当前目录
|
# 获取工作目录:优先使用命令行参数,其次使用配置文件,最后使用 None
|
||||||
work_dir = sys.argv[2]
|
work_dir = sys.argv[2]
|
||||||
|
|
||||||
# 打印配置信息(可选,用于调试)
|
# 打印配置信息(可选,用于调试)
|
||||||
if cfg('log.level', 'INFO') == 'DEBUG':
|
if cfg('log.level', 'INFO') == 'DEBUG':
|
||||||
print(f'配置信息:')
|
print(f'配置信息:')
|
||||||
print(f' - API URL: {cfg("api.base_url", "未配置")}')
|
print(f' - API URL: {cfg("api.base_url", "未配置")}')
|
||||||
print(f' - Redis Host: {cfg("redis.host", "未配置")}')
|
print(f' - Redis Host: {cfg("redis.host", "未配置")}')
|
||||||
print(f' - 工作目录: {work_dir}')
|
print(f' - 工作目录: {work_dir if work_dir else "未指定(将使用默认值)"}')
|
||||||
|
|
||||||
# 执行对应的处理函数
|
# 执行对应的处理函数
|
||||||
command_handlers[command](work_dir=work_dir)
|
command_handlers[command](work_dir=work_dir)
|
||||||
@@ -12,6 +12,9 @@ oss2>=2.17.0
|
|||||||
# HTTP 请求
|
# HTTP 请求
|
||||||
requests>=2.28.0
|
requests>=2.28.0
|
||||||
|
|
||||||
|
# 数值计算(用于 small_machine_transform.py)
|
||||||
|
numpy>=1.20.0
|
||||||
|
|
||||||
# UI 自动化(Windows)
|
# UI 自动化(Windows)
|
||||||
uiautomation>=2.0.0
|
uiautomation>=2.0.0
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user