#include "stdafx.h" #include #include #include "IOManager.h" #include "ToolUnits.h" IOManager::IOManager() { m_directory = CToolUnits::getCurrentExePath() + _T("\\PLCs"); if (!CToolUnits::isDirectory(m_directory)) { CToolUnits::createDir(m_directory.c_str()); } } void IOManager::DefaultMachineData() { std::vector vecDefaultData = { {FALSE, "X1000", "Unit1_¼±Í£ EMO", FALSE, "Y1010", "Unit1_ËÄÉ«µÆ-ºì"}, {FALSE, "X1001", "Unit1_×ܽøÆøÑ¹Á¦¼ì",FALSE,"Y1011", "Unit1_ËÄÉ«µÆ-»Æ"}, {FALSE, "X1002", "Unit1_ËÅ·þµç¹ñÑ̸б¨¾¯", FALSE, "Y1012", "Unit1_ËÄÉ«µÆ-ÂÌ"}, {FALSE,"X1003", "Unit1_¼ÓÈȵç¹ñÑ̸б¨¾¯", FALSE, "Y1013", "Unit1_ËÄÉ«µÆ-À¶"}, {FALSE, "X1004", "°²È«¼ÌµçÆ÷¼ì", FALSE, "Y1014", "Unit1_·äÃùÆ÷-1"}, {FALSE, "X1005", "", FALSE, "Y1015", "Unit1_·äÃùÆ÷-2"}, {FALSE, "X1006", "",FALSE, "Y1016", "Unit1_·äÃùÆ÷-3"}, {FALSE, "X1007", "Unit1_°²È«ÃŴżì1", FALSE,"Y1017", "Unit1_·äÃùÆ÷-4"}, {FALSE, "X1008", "Unit1_°²È«ÃŴżì2",FALSE, "Y1018", "Unit1_»ų́ÕÕÃ÷"}, {FALSE, "X1009", "Unit1_°²È«ÃŴżì3",FALSE, "Y1019", "Unit1_°²È«ÃÅËøÆÁ±Î"}, {FALSE, "X100A", "Unit1_°²È«ÃŴżì4",FALSE, "Y101A", ""}, {FALSE, "X100B", "Unit1_°²È«ÃŴżì5", FALSE,"Y101B", ""}, {FALSE, "X100C", "Unit1_°²È«ÃŴżì6",FALSE, "Y101C", ""}, {FALSE, "X100D", "Unit1_°²È«ÃÅËø¼ì1",FALSE, "Y101D", "Unit1_°²È«ÃÅËø1"}, {FALSE, "X100E", "Unit1_°²È«ÃÅËø¼ì2",FALSE, "Y101E", "Unit1_°²È«ÃÅËø2"}, {FALSE, "X100F", "Unit1_°²È«ÃÅËø¼ì3",FALSE, "Y101F", "Unit1_°²È«ÃÅËø3"}, {FALSE, "X1020", "Unit1_·Ö×Ó±Ã-Alam(8-14)",FALSE, "Y1030", "Unit1_·Ö×Ó±ÃÆô¶¯(1-9)"}, {FALSE, "X1021", "Unit1_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", FALSE,"Y1031", "Unit1_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"}, {FALSE, "X1022", "Unit1_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©", FALSE,"Y1032", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§"}, {FALSE, "X1023", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§Ô­Î»", FALSE,"Y1033", "Unit1_ÆøÄÒͨ¶Ï·§"}, {FALSE, "X1024", "Unit1_·Ö×Ó±Ãͨ¶Ï²å°å·§µ½Î»", FALSE,"Y1034", ""}, {FALSE, "X1025", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ", FALSE,"Y1035", "Unit1_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"}, {FALSE, "X1026", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»",FALSE, "Y1036", "Unit1_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"}, {FALSE, "X1027", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ", FALSE,"Y1037", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"}, {FALSE, "X1028", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»", FALSE,"Y1038", "Unit1_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"}, {FALSE, "X1029", "Unit1_ÃÅ·§Éý½µÆø¸×ԭλ", FALSE,"Y1039", "Unit1_ÃÅ·§Éý½µÆø¸×"}, {FALSE, "X102A", "Unit1_ÃÅ·§Éý½µÆø¸×µ½Î»",FALSE, "Y103A", ""}, {FALSE, "X102B", "Unit1_Ç»Ì寯տ¿ÕÆø·§Ô­Î»",FALSE, "Y103B", "Unit1_Ç»Ì寯տ¿ÕÆø·§"}, {FALSE, "X102C", "Unit1_Ç»Ì寯տ¿ÕÆø·§µ½Î»", FALSE,"Y103C", "Unit1_·Ö×Ó±ÃÅÅÆø·§"}, {FALSE, "X102D", "Unit1_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", FALSE,"Y103D", "Unit1_ÏÂǻƽ̨ÎüÕæ¿Õ"}, {FALSE, "X102E", "Unit1_·Ö×Ó±ÃÅÅÆø·§Ô­Î»",FALSE, "Y103E", "Unit1_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"}, {FALSE, "X102F", "Unit1_·Ö×Ó±ÃÅÅÆø·§µ½Î»", FALSE,"Y103F", ""}, {FALSE, "X1040", "Unit1_ÉϼÓÈÈÒÑÉϵç",FALSE, "Y1050", "Unit1_ÉϼÓÈÈÉϵç"}, {FALSE, "X1041", "Unit1_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯", FALSE,"Y1051", "Unit1_ϼÓÈÈÉϵç"}, {FALSE, "X1042", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y1052", ""}, {FALSE, "X1043", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2",FALSE, "Y1053", ""}, {FALSE, "X1044", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3", FALSE,"Y1054", ""}, {FALSE, "X1045", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4",FALSE, "Y1055", ""}, {FALSE, "X1046", "Unit1_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5",FALSE, "Y1056", ""}, {FALSE, "X1047", "Unit1_ϼÓÈÈÒÑÉϵç",FALSE, "Y1057", ""}, {FALSE, "X1048", "Unit1_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯",FALSE, "Y1058", ""}, {FALSE, "X1049", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y1059", ""}, {FALSE, "X104A", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", FALSE,"Y105A", ""}, {FALSE, "X104B", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3", FALSE,"Y105B", ""}, {FALSE, "X104C", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4", FALSE,"Y105C", ""}, {FALSE, "X104D", "Unit1_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5",FALSE, "Y105D", ""}, {FALSE, "X104E", "",FALSE, "Y105E", ""}, {FALSE, "X104F", "", FALSE,"Y105F", ""}, {FALSE, "X1060", "Unit1_¸É±Ã-DVPÔËÐмì²â-11",FALSE, "Y1070", "Unit1_¸É±Ã-DVPÆô¶¯-1"}, {FALSE, "X1061", "Unit1_¸É±Ã-MBPÔËÐмì²â-12",FALSE, "Y1071", "Unit1_¸É±Ã-MBPÆô¶¯-2"}, {FALSE, "X1062", "Unit1_¸É±Ã-´íÎ󱨾¯ÖÐ-14",FALSE, "Y1072", "Unit1_¸É±Ã-Òì³£½â³ý-3"}, {FALSE, "X1063", "Unit1_¸É±Ã-´íÎ󾯸æÖÐ-16",FALSE, "Y1073", ""}, {FALSE, "X1064", "Unit1_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18",FALSE, "Y1074", "Unit1_µªÆøÍ¨¶Ïµç´Å·§1"}, {FALSE, "X1065", "Unit1_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20",FALSE, "Y1075", "Unit1_µªÆøÍ¨¶Ïµç´Å·§2"}, {FALSE, "X1066", "",FALSE, "Y1076", "Unit1_µªÆøÍ¨¶Ïµç´Å·§3"}, {FALSE, "X1067", "",FALSE, "Y1077", "Unit1_µªÆøÍ¨¶Ïµç´Å·§4"}, {FALSE, "X1068", "",FALSE, "Y1078", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"}, {FALSE, "X1069", "",FALSE, "Y1079", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"}, {FALSE, "X106A", "",FALSE, "Y107A", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"}, {FALSE, "X106B", "", FALSE,"Y107B", "Unit1_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"}, {FALSE, "X106C", "", FALSE,"Y107C", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"}, {FALSE, "X106D", "Unit1_Ë®ÏäÉÏҺλ¼ì",FALSE, "Y107D", "Unit1_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"}, {FALSE, "X106E", "Unit1_Ë®ÏäÖÐҺλ¼ì",FALSE, "Y107E", "Unit1_Ë®Ïä½øË®·§"}, {FALSE, "X106F", "Unit1_Ë®ÏäÏÂҺλ¼ì", FALSE,"Y107F", "Unit1_Ë®Ïä³öË®·§"}, {FALSE, "X1080", "Unit2_¼±Í£ EMO",FALSE, "Y1090", "Unit2_ËÄÉ«µÆ-ºì"}, {FALSE, "X1081", "Unit2_×ܽøÆøÑ¹Á¦¼ì",FALSE, "Y1091", "Unit2_ËÄÉ«µÆ-»Æ"}, {FALSE, "X1082", "Unit2_ËÅ·þµç¹ñÑ̸б¨¾¯",FALSE, "Y1092", "Unit2_ËÄÉ«µÆ-ÂÌ"}, {FALSE, "X1083", "Unit2_¼ÓÈȵç¹ñÑ̸б¨¾¯", FALSE,"Y1093", "Unit2_ËÄÉ«µÆ-À¶"}, {FALSE, "X1084", "°²È«¼ÌµçÆ÷¼ì",FALSE, "Y1094", "Unit2_·äÃùÆ÷-1"}, {FALSE, "X1085", "", FALSE,"Y1095", "Unit2_·äÃùÆ÷-2"}, {FALSE, "X1086", "", FALSE,"Y1096", "Unit2_·äÃùÆ÷-3"}, {FALSE, "X1087", "Unit2_°²È«ÃŴżì1",FALSE, "Y1097", "Unit2_·äÃùÆ÷-4"}, {FALSE, "X1088", "Unit2_°²È«ÃŴżì2",FALSE, "Y1098", "Unit2_»ų́ÕÕÃ÷"}, {FALSE, "X1089", "Unit2_°²È«ÃŴżì3", FALSE,"Y1099", "Unit2_°²È«ÃÅËøÆÁ±Î"}, {FALSE, "X108A", "Unit2_°²È«ÃŴżì4",FALSE, "Y109A", ""}, {FALSE, "X108B", "Unit2_°²È«ÃŴżì5",FALSE, "Y109B", ""}, {FALSE, "X108C", "Unit2_°²È«ÃŴżì6",FALSE, "Y109C", ""}, {FALSE, "X108D", "Unit2_°²È«ÃÅËø¼ì1",FALSE, "Y109D", "Unit2_°²È«ÃÅËø1"}, {FALSE, "X108E", "Unit2_°²È«ÃÅËø¼ì2",FALSE, "Y109E", "Unit2_°²È«ÃÅËø2"}, {FALSE, "X108F", "Unit2_°²È«ÃÅËø¼ì3",FALSE, "Y109F", "Unit2_°²È«ÃÅËø3"}, {FALSE, "X10A0", "Unit2_·Ö×Ó±Ã-Alam(8-14)", FALSE,"Y10B0", "Unit2_·Ö×Ó±ÃÆô¶¯(1-9)"}, {FALSE, "X10A1", "Unit2_·Ö×Ó±Ã-Ô¶³Ì/±¾µØÄ£Ê½(7-15)", FALSE,"Y10B1", "Unit2_·Ö×Ó±ÃÁªËø×°ÖÃ(2-10)"}, {FALSE, "X10A2", "Unit2_·Ö×Ó±Ã-Õý³£ÔËÐУ¨4-12£©",FALSE, "Y10B2", "Unit2_·Ö×Ó±Ãͨ¶Ï²å°å·§"}, {FALSE, "X10A3", "", FALSE,"Y10B3", "Unit2_ÆøÄÒͨ¶Ï·§"}, {FALSE, "X10A4", "",FALSE, "Y10B4", ""}, {FALSE, "X10A5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ",FALSE, "Y10B5", "Unit2_Ç»ÌåÍÐÆ¬×óÆø¸×ԭλ"}, {FALSE, "X10A6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»",FALSE, "Y10B6", "Unit2_Ç»ÌåÍÐÆ¬×󯸏׵½Î»"}, {FALSE, "X10A7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ",FALSE, "Y10B7", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×ԭλ"}, {FALSE, "X10A8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»",FALSE, "Y10B8", "Unit2_Ç»ÌåÍÐÆ¬ÓÒÆø¸×µ½Î»"}, {FALSE, "X10A9", "Unit2_ÃÅ·§Éý½µÆø¸×ԭλ", FALSE,"Y10B9", "Unit2_ÃÅ·§Éý½µÆø¸×"}, {FALSE, "X10AA", "Unit2_ÃÅ·§Éý½µÆø¸×µ½Î»", FALSE,"Y10BA", ""}, {FALSE, "X10AB", "Unit2_Ç»Ì寯տ¿ÕÆø·§Ô­Î»", FALSE,"Y10BB", "Unit2_Ç»Ì寯տ¿ÕÆø·§"}, {FALSE, "X10AC", "Unit2_Ç»Ì寯տ¿ÕÆø·§µ½Î»",FALSE, "Y10BC", "Unit2_·Ö×Ó±ÃÅÅÆø·§"}, {FALSE, "X10AD", "Unit2_ÏÂÇ»Æ½Ì¨Õæ¿Õ¼ì", FALSE,"Y10BD", "Unit2_ÏÂǻƽ̨ÎüÕæ¿Õ"}, {FALSE, "X10AE", "Unit2_·Ö×Ó±ÃÅÅÆø·§Ô­Î»",FALSE, "Y10BE", "Unit2_ÏÂÇ»Æ½Ì¨ÆÆÕæ¿Õ"}, {FALSE, "X10AF", "Unit2_·Ö×Ó±ÃÅÅÆø·§µ½Î»",FALSE, "Y10BF", ""}, {FALSE, "X10C0", "Unit2_ÉϼÓÈÈÒÑÉϵç", FALSE,"Y10D0", "Unit2_ÉϼÓÈÈÉϵç"}, {FALSE, "X10C1", "Unit2_ÉÏÖ÷ÎÂ¿Ø±í±¨¾¯",FALSE, "Y10D1", "Unit2_ϼÓÈÈÉϵç"}, {FALSE, "X10C2", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y10D2", ""}, {FALSE, "X10C3", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯2",FALSE, "Y10D3", ""}, {FALSE, "X10C4", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯3",FALSE, "Y10D4", ""}, {FALSE, "X10C5", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯4", FALSE,"Y10D5", ""}, {FALSE, "X10C6", "Unit2_ÉÏ¼à¿ØÎÂ¿Ø±í±¨¾¯5", FALSE,"Y10D6", ""}, {FALSE, "X10C7", "Unit2_ϼÓÈÈÒÑÉϵç", FALSE,"Y10D7", ""}, {FALSE,"X10C8", "Unit2_ÏÂÖ÷ÎÂ¿Ø±í±¨¾¯", FALSE,"Y10D8", ""}, {FALSE, "X10C9", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯1",FALSE, "Y10D9", ""}, {FALSE, "X10CA", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯2", FALSE,"Y10DA", ""}, {FALSE, "X10CB", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯3",FALSE, "Y10DB", ""}, {FALSE, "X10CC", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯4",FALSE, "Y10DC", ""}, {FALSE, "X10CD", "Unit2_ÏÂ¼à¿ØÎÂ¿Ø±í±¨¾¯5", FALSE,"Y10DD", ""}, {FALSE, "X10CE", "",FALSE, "Y10DE", ""}, {FALSE, "X10CF", "", FALSE,"Y10DF", ""}, {FALSE, "X10E0", "Unit2_¸É±Ã-DVPÔËÐмì²â-11",FALSE, "Y10F0", "Unit2_¸É±Ã-DVPÆô¶¯-1"}, {FALSE, "X10E1", "Unit2_¸É±Ã-MBPÔËÐмì²â-12",FALSE, "Y10F1", "Unit2_¸É±Ã-MBPÆô¶¯-2"}, {FALSE, "X10E2", "Unit2_¸É±Ã-´íÎ󱨾¯ÖÐ-14", FALSE,"Y10F2", "Unit2_¸É±Ã-Òì³£½â³ý-3"}, {FALSE, "X10E3", "Unit2_¸É±Ã-´íÎ󾯸æÖÐ-16",FALSE, "Y10F3", ""}, {FALSE, "X10E4", "Unit2_¸É±Ã-Ô¶³Ì/±¾µØÄ£Ê½-18",FALSE, "Y10F4", "Unit2_µªÆøÍ¨¶Ïµç´Å·§1"}, {FALSE, "X10E5", "Unit2_¸É±Ã-½ô¼±Í£Ö¹ÖÐ-20",FALSE, "Y10F5", "Unit2_µªÆøÍ¨¶Ïµç´Å·§2"}, {FALSE, "X10E6", "",FALSE, "Y10F6", "Unit2_µªÆøÍ¨¶Ïµç´Å·§3"}, {FALSE, "X10E7", "",FALSE, "Y10F7", "Unit2_µªÆøÍ¨¶Ïµç´Å·§4"}, {FALSE, "X10E8", "",FALSE, "Y10F8", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§1"}, {FALSE, "X10E9", "",FALSE, "Y10F9", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§2"}, {FALSE, "X10EA", "",FALSE,"Y10FA", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§3"}, {FALSE, "X10EB", "",FALSE, "Y10FB", "Unit2_¼ÓÈȰåË®Àäͨ¶Ïµç´Å·§4"}, {FALSE, "X10EC", "",FALSE, "Y10FC", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§1"}, {FALSE, "X10ED", "Unit2_Ë®ÏäÉÏҺλ¼ì",FALSE, "Y10FD", "Unit2_Ç»Ìåµ×°åͨ¶Ïµç´Å·§2"}, {FALSE, "X10EE", "Unit2_Ë®ÏäÖÐҺλ¼ì",FALSE, "Y10FE", "Unit2_Ë®Ïä½øË®·§"}, {FALSE, "X10EF", "Unit2_Ë®ÏäÏÂҺλ¼ì",FALSE, "Y10FF", "Unit2_Ë®Ïä³öË®·§"} }; m_vecMachines.resize(vecDefaultData.size()); m_vecMachines.assign(vecDefaultData.begin(), vecDefaultData.end()); } void IOManager::SaveToFile(const std::string& strMachineName) { std::ofstream file(m_directory + "\\" + strMachineName +"\\" + "IOConfiguration.iom"); if (!file.is_open()) { std::cerr << "Failed to open file for writing: " << strMachineName << ".iom" << std::endl; return; } for (const auto& entry : m_vecMachines) { file << entry.inputAddress << "," << entry.inputDescription << "," << entry.outputAddress << "," << entry.outputDescription << "\n"; } file.close(); } bool IOManager::LoadFromFile(const std::string& strMachineName) { std::ifstream file(m_directory + "\\" + strMachineName + "\\" + "IOConfiguration.iom"); if (!file.is_open()) { std::cerr << "Failed to open file for reading: " << strMachineName << ".iom" << std::endl; return false; } m_vecMachines.clear(); std::string line; while (std::getline(file, line)) { IOData entry; size_t pos = 0; pos = line.find(","); entry.bInputStates = FALSE; entry.bOutputStates = FALSE; entry.inputAddress = line.substr(0, pos); line.erase(0, pos + 1); pos = line.find(","); entry.inputDescription = line.substr(0, pos); line.erase(0, pos + 1); pos = line.find(","); entry.outputAddress = line.substr(0, pos); line.erase(0, pos + 1); entry.outputDescription = line; m_vecMachines.push_back(entry); } file.close(); return true; } void IOManager::GetMachineData(std::vector& vecMachines) { vecMachines.resize(m_vecMachines.size()); vecMachines.assign(m_vecMachines.begin(), m_vecMachines.end()); }