<% import mdz.hc.DataPoint import mdz.hc.itf.hm.HmSysVarInterface import groovy.transform.Field import java.util.logging.Logger @Field private final static Logger log = Logger.getLogger('mdz.ccuhistorian.webapp.Diagnosis') class DiagnosisItem { String description boolean error=false String errorText='OK' } def getClockSynchronicities() { // find CCUs, each CCU has a HmSysVarInterface def scriptClients=interfaceManager.interfaces.findAll { it.value instanceof HmSysVarInterface }.collect { it.value.scriptClient } // for each CCU build a DiagnosisItem scriptClients.collect { scriptClient -> def item=new DiagnosisItem() item.description="Synchronizität der Systemuhren von CCU ($scriptClient.address) und CCU-Historian-Rechner (Differenz kleiner als 60 Sekunden)" def ccuDate=scriptClient.systemDate def histDate=new Date() def diffSeconds=(ccuDate.time-histDate.time).intdiv(1000) item.errorText="$diffSeconds Sek." if (Math.abs(diffSeconds)>=60) item.error=true item } } utils.catchToLog(log) { include 'page-begin.gy' def ctx=request.session.getAttribute('ctx') html.title 'CCU-Historian: Diagnose' html.h1 'Diagnose' if (!ctx.user.loggedIn) { html.p class:'bad', 'Sie sind nicht (mehr) angemeldet oder Ihre Berechtigungen reichen nicht aus!' html.p { a href:'index.html', 'Zur Anmeldung' } } else { def items=getClockSynchronicities() html.table { tr { th 'Beschreibung' th 'Zustand' } items.each { item -> tr { td item.description td class:(item.error?'bad':'good'), item.errorText } } } } include 'page-end.gy' } %>