| | |
| | | |
| | | |
| | | namespace SERVO { |
| | | static std::unordered_map<int, std::vector<std::string>> EQ_DATA_TYPES = { |
| | | {EQ_ID_Bonder1, { |
| | | "气囊压力", "上腔压力", "管道真空规值", "腔体真空规值", |
| | | "上腔温度1", "上腔温度2", "上腔温度3", "上腔温度4", |
| | | "上腔温度5", "上腔温度6", "下腔温度1", "下腔温度2", |
| | | "下腔温度3", "下腔温度4", "下腔温度5", "下腔温度6" |
| | | }}, |
| | | {EQ_ID_Bonder2, { |
| | | "气囊压力", "上腔压力", "管道真空规值", "腔体真空规值", |
| | | "上腔温度1", "上腔温度2", "上腔温度3", "上腔温度4", |
| | | "上腔温度5", "上腔温度6", "下腔温度1", "下腔温度2", |
| | | "下腔温度3", "下腔温度4", "下腔温度5", "下腔温度6" |
| | | }}, |
| | | {EQ_ID_VACUUMBAKE, { |
| | | "A腔真空规值", "A腔温控1", "A腔温控2", "A腔温控4", |
| | | "A腔温控5", "A腔温控6", "A腔温控7", "B腔真空规值", |
| | | "B腔温控1", "B腔温控2", "B腔温控4", "B腔温控5", |
| | | "B腔温控6", "B腔温控7" |
| | | }}, |
| | | {EQ_ID_BAKE_COOLING, { |
| | | "A烘烤温控1", "A烘烤温控2", "A烘烤温控4", "A烘烤温控5", |
| | | "A烘烤温控6", "A烘烤温控7", "B烘烤温控1", "B烘烤温控2", |
| | | "B烘烤温控4", "B烘烤温控5", "B烘烤温控6", "B烘烤温控7" |
| | | }} |
| | | }; |
| | | |
| | | CServoUtilsTool::CServoUtilsTool() |
| | | { |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getEqName(int eqid) |
| | | { |
| | | switch (eqid) |
| | | { |
| | | case EQ_ID_LOADPORT1: |
| | | return "Port1"; |
| | | case EQ_ID_LOADPORT2: |
| | | return "Port2"; |
| | | case EQ_ID_LOADPORT3: |
| | | return "Port3"; |
| | | case EQ_ID_LOADPORT4: |
| | | return "Port4"; |
| | | case EQ_ID_ALIGNER: |
| | | return "Aligner"; |
| | | case EQ_ID_FLIPER: |
| | | return "Fliper"; |
| | | case EQ_ID_VACUUMBAKE: |
| | | return "VacuumBake"; |
| | | case EQ_ID_Bonder1: |
| | | return "Bonder1"; |
| | | case EQ_ID_Bonder2: |
| | | return "Bonder2"; |
| | | case EQ_ID_BAKE_COOLING: |
| | | return "BakeCooling"; |
| | | case EQ_ID_MEASUREMENT: |
| | | return "AOI"; |
| | | case EQ_ID_ARM_TRAY1: |
| | | return "ArmTray1"; |
| | | case EQ_ID_ARM_TRAY2: |
| | | return "ArmTray2"; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getEqUnitName(int eqid, int unit) |
| | | { |
| | | /* |
| | | #define EQ_ID_LOADPORT1 1 |
| | | #define EQ_ID_LOADPORT2 2 |
| | | #define EQ_ID_LOADPORT3 3 |
| | | #define EQ_ID_LOADPORT4 4 |
| | | #define EQ_ID_ARM_TRAY1 5 |
| | | #define EQ_ID_ARM_TRAY2 6 |
| | | #define EQ_ID_ALIGNER 7 |
| | | #define EQ_ID_FLIPER 8 |
| | | #define EQ_ID_VACUUMBAKE 9 |
| | | #define EQ_ID_Bonder1 10 |
| | | #define EQ_ID_Bonder2 11 |
| | | #define EQ_ID_BAKE_COOLING 12 |
| | | #define EQ_ID_MEASUREMENT 13 |
| | | #define EQ_ID_EFEM 100 |
| | | #define EQ_ID_ARM 101 |
| | | #define EQ_ID_OPERATOR_REMOVE 102 |
| | | */ |
| | | char szBuffer[256]; |
| | | if (eqid == EQ_ID_LOADPORT1 |
| | | || eqid == EQ_ID_LOADPORT2 |
| | | || eqid == EQ_ID_LOADPORT3 |
| | | || eqid == EQ_ID_LOADPORT4 |
| | | ) { |
| | | sprintf_s(szBuffer, 256, "Port%d(Slot%d)", unit, eqid - EQ_ID_LOADPORT1 + 1); |
| | | sprintf_s(szBuffer, 256, "Port%d(Slot%d)", eqid - EQ_ID_LOADPORT1 + 1, unit + 1); |
| | | return std::string(szBuffer); |
| | | } |
| | | |
| | |
| | | |
| | | if (eqid == EQ_ID_FLIPER) { |
| | | return "Fliper"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_VACUUMBAKE) { |
| | | if (unit == 0) return "烘烤A腔"; |
| | | if (unit == 1) return "烘烤B腔"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_VACUUMBAKE) { |
| | |
| | | |
| | | if (unit == 0) return "后烘烤A腔"; |
| | | if (unit == 1) return "冷却A"; |
| | | if (unit == 0) return "后烘烤B腔"; |
| | | if (unit == 1) return "冷却B"; |
| | | if (unit == 2) return "后烘烤B腔"; |
| | | if (unit == 3) return "冷却B"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_MEASUREMENT) { |
| | | return "AOI"; |
| | | } |
| | | |
| | | |
| | | if (eqid == EQ_ID_ARM_TRAY1) { |
| | | return "ARM1"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_ARM_TRAY2) { |
| | | return "ARM2"; |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getEqUnitName(int eqid, int unit, int slot) |
| | | { |
| | | char szBuffer[256]; |
| | | if (eqid == EQ_ID_LOADPORT1 |
| | | || eqid == EQ_ID_LOADPORT2 |
| | | || eqid == EQ_ID_LOADPORT3 |
| | | || eqid == EQ_ID_LOADPORT4 |
| | | ) { |
| | | sprintf_s(szBuffer, 256, "Port%d(Slot%d)", eqid - EQ_ID_LOADPORT1 + 1, slot); |
| | | return std::string(szBuffer); |
| | | } |
| | | |
| | | if (eqid == EQ_ID_ALIGNER) { |
| | | return "Aligner"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_FLIPER) { |
| | | return "Fliper"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_VACUUMBAKE) { |
| | | if (unit == 0) { |
| | | sprintf_s(szBuffer, 256, "烘烤A腔(Slot%d)", slot); |
| | | return std::string(szBuffer); |
| | | } |
| | | if (unit == 1) { |
| | | sprintf_s(szBuffer, 256, "烘烤B腔(Slot%d)", slot); |
| | | return std::string(szBuffer); |
| | | } |
| | | } |
| | | |
| | | if (eqid == EQ_ID_Bonder1) { |
| | | sprintf_s(szBuffer, 256, "Bonder1(Slot%d)", slot); |
| | | return std::string(szBuffer); |
| | | } |
| | | |
| | | if (eqid == EQ_ID_Bonder2) { |
| | | sprintf_s(szBuffer, 256, "Bonder2(Slot%d)", slot); |
| | | return std::string(szBuffer); |
| | | } |
| | | |
| | | if (eqid == EQ_ID_BAKE_COOLING) { |
| | | |
| | | if (slot == 0) return "后烘烤A腔"; |
| | | if (slot == 1) return "冷却A"; |
| | | if (slot == 2) return "后烘烤B腔"; |
| | | if (slot == 3) return "冷却B"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_MEASUREMENT) { |
| | | return "AOI"; |
| | | } |
| | | |
| | | |
| | | if (eqid == EQ_ID_ARM_TRAY1) { |
| | | return "ARM1"; |
| | | } |
| | | |
| | | if (eqid == EQ_ID_ARM_TRAY2) { |
| | | return "ARM2"; |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getMaterialsTypeText(MaterialsType type) |
| | | { |
| | | if (type == MaterialsType::G1) { |
| | | return "G1"; |
| | | } |
| | | |
| | | if (type == MaterialsType::G2) { |
| | | return "G2"; |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getGlassStateText(SERVO::GlsState state) |
| | | { |
| | | switch (state) |
| | | { |
| | | case SERVO::GlsState::NoState: |
| | | return "NoState"; |
| | | break; |
| | | case SERVO::GlsState::Queued: |
| | | return "Queued"; |
| | | break; |
| | | case SERVO::GlsState::InProcess: |
| | | return "InProcess"; |
| | | break; |
| | | case SERVO::GlsState::Paused: |
| | | return "Paused"; |
| | | break; |
| | | case SERVO::GlsState::Completed: |
| | | return "Completed"; |
| | | break; |
| | | case SERVO::GlsState::Aborted: |
| | | return "Aborted"; |
| | | break; |
| | | case SERVO::GlsState::Failed: |
| | | return "Failed"; |
| | | break; |
| | | default: |
| | | return ""; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | std::string CServoUtilsTool::getInspResultText(SERVO::InspResult result) |
| | | { |
| | | switch (result) |
| | | { |
| | | case SERVO::InspResult::NotInspected: |
| | | return ""; |
| | | break; |
| | | case SERVO::InspResult::Pass: |
| | | return "Pass"; |
| | | break; |
| | | case SERVO::InspResult::Fail: |
| | | return "Fail"; |
| | | break; |
| | | default: |
| | | return ""; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | std::unordered_map<int, std::vector<std::string>>& CServoUtilsTool::getEqDataTypes() |
| | | { |
| | | return EQ_DATA_TYPES; |
| | | } |
| | | } |