--- trunk/tntnet/dynamic/critical.ecpp 2007/11/30 16:05:11 111 +++ trunk/tntnet/dynamic/critical.ecpp 2007/12/08 16:47:03 195 @@ -4,19 +4,6 @@ #include #include -#include - - - -class CriticalInstallation -{ -public: - CriticalInstallation() {} - CriticalInstallation(int i, std::string m) : id(i), message(m) {} - int id; - std::string message; -}; - <%config> @@ -29,18 +16,86 @@ <{ +reply.setHeader("Refresh", "120"); + +tntdb::Connection conn = tntdb::connectCached(dburl); + + +std::string query1; +query1 += "SELECT c.name, i.description, i.id, i.commerror "; +query1 += "FROM installation i INNER JOIN customer c "; +query1 += "ON i.customerid = c.id"; + + +tntdb::Result inst_res = conn.select(query1); + -std::vector criticals; +std::string query2; +query2 += "SELECT temperature,flamedetector,conveyorerror,powerfailure "; +query2 += "FROM logtable "; +query2 += "WHERE installationnr = :v1 "; +query2 += "ORDER BY messagenr DESC,logtime DESC "; +query2 += "LIMIT 1"; -tntdb::Connection conn = tntdb::connect(dburl); -tntdb::Result res = conn.select("SELECT id FROM installation WHERE commerror = true"); -for (int i=0; i 0) + { + temperature = res[0].getInt(0); + flameDetector = res[0].getBool(1); + conveyorError = res[0].getBool(2); + powerFailure = res[0].getBool(3); + } + + if (commerror || temperature > 90 || flameDetector == false || conveyorError || powerFailure) + { + out << "" << inst_res[i].getString(0) << " : " << inst_res[i].getString(1) << "
\n"; + out << "
    "; + + if (temperature > 90) + out << "
  • High temperature
  • \n"; + + if (commerror) + out << "
  • Communication error
  • \n"; + + if (flameDetector == false) + out << "
  • No flames
  • \n"; + + if (conveyorError) + out << "
  • Conveyor error
  • \n"; + if (powerFailure) + out << "
  • Power failure
  • \n"; + out << "
\n"; + + hasCritical = true; + } +} + +if (hasCritical == false) +{ + out << "No critical installations found\n"; +} }>