123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- //Step公共数据操作类。单例类,用于保存各Step执行后的数据
- #pragma once
- #pragma warning(disable:4251)
- #include <string>
- #include <map>
- #include <iostream>
- #include <mutex>
- #include <iostream>
- #include <ctime>
- #include <random>
- #include "windows.h"
- #include "CManageDB.h"
- using namespace ns_db;
- using namespace std;
- typedef enum
- {
- WAFER_PICK_CURRENT_INDEX = 1, //晶圆台侧取晶线程当前固晶点id
- WAFFLE_PICK_CURRENT_INDEX, //晶圆台侧取晶线程当前固晶点id
- BOND_CURRENT_INDEX, //固晶线程当前固晶点id
- WAFER_TRANSFER_TABLE_EXIST_DIE, //晶圆台侧中转台是否存在晶片
- WAFFLE_TRANSFER_TABLE_EXIST_DIE, //华夫盒侧中转台是否存在晶片
- WAFER_TABLE_ALLOW_SEARCH_DIE, //晶圆台允许搜晶
- WAFER_TABLE_SEARCH_DIE_DONE, //晶圆台搜晶完成
- RIGHT_PICK_HEAD_IN_SAFE_POSITION, //晶圆台侧取晶头处于安全位置
- LEFT_PICK_HEAD_IN_SAFE_POSITION, //华夫盒侧取晶头处于安全位置
- BOND_HEAD_BY_RIGHT_SAFE, //固晶头相对于右边安全位置
- BOND_HEAD_BY_LEFT_SAFE, //固晶头相对于左边安全位置
- ENABLE_LOOKUP_GRAB, //是否使能上视拍照补偿
- WAFER_NEED_BOND_DIE_NUM, //华夫盒侧取晶头需固晶片数量
- WAFFLE_NEED_BOND_DIE_NUM, //晶圆台取晶头侧需固晶片数量
- BOND_THREAD_NEED_BOND_DIE_NUM, //固晶头需固晶片数量
- WAFER_PICKED_DIE_NUM, //晶圆台已取晶数量
- WAFFLE_PICKED_DIE_NUM, //华夫盒已取晶数量
- BONDED_DIE_NUM, //已经固晶数量
- AUTO_BOND_PCB_TOTAL, //当前自动固晶PCB总数
- //WAFER_PCB_PICKED_DIE_NUM, //晶圆台当前PCB已取晶数量
- //WAFFLE_PCB_PICKED_DIE_NUM, //华夫盒当前PCB已取晶数量
- //PCB_BONDED_DIE_NUM, //当前PCB已经固晶数量
- MAX_PARAM_NAME
- }PARAM_NAME_ID;
- const map<PARAM_NAME_ID, string> m_mapParamNameIdToString = {
- { WAFER_PICK_CURRENT_INDEX, "WAFER_PICK_CURRENT_INDEX" },
- { WAFFLE_PICK_CURRENT_INDEX, "WAFFLE_PICK_CURRENT_INDEX" },
- { BOND_CURRENT_INDEX, "BOND_CURRENT_INDEX" },
- { WAFER_TRANSFER_TABLE_EXIST_DIE, "WAFER_TRANSFER_TABLE_EXIST_DIE" },
- { WAFFLE_TRANSFER_TABLE_EXIST_DIE, "WAFFLE_TRANSFER_TABLE_EXIST_DIE" },
- //{ BOND_THREAD_CURRENT_PT_ATTRIBUTE, "BOND_THREAD_CURRENT_PT_ATTRIBUTE" },
- { WAFER_TABLE_ALLOW_SEARCH_DIE, "WAFER_TABLE_ALLOW_SEARCH_DIE" },
- { WAFER_TABLE_SEARCH_DIE_DONE, "WAFER_TABLE_SEARCH_DIE_DONE" },
- { RIGHT_PICK_HEAD_IN_SAFE_POSITION, "RIGHT_PICK_HEAD_IN_SAFE_POSITION" },
- { LEFT_PICK_HEAD_IN_SAFE_POSITION, "LEFT_PICK_HEAD_IN_SAFE_POSITION" },
- { BOND_HEAD_BY_RIGHT_SAFE, "BOND_HEAD_BY_RIGHT_SAFE" },
- { BOND_HEAD_BY_LEFT_SAFE, "BOND_HEAD_BY_LEFT_SAFE" },
- { ENABLE_LOOKUP_GRAB, "ENABLE_LOOKUP_GRAB" },
- { WAFER_NEED_BOND_DIE_NUM, "WAFER_NEED_BOND_DIE_NUM" },
- { WAFFLE_NEED_BOND_DIE_NUM, "WAFFLE_NEED_BOND_DIE_NUM" },
- { BOND_THREAD_NEED_BOND_DIE_NUM, "BOND_THREAD_NEED_BOND_DIE_NUM" },
- {WAFER_PICKED_DIE_NUM,"WAFER_PICKED_DIE_NUM"},
- {WAFFLE_PICKED_DIE_NUM,"WAFFLE_PICKED_DIE_NUM"},
- {BONDED_DIE_NUM,"BONDED_DIE_NUM"},
- { AUTO_BOND_PCB_TOTAL, "AUTO_BOND_PCB_TOTAL" }
- };
- #define SET_STEP_STATUS CStaticStepData::GetInstance()->SetStatus
- #define WAIT_STEP_STATUS CStaticStepData::GetInstance()->WaitStatus
- class __declspec(dllexport) CStaticStepData
- {
- #define STEP_PUBLIC_TABLE_NAME "StepPublicData"
- private:
- //初始化成功标志
- bool m_bIsInitSuccess;
- vector<STEP_PUBLIC_DATA> m_mapStepPublicData;
- static CStaticStepData* m_pInstance;
- static std::mutex m_SaveDataMutex;
- CProduct* m_pCProduct;
- CStaticStepData();
- public:
- static CStaticStepData* GetInstance();
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, string value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, string& value);
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, bool value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, bool& value);
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, int value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, int& value);
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, unsigned int value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, unsigned int& value);
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, long value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, long& value);
- //保存Step共公数据
- long SetStepPublicData(PARAM_NAME_ID id, double value);
- //读取Step共公数据
- long GetStepPublicData(PARAM_NAME_ID id, double& value);
- //保存Step共公数据到数据库
- long StepPublicDataMapToDataBase();
- //从数据库中加载Step共公数据
- long StepPublicDataDataBaseToMap();
- bool IsInitSuccess(); //是否初始化成功
- //设置Step执行过程中状态
- LONG SetStatus(PARAM_NAME_ID id, bool bStatus);
- //等待状态
- LONG WaitStatus(PARAM_NAME_ID id, bool bStatus);
- };
|