|
@@ -0,0 +1,619 @@
|
|
|
+#%%
|
|
|
+
|
|
|
+# 取得各網頁桶槽出料、入料優先順序
|
|
|
+while True:
|
|
|
+ # DB 取得桶槽狀態
|
|
|
+ # 將 優先順序 轉換成 桶槽狀態
|
|
|
+ # 桶槽狀態轉換
|
|
|
+ # 桶槽狀態存回 DB
|
|
|
+ # 若有改變狀態, 更新優先順序
|
|
|
+ break
|
|
|
+
|
|
|
+#%%
|
|
|
+# 測試 : 乾燥出料 對應 乾燥桶槽桶槽, 以利傳值到網頁, 供使用者排序
|
|
|
+
|
|
|
+import pymysql
|
|
|
+db = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='Gold@53743001', database='CoffeeManage', charset='utf8')
|
|
|
+c = db.cursor()
|
|
|
+
|
|
|
+# # 1. 先找到乾燥出料儲豆槽編號, tank_type = 乾燥出料:DO1、DO2
|
|
|
+c.execute("SELECT `tank_id` FROM `dry_tank_relation` WHERE `tank_type`='dry_out'")
|
|
|
+Dry_Out_Items = c.fetchall()
|
|
|
+for i in range(len(Dry_Out_Items)):
|
|
|
+ print("===== ", Dry_Out_Items[i][0], " ==========") # DO1
|
|
|
+ c.execute("SELECT `tank_id` FROM `dry_tank_relation` WHERE `tank_type` = 'dry_tank' AND `tank_export` = '" + Dry_Out_Items[i][0] + "'")
|
|
|
+ result = c.fetchall()
|
|
|
+ print(Dry_Out_Items[i][0], "_result:", result)
|
|
|
+ exec(Dry_Out_Items[i][0] + "_DryOut_Order = []")
|
|
|
+ # # 2. 找到出料為 DO1 且 tank_type = 乾燥桶槽 之桶槽號:D1、D2、D3;以此類推
|
|
|
+ for x in range(len(result)):
|
|
|
+ eval(Dry_Out_Items[i][0] + "_DryOut_Order.append(result[x][0])")
|
|
|
+ # eval("print('" + Dry_Out_Items[i][0] + "_DryOut_Order: ', DI1_DryOut_Order)")
|
|
|
+ print(Dry_Out_Items[i][0] + "_DryOut_Order:", eval(Dry_Out_Items[i][0] + "_DryOut_Order"))
|
|
|
+ # # 3. 請使用者分別排序 DO1 對應桶槽、DO2 對應桶槽
|
|
|
+ # print("-----------------------------------------------------------")
|
|
|
+db.commit()
|
|
|
+db.close()
|
|
|
+
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 乾燥出豆 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+DryOut_item = [
|
|
|
+ 'DO1',
|
|
|
+ 'DO2'
|
|
|
+]
|
|
|
+DryOut_item_status = []
|
|
|
+DryOut_order = [
|
|
|
+ ['D1', 'D2', 'D3'],
|
|
|
+ ['D4', 'D5', 'D6'],
|
|
|
+]
|
|
|
+DryOut_order_status = []
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 乾燥出豆 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+D1 = 'ReadyForOutputtingBean'
|
|
|
+D2 = 'Waiting'
|
|
|
+D3 = 'Waiting'
|
|
|
+D4 = 'Waiting'
|
|
|
+D5 = 'Waiting'
|
|
|
+D6 = 'Waiting'
|
|
|
+D7 = 'ReadyForOutputtingBean'
|
|
|
+D8 = 'OutputtingBean'
|
|
|
+DO1 = 'Waiting'
|
|
|
+DO2 = 'Waiting'
|
|
|
+print("D1:", D1)
|
|
|
+print("D2:", D2)
|
|
|
+print("D3:", D3)
|
|
|
+print("D4:", D4)
|
|
|
+print("D5:", D5)
|
|
|
+print("D6:", D6)
|
|
|
+print("DO1:", DO1)
|
|
|
+print("DO2:", DO2)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(DryOut_item)):
|
|
|
+ DryOut_item_status.append(eval(DryOut_item[i]))
|
|
|
+ # print(DryOut_item[i], eval(DryOut_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(DryOut_order[i])):
|
|
|
+ target_list.append(eval(DryOut_order[i][o]))
|
|
|
+ # print(DryOut_order[i][o], eval(DryOut_order[i][o]))
|
|
|
+ DryOut_order_status.append(target_list)
|
|
|
+ # print("===================================")
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(DryOut_item_status)):
|
|
|
+ if DryOut_item_status[i] == "Waiting" \
|
|
|
+ and DryOut_order_status[i].count('OutputtingBean') == 0 \
|
|
|
+ and DryOut_order_status[i].count('ReadyForOutputtingBean') != 0:
|
|
|
+ for o in range(len(DryOut_order_status[i])):
|
|
|
+ # print("=== OutputtingBean ", DryOut_order[i][o], "===")
|
|
|
+ if DryOut_order_status[i][o] == "ReadyForOutputtingBean":
|
|
|
+ exec(DryOut_order[i][o] + " = 'OutputtingBean'")
|
|
|
+ exec(DryOut_item[i] + " = 'InputtingBean'")
|
|
|
+ finish_order = DryOut_order[i][o]
|
|
|
+ # print(finish_order)
|
|
|
+ DryOut_order[i].pop(o)
|
|
|
+ DryOut_order[i].append(finish_order)
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("D1:", D1)
|
|
|
+print("D2:", D2)
|
|
|
+print("D3:", D3)
|
|
|
+print("D4:", D4)
|
|
|
+print("D5:", D5)
|
|
|
+print("D6:", D6)
|
|
|
+print("DO1:", DO1)
|
|
|
+print("DO2:", DO2)
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 乾燥入豆 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+DryIn_item = [
|
|
|
+ 'DI1',
|
|
|
+ 'DI2'
|
|
|
+]
|
|
|
+DryIn_item_status = []
|
|
|
+DryIn_order = [
|
|
|
+ ['D1', 'D2', 'D3'],
|
|
|
+ ['D4', 'D5', 'D6'],
|
|
|
+]
|
|
|
+DryIn_order_status = []
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 乾燥入豆 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+DI1 = 'OutputtingBean'
|
|
|
+DI2 = 'OutputtingBean'
|
|
|
+D1 = 'Drying'
|
|
|
+D2 = 'Waiting'
|
|
|
+D3 = 'Waiting'
|
|
|
+D4 = 'Drying'
|
|
|
+D5 = 'Waiting'
|
|
|
+D6 = 'Waiting'
|
|
|
+print("DI1:", DI1)
|
|
|
+print("DI2:", DI2)
|
|
|
+print("D1:", D1)
|
|
|
+print("D2:", D2)
|
|
|
+print("D3:", D3)
|
|
|
+print("D4:", D4)
|
|
|
+print("D5:", D5)
|
|
|
+print("D6:", D6)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(DryIn_item)):
|
|
|
+ DryIn_item_status.append(eval(DryIn_item[i]))
|
|
|
+ # print(DryIn_item[i], eval(DryIn_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(DryIn_order[i])):
|
|
|
+ target_list.append(eval(DryIn_order[i][o]))
|
|
|
+ # print(DryIn_order[i][o], eval(DryIn_order[i][o]))
|
|
|
+ DryIn_order_status.append(target_list)
|
|
|
+ # print("===================================")
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(DryIn_item)):
|
|
|
+ if DryIn_item_status[i] == "OutputtingBean" \
|
|
|
+ and DryIn_order_status[i].count('InputtingBean') == 0:
|
|
|
+ if DryIn_order_status[i].count('InputtingBean_Pause') != 0:
|
|
|
+ for o in range(len(DryIn_order_status[i])):
|
|
|
+ # print("=== Waiting ", DryIn_order[i][o], " ===")
|
|
|
+ if DryIn_order_status[i][o] == "InputtingBean_Pause":
|
|
|
+ # print(DryIn_order[i][o] + "= 'InputtingBean'")
|
|
|
+ exec(DryIn_order[i][o] + " = 'InputtingBean'")
|
|
|
+ break
|
|
|
+ elif DryIn_order_status[i].count('Waiting') != 0:
|
|
|
+ for o in range(len(DryIn_order_status[i])):
|
|
|
+ # print("=== Waiting ", DryIn_order[i][o], " ===")
|
|
|
+ if DryIn_order_status[i][o] == 'Waiting':
|
|
|
+ # print(DryIn_order[i][o] + "= 'InputtingBean'")
|
|
|
+ exec(DryIn_order[i][o] + " = 'InputtingBean'")
|
|
|
+ finish_order = DryIn_order[i][o]
|
|
|
+ print(finish_order)
|
|
|
+ DryIn_order[i].pop(o)
|
|
|
+ DryIn_order[i].append(finish_order)
|
|
|
+ print("NEW DryIn_order :", DryIn_order)
|
|
|
+ break
|
|
|
+ elif DryIn_item_status[i] == "Waiting" or DryIn_item_status[i] == "InputtingBean":
|
|
|
+ if DryIn_order_status.count('InputtingBean') != 0:
|
|
|
+ for o in range(len(DryIn_order_status)):
|
|
|
+ if DryIn_order_status[i][o] == 'InputtingBean':
|
|
|
+ exec(DryIn_order[i][o] + " = 'InputtingBean_Pause'")
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("DI1:", DI1)
|
|
|
+print("DI2:", DI2)
|
|
|
+print("D1:", D1)
|
|
|
+print("D2:", D2)
|
|
|
+print("D3:", D3)
|
|
|
+print("D4:", D4)
|
|
|
+print("D5:", D5)
|
|
|
+print("D6:", D6)
|
|
|
+
|
|
|
+# %%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 發酵出豆 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+FermentOut_item = [
|
|
|
+ 'FO1',
|
|
|
+ 'FO2'
|
|
|
+]
|
|
|
+FermentOut_item_status = []
|
|
|
+FermentOut_order = [
|
|
|
+ ['F1', 'F2', 'F3'],
|
|
|
+ ['F4', 'F5', 'F6'],
|
|
|
+]
|
|
|
+FermentOut_order_status = []
|
|
|
+
|
|
|
+
|
|
|
+# # === 乾燥出豆 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+F1 = 'Waiting'
|
|
|
+F2 = 'ReadyForOutputtingBean'
|
|
|
+F3 = 'Waiting'
|
|
|
+F4 = 'Waiting'
|
|
|
+F5 = 'Waiting'
|
|
|
+F6 = 'Waiting'
|
|
|
+F7 = 'ReadyForOutputtingBean'
|
|
|
+F8 = 'OutputtingBean'
|
|
|
+FO1 = 'Waiting'
|
|
|
+FO2 = 'Waiting'
|
|
|
+print("F1:", F1)
|
|
|
+print("F2:", F2)
|
|
|
+print("F3:", F3)
|
|
|
+print("F4:", F4)
|
|
|
+print("F5:", F5)
|
|
|
+print("F6:", F6)
|
|
|
+print("FO1:", FO1)
|
|
|
+print("FO2:", FO2)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(FermentOut_item)):
|
|
|
+ FermentOut_item_status.append(eval(FermentOut_item[i]))
|
|
|
+ # print(FermentOut_item[i], eval(FermentOut_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(FermentOut_order[i])):
|
|
|
+ target_list.append(eval(FermentOut_order[i][o]))
|
|
|
+ # print(FermentOut_order[i][o], eval(FermentOut_order[i][o]))
|
|
|
+ FermentOut_order_status.append(target_list)
|
|
|
+ # print("===================================")
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(FermentOut_item_status)):
|
|
|
+ if FermentOut_item_status[i] == "Waiting" \
|
|
|
+ and FermentOut_order_status[i].count('OutputtingBean') == 0 \
|
|
|
+ and FermentOut_order_status[i].count('ReadyForOutputtingBean') != 0:
|
|
|
+ for o in range(len(FermentOut_order_status[i])):
|
|
|
+ # print("=== OutputtingBean ", FermentOut_order[i][o], "===")
|
|
|
+ if FermentOut_order_status[i][o] == "ReadyForOutputtingBean":
|
|
|
+ exec(FermentOut_order[i][o] + " = 'OutputtingBean'")
|
|
|
+ exec(FermentOut_item[i] + " = 'InputtingBean'")
|
|
|
+ finish_order = FermentOut_order[i][o]
|
|
|
+ # print(finish_order)
|
|
|
+ FermentOut_order[i].pop(o)
|
|
|
+ FermentOut_order[i].append(finish_order)
|
|
|
+ print("NEW FermentOut_order", FermentOut_order)
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("F1:", F1)
|
|
|
+print("F2:", F2)
|
|
|
+print("F3:", F3)
|
|
|
+print("F4:", F4)
|
|
|
+print("F5:", F5)
|
|
|
+print("F6:", F6)
|
|
|
+print("FO1:", FO1)
|
|
|
+print("FO2:", FO2)
|
|
|
+
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 發酵入豆 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+FermentIn_item = [
|
|
|
+ 'FI1',
|
|
|
+ 'FI2'
|
|
|
+]
|
|
|
+FermentIn_item_status = []
|
|
|
+FermentIn_order = [
|
|
|
+ ['F1', 'F2', 'F3'],
|
|
|
+ ['F4', 'F5', 'F6'],
|
|
|
+]
|
|
|
+FermentIn_order_status = []
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 發酵入豆 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+FI1 = 'OutputtingBean'
|
|
|
+FI2 = 'OutputtingBean'
|
|
|
+F1 = 'Fermenting'
|
|
|
+F2 = 'Waiting'
|
|
|
+F3 = 'Waiting'
|
|
|
+F4 = 'Fermenting'
|
|
|
+F5 = 'Waiting'
|
|
|
+F6 = 'Waiting'
|
|
|
+print("FI1:", FI1)
|
|
|
+print("FI2:", FI2)
|
|
|
+print("F1:", F1)
|
|
|
+print("F2:", F2)
|
|
|
+print("F3:", F3)
|
|
|
+print("F4:", F4)
|
|
|
+print("F5:", F5)
|
|
|
+print("F6:", F6)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(FermentIn_item)):
|
|
|
+ FermentIn_item_status.append(eval(FermentIn_item[i]))
|
|
|
+ # print(FermentIn_item[i], eval(FermentIn_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(FermentIn_order[i])):
|
|
|
+ target_list.append(eval(FermentIn_order[i][o]))
|
|
|
+ # print(FermentIn_order[i][o], eval(FermentIn_order[i][o]))
|
|
|
+ FermentIn_order_status.append(target_list)
|
|
|
+ # print("===================================")
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(FermentIn_item)):
|
|
|
+ if FermentIn_item_status[i] == "OutputtingBean" \
|
|
|
+ and FermentIn_order_status[i].count('InputtingBean') == 0:
|
|
|
+ if FermentIn_order_status[i].count('InputtingBean_Pause') != 0:
|
|
|
+ for o in range(len(FermentIn_order_status[i])):
|
|
|
+ # print("=== Waiting ", FermentIn_order[i][o], " ===")
|
|
|
+ if FermentIn_order_status[i][o] == "InputtingBean_Pause":
|
|
|
+ # print(FermentIn_order[i][o] + "= 'InputtingBean'")
|
|
|
+ exec(FermentIn_order[i][o] + " = 'InputtingBean'")
|
|
|
+ break
|
|
|
+ elif FermentIn_order_status[i].count('Waiting') != 0:
|
|
|
+ for o in range(len(FermentIn_order_status[i])):
|
|
|
+ # print("=== Waiting ", FermentIn_order[i][o], " ===")
|
|
|
+ if FermentIn_order_status[i][o] == 'Waiting':
|
|
|
+ # print(FermentIn_order[i][o] + "= 'InputtingBean'")
|
|
|
+ exec(FermentIn_order[i][o] + " = 'InputtingBean'")
|
|
|
+ finish_order = FermentIn_order[i][o]
|
|
|
+ print(finish_order)
|
|
|
+ FermentIn_order[i].pop(o)
|
|
|
+ FermentIn_order[i].append(finish_order)
|
|
|
+ print("NEW FermentIn_order :", FermentIn_order)
|
|
|
+ break
|
|
|
+ elif FermentIn_item_status[i] == "Waiting" or FermentIn_item_status[i] == "InputtingBean":
|
|
|
+ if FermentIn_order_status.count('InputtingBean') != 0:
|
|
|
+ for o in range(len(FermentIn_order_status)):
|
|
|
+ if FermentIn_order_status[i][o] == 'InputtingBean':
|
|
|
+ exec(FermentIn_order[i][o] + " = 'InputtingBean_Pause'")
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("FI1:", FI1)
|
|
|
+print("FI2:", FI2)
|
|
|
+print("F1:", F1)
|
|
|
+print("F2:", F2)
|
|
|
+print("F3:", F3)
|
|
|
+print("F4:", F4)
|
|
|
+print("F5:", F5)
|
|
|
+print("F6:", F6)
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 發酵出料 to 乾燥入料 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+FtoD_item = [
|
|
|
+ 'FO1',
|
|
|
+ 'FO2'
|
|
|
+]
|
|
|
+FtoD_item_status = []
|
|
|
+FtoD_order = [
|
|
|
+ ['DO1'],
|
|
|
+ ['DO2']
|
|
|
+]
|
|
|
+FtoD_order_status = []
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 發酵出料 to 乾燥入料 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+FO1 = 'OutputtingBean'
|
|
|
+FO2 = 'OutputtingBean'
|
|
|
+DO1 = 'OutputtingBean'
|
|
|
+DO2 = 'Waiting'
|
|
|
+print("FO1:", FO1)
|
|
|
+print("FO2:", FO2)
|
|
|
+print("DO1:", DO1)
|
|
|
+print("DO2:", DO2)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(FtoD_item)):
|
|
|
+ # print(FtoD_item[i], eval(FtoD_item[i]))
|
|
|
+ FtoD_item_status.append(eval(FtoD_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(FtoD_order[i])):
|
|
|
+ # print(FtoD_order[i][o], eval(FtoD_order[i][o]))
|
|
|
+ target_list.append(eval(FtoD_order[i][o]))
|
|
|
+ FtoD_order_status.append(target_list)
|
|
|
+ # print("===================================")
|
|
|
+# print("FtoD_item_status: ", FtoD_item_status)
|
|
|
+# print("FtoD_order_status: ", FtoD_order_status)
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(FtoD_item_status)):
|
|
|
+ if FtoD_item_status[i] == "OutputtingBean" \
|
|
|
+ and FtoD_order_status[i].count('InputtingBean') == 0 \
|
|
|
+ and FtoD_order_status[i].count('Waiting') != 0 :
|
|
|
+ for o in range(len(FtoD_order_status[i])):
|
|
|
+ print("=== InputtingBean ", FtoD_order[i][o], "===")
|
|
|
+ if FtoD_order_status[i][o] == "Waiting":
|
|
|
+ exec(FtoD_order[i][o] + " = 'InputtingBean'")
|
|
|
+ finish_order = FtoD_order[i][o]
|
|
|
+ print(finish_order)
|
|
|
+ FtoD_order[i].pop(o)
|
|
|
+ FtoD_order[i].append(finish_order)
|
|
|
+ print("NEW FtoD_order :", FtoD_order)
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("FO1:", FO1)
|
|
|
+print("FO2:", FO2)
|
|
|
+print("DO1:", DO1)
|
|
|
+print("DO2:", DO2)
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 脫皮出料 1/2 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+PeelOut_item = [
|
|
|
+ 'P1',
|
|
|
+ 'P2'
|
|
|
+]
|
|
|
+PeelOut_item_status = []
|
|
|
+PeelOut_order = [
|
|
|
+ ['FI1'],
|
|
|
+ ['FI2'],
|
|
|
+]
|
|
|
+PeelOut_order_status = []
|
|
|
+PeelFullHeight = 30.0
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 脫皮出料 2/2 ======================================================
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+# !!!!! 請注意, 這邊的 item 還要增加 超音波數值 (儲豆槽內豆子高度)
|
|
|
+P1 = 'Peeling'
|
|
|
+P2 = 'Peeling'
|
|
|
+P1_UltraSonic = 30.5
|
|
|
+P2_UltraSonic = 40
|
|
|
+FI1 = 'Outputting'
|
|
|
+FI2 = 'Waiting'
|
|
|
+print("P1: ", P1)
|
|
|
+print("P2: ", P2)
|
|
|
+print("P1_UltraSonic: ", P1_UltraSonic)
|
|
|
+print("P2_UltraSonic: ", P2_UltraSonic)
|
|
|
+print("FI1: ", FI1)
|
|
|
+print("FI2: ", FI2)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(PeelOut_item)):
|
|
|
+ PeelOut_item_status.append(eval(PeelOut_item[i]))
|
|
|
+ # print(PeelOut_item[i], eval(PeelOut_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(PeelOut_order[i])):
|
|
|
+ target_list.append(eval(PeelOut_order[i][o]))
|
|
|
+ # print(PeelOut_order[i][o], eval(PeelOut_order[i][o]))
|
|
|
+ PeelOut_order_status.append(target_list)
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(PeelOut_item)):
|
|
|
+ if eval(PeelOut_item[i] + "_UltraSonic") >= PeelFullHeight \
|
|
|
+ and PeelOut_order_status[i].count('InputtingBean') == 0:
|
|
|
+ if PeelOut_order_status[i].count('InputtingBean_Pause') != 0:
|
|
|
+ for o in range(len(PeelOut_order_status[i])):
|
|
|
+ # print("=== Waiting ", PeelOut_order[i][o], " ===")
|
|
|
+ if PeelOut_order_status[i][o] == "InputtingBean_Pause":
|
|
|
+ # print(PeelOut_order[i][o] + "= 'InputtingBean'")
|
|
|
+ break
|
|
|
+ elif PeelOut_order_status[i].count('Waiting') != 0:
|
|
|
+ for o in range(len(PeelOut_order_status[i])):
|
|
|
+ # print("=== Waiting ", PeelOut_order[i][o], " ===")
|
|
|
+ if PeelOut_order_status[i][o] == 'Waiting':
|
|
|
+ # print(PeelOut_order[i][o] + "= 'InputtingBean'")
|
|
|
+ exec(PeelOut_order[i][o] + " = 'InputtingBean'")
|
|
|
+ finish_order = PeelOut_order[i][o]
|
|
|
+ print(finish_order)
|
|
|
+ PeelOut_order[i].pop(o)
|
|
|
+ PeelOut_order[i].append(finish_order)
|
|
|
+ print("NEW PeelOut_order :", PeelOut_order)
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ if PeelOut_order_status.count('InputtingBean') != 0:
|
|
|
+ for o in range(len(PeelOut_order_status)):
|
|
|
+ if PeelOut_order_status[i][o] == 'InputtingBean':
|
|
|
+ exec(PeelOut_order[i][o] + " = 'InputtingBean_Pause'")
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("P1: ", P1)
|
|
|
+print("P2: ", P2)
|
|
|
+print("F1: ", FI1)
|
|
|
+print("F2: ", FI2)
|
|
|
+
|
|
|
+#%%
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#%%
|
|
|
+# # === 清洗出料 ======================================================
|
|
|
+# # === 網頁取值 ===========================
|
|
|
+# # !!!!! 請注意, 因為此處 C1、C2(多) S1(少), 多對少的狀況, 所以 S 為 item, C 為 order
|
|
|
+CleanOut_item = [
|
|
|
+ 'S1',
|
|
|
+ 'S2'
|
|
|
+]
|
|
|
+CleanOut_item_status = []
|
|
|
+CleanOut_order = [
|
|
|
+ ['C1', 'C2'],
|
|
|
+ ['C3', 'C4']
|
|
|
+]
|
|
|
+CleanOut_order_status = []
|
|
|
+ColorSelectFullHeight = 50.0
|
|
|
+
|
|
|
+# # === DB 取得桶槽狀態 ===========================
|
|
|
+# !!!!! 請注意, 這邊的 item 還要增加 超音波數值 (儲豆槽內豆子高度)
|
|
|
+C1 = 'ReadyForOutputtingBean'
|
|
|
+C2 = 'Waiting'
|
|
|
+C3 = 'Waiting'
|
|
|
+C4 = 'OutputtingBean'
|
|
|
+S1 = 'Waiting'
|
|
|
+S2 = 'ColorSelecting'
|
|
|
+S1_UltraSonic = 30.5
|
|
|
+S2_UltraSonic = 40
|
|
|
+print("C1: ", C1)
|
|
|
+print("C2: ", C2)
|
|
|
+print("C3: ", C3)
|
|
|
+print("C4: ", C4)
|
|
|
+print("S1: ", S1)
|
|
|
+print("S2: ", S2)
|
|
|
+
|
|
|
+# # === 將桶槽號碼整理成狀態 ===========================
|
|
|
+for i in range(len(CleanOut_item)):
|
|
|
+ CleanOut_item_status.append(eval(CleanOut_item[i]))
|
|
|
+ # print(CleanOut_item[i], eval(CleanOut_item[i]))
|
|
|
+ target_list = []
|
|
|
+ for o in range(len(CleanOut_order[i])):
|
|
|
+ target_list.append(eval(CleanOut_order[i][o]))
|
|
|
+ # print(CleanOut_order[i][o], eval(CleanOut_order[i][o]))
|
|
|
+ CleanOut_order_status.append(target_list)
|
|
|
+
|
|
|
+# # === 桶槽狀態轉換 ===========================
|
|
|
+for i in range(len(CleanOut_item)):
|
|
|
+ # print(eval(CleanOut_item[i] + "_UltraSonic"))
|
|
|
+ if CleanOut_order_status[i].count('OutputtingBean') == 0 \
|
|
|
+ and CleanOut_order_status[i].count('ReadyForOutputtingBean') != 0:
|
|
|
+ for o in range(len(CleanOut_order_status[i])):
|
|
|
+ # print("=== OutputtingBean ", CleanOut_order[i][o], " ===")
|
|
|
+ if CleanOut_order_status[i][o] == 'ReadyForOutputtingBean':
|
|
|
+ # print(CleanOut_order[i][o] + "= 'OutputtingBean'")
|
|
|
+ exec(CleanOut_order[i][o] + " = 'OutputtingBean'")
|
|
|
+ finish_order = CleanOut_order[i][o]
|
|
|
+ print(finish_order)
|
|
|
+ CleanOut_order[i].pop(o)
|
|
|
+ CleanOut_order[i].append(finish_order)
|
|
|
+ print("NEW CleanOut_order :", CleanOut_order)
|
|
|
+ break
|
|
|
+print("===== status update =====")
|
|
|
+print("C1: ", C1)
|
|
|
+print("C2: ", C2)
|
|
|
+print("C3: ", C3)
|
|
|
+print("C4: ", C4)
|
|
|
+print("S1: ", S1)
|
|
|
+print("S2: ", S2)
|
|
|
+
|
|
|
+
|
|
|
+# %%
|