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
|
||||
|
||||
|
||||
def upLoadSliceFileToOSS(folderPath):
|
||||
def upLoadSliceFileToOSS(data):
|
||||
exe_path = cfg('exe.small_exe', None)
|
||||
if not exe_path:
|
||||
print(f"错误:exe_path 未配置")
|
||||
@@ -24,7 +24,7 @@ def upLoadSliceFileToOSS(folderPath):
|
||||
if os.path.isdir(file1):
|
||||
dataFilePath = os.path.join(dataFolder,file1, 'data.snslc')
|
||||
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"
|
||||
@@ -59,7 +59,7 @@ def BeginSliceing(batchId,machineId, folderPath,data):
|
||||
# 开启死循环,判断文件是否全部导入成功
|
||||
log("切片结束")
|
||||
time.sleep(5)
|
||||
res = upLoadSliceFileToOSS(folderPath)
|
||||
res = upLoadSliceFileToOSS(data)
|
||||
if not res:
|
||||
print("上传切片文件失败")
|
||||
exit(1)
|
||||
@@ -67,7 +67,7 @@ def BeginSliceing(batchId,machineId, folderPath,data):
|
||||
# requestApiToUpdateSliceStatusComplate(batchId, 0)
|
||||
# sadd 插入对应的队列
|
||||
r = redisClient()
|
||||
r.sadd('pb:begin_print_machine_'+machineId, batchId)
|
||||
r.sadd('pb:begin_print_machine_'+machineId, data)
|
||||
|
||||
def main(work_dir=None):
|
||||
r = redisClient()
|
||||
|
||||
@@ -3,7 +3,7 @@ import zipfile,time
|
||||
import os
|
||||
from .utils.oss_redis import redisClient
|
||||
from .utils.logs import log
|
||||
|
||||
from utils.config import cfg
|
||||
# 打印机旁边的电脑下载切片文件到本地
|
||||
# 解压压缩包,将数据移动到指定的目录
|
||||
#
|
||||
@@ -26,19 +26,29 @@ def unzip(localZipPath, localUnzipPath):
|
||||
|
||||
def getCurrentMachineId():
|
||||
# 获取当前电脑的id
|
||||
return "1"
|
||||
|
||||
machineId = cfg('machine.id', None)
|
||||
if machineId is None:
|
||||
log("获取当前电脑id失败")
|
||||
exit(0)
|
||||
return machineId
|
||||
|
||||
def main(work_dir=None):
|
||||
if work_dir is None:
|
||||
log("工作目录不能为空")
|
||||
exit(0)
|
||||
# if work_dir is None:
|
||||
# log("工作目录不能为空")
|
||||
# exit(0)
|
||||
# redis 获取队列中的数据
|
||||
r = redisClient()
|
||||
machineId = getCurrentMachineId()
|
||||
if machineId is None:
|
||||
log("获取当前电脑id失败")
|
||||
exit(0)
|
||||
|
||||
downloadPath = cfg('machine.download_path', None)
|
||||
if downloadPath is None:
|
||||
log("数据存放路径失败没有设置")
|
||||
exit(0)
|
||||
|
||||
|
||||
while True:
|
||||
data = r.lpop('pb:begin_print_machine_'+machineId)
|
||||
if data is None:
|
||||
@@ -47,24 +57,24 @@ def main(work_dir=None):
|
||||
continue
|
||||
data = data.decode('utf-8')
|
||||
# 判断是否是数字
|
||||
if not data.isdigit():
|
||||
log("取出的数据不是数字")
|
||||
if data.isdigit():
|
||||
log("取出的数据是数字")
|
||||
time.sleep(10)
|
||||
continue
|
||||
batchId = str(data)
|
||||
ossZipPath = f'data/slice/{batchId}.zip'
|
||||
localZipPath = os.path.join(work_dir,batchId, f'{batchId}.zip')
|
||||
# batchId = str(data)
|
||||
ossZipPath = f'slice/complate/{data}/data.snslc'
|
||||
localPath = os.path.join(downloadPath, f'data.snslc')
|
||||
# 判断目录是否存在,不存在就创建
|
||||
if not os.path.exists(os.path.join(work_dir,batchId)):
|
||||
os.makedirs(os.path.join(work_dir,batchId))
|
||||
if not os.path.exists(os.path.join(downloadPath)):
|
||||
os.makedirs(os.path.join(downloadPath))
|
||||
else:
|
||||
# 删除目录下的所有文件
|
||||
for file in os.listdir(os.path.join(work_dir,batchId)):
|
||||
os.remove(os.path.join(work_dir,batchId, file))
|
||||
for file in os.listdir(os.path.join(downloadPath)):
|
||||
os.remove(os.path.join(downloadPath, file))
|
||||
|
||||
# 下载 zip 文件
|
||||
downloadZip(ossZipPath, localZipPath)
|
||||
# 解压 zip 文件
|
||||
localUnzipPath = os.path.join(work_dir,batchId)
|
||||
unzip(localZipPath, localUnzipPath)
|
||||
# 触发打印处理
|
||||
downloadZip(ossZipPath, localPath)
|
||||
# # 解压 zip 文件
|
||||
# localUnzipPath = os.path.join(work_dir,batchId)
|
||||
# unzip(localZipPath, localUnzipPath)
|
||||
# # 触发打印处理
|
||||
@@ -39,7 +39,22 @@ def build_exe():
|
||||
'--hidden-import=download_batch_data',
|
||||
'--hidden-import=download_batch_data.main_download_batch_data_and_trans',
|
||||
'--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.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 自动化相关模块
|
||||
'--hidden-import=uiautomation',
|
||||
@@ -58,6 +73,36 @@ def build_exe():
|
||||
# 其他可能需要的模块
|
||||
'--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 客户端相关模块
|
||||
'--hidden-import=minio',
|
||||
'--hidden-import=minio.error',
|
||||
@@ -161,9 +206,19 @@ def build_exe():
|
||||
print()
|
||||
print("使用方法:")
|
||||
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("注意: 配置文件 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
|
||||
else:
|
||||
print("打包失败!")
|
||||
|
||||
@@ -42,3 +42,7 @@ soft_name = "赛纳3D打印控制系统 V1.4.3.6"
|
||||
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"
|
||||
|
||||
#机器编号
|
||||
[machine]
|
||||
id=1
|
||||
download_path = ""
|
||||
@@ -52,8 +52,10 @@ def step1(versionId):
|
||||
elif str(machineInfo["machine_type"]) == '2':
|
||||
machineType = 'big'
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -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('可用命令:', ' | '.join(command_handlers.keys()))
|
||||
print('\n注意: work_dir 参数可选,如果未提供将从配置文件读取默认值')
|
||||
@@ -29,14 +29,15 @@ if __name__ == '__main__':
|
||||
print('可用命令:', ' | '.join(command_handlers.keys()))
|
||||
sys.exit(1)
|
||||
|
||||
# 获取工作目录:优先使用命令行参数,其次使用配置文件,最后使用当前目录
|
||||
# 获取工作目录:优先使用命令行参数,其次使用配置文件,最后使用 None
|
||||
work_dir = sys.argv[2]
|
||||
|
||||
# 打印配置信息(可选,用于调试)
|
||||
if cfg('log.level', 'INFO') == 'DEBUG':
|
||||
print(f'配置信息:')
|
||||
print(f' - API URL: {cfg("api.base_url", "未配置")}')
|
||||
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)
|
||||
@@ -12,6 +12,9 @@ oss2>=2.17.0
|
||||
# HTTP 请求
|
||||
requests>=2.28.0
|
||||
|
||||
# 数值计算(用于 small_machine_transform.py)
|
||||
numpy>=1.20.0
|
||||
|
||||
# UI 自动化(Windows)
|
||||
uiautomation>=2.0.0
|
||||
|
||||
|
||||
Reference in new issue
Block a user