//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); };