| | |
| | | g_pModel = this; |
| | | |
| | | |
| | | // 模拟从文档或数据库加载PLC列表 |
| | | addPlc("Test1", "127.0.0.1", 1001); |
| | | addPlc("Test2", "127.0.0.1", 1002); |
| | | |
| | | // 获取所有PLC信息 |
| | | std::vector<PlcInfo> plcList; |
| | | m_configuration.getAllPLCInfo(plcList); |
| | | for (const auto& plc : plcList) { |
| | | addPlc(plc.strName, plc.strIp, plc.nPort); |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | |
| | | pPLC->init(); |
| | | m_mapPlc[pszName] = pPLC; |
| | | |
| | | CString strDir; |
| | | strDir.Format(_T("%s\\PLCs\\%s"), (LPTSTR)(LPCTSTR)m_strWorkDir, (LPTSTR)(LPCTSTR)pszName); |
| | | CToolUnits::createDir(strDir); |
| | | m_configuration.addPLC(pszName, pszIp, port); |
| | | |
| | | notifyPtr(RX_CODE_ADD_PLC, pPLC); |
| | | return 0; |
| | | } |
| | |
| | | auto iter = m_mapPlc.find(pszName); |
| | | if (iter == m_mapPlc.end()) return -1; |
| | | |
| | | notifyPtr(RX_CODE_REMOVE_PLC, iter->second); |
| | | delete iter->second; |
| | | m_mapPlc.erase(iter); |
| | | CString strDir; |
| | | strDir.Format(_T("%s\\PLCs\\%s"), (LPTSTR)(LPCTSTR)m_strWorkDir, (LPTSTR)(LPCTSTR)pszName); |
| | | CToolUnits::deleteDir(strDir); |
| | | m_configuration.removePLC(pszName); |
| | | |
| | | m_strCurrPlc = ""; |
| | | notifyPtr(RX_CODE_REMOVE_PLC, iter->second); |
| | | //delete iter->second; |
| | | //m_mapPlc.erase(iter); 这个地方需要研究一下 |
| | | |
| | | return 0; |
| | | } |
| | | |