Loading monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPboolean.java +8 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import alma.TMCDB.booleanBlobData; import alma.TMCDB.booleanBlobDataSeqHelper; import alma.TMCDB.stringBlobData; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPboolean extends MonitorPointHelper implements CBbooleanOperations { Loading @@ -38,12 +39,12 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) { m_logger.info("no such Characteristic for"+ex.getMessage()); m_logger.warning("no such Characteristic for"+ex.getMessage()); } m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); Loading @@ -51,9 +52,9 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations @Override public void working(boolean value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -64,7 +65,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations a.time = c.timeStamp; blobDataSeq_m[curSeqPos_m] = a; // Increment current position pointer m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); curSeqPos_m++; // Increment initial position pointer if buffer is full if (bufferFull) Loading Loading @@ -107,7 +108,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; booleanBlobData[] tmpBlobDataSeq = new booleanBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } booleanBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -115,7 +116,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations }else { booleanBlobData[] tmpBlobDataSeq = new booleanBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } booleanBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPdouble.java +7 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import alma.TMCDB.doubleBlobData; import alma.TMCDB.doubleBlobDataHelper; import alma.TMCDB.doubleBlobDataSeqHelper; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { Loading Loading @@ -62,9 +63,9 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { @Override public void working(double value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -91,7 +92,7 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { // Another segment can be created if ( seqLen_m < (prealocSeqLen_m)) { m_logger.fine("Creating new buffer segment and adding data to it"); m_logger.log(AcsLogLevel.DEBUG,"Creating new buffer segment and adding data to it"); // Create new segment seqLen_m = seqLen_m + prealocSeqLen_m; // blobDataSeq_m.length(seqLen_m); Loading Loading @@ -133,12 +134,13 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { synchronized(mutex) { try { m_logger.log(AcsLogLevel.DEBUG,"---------FILLING SEQ:"+propertyName_m); if (curSeqInit_m == 0) { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; doubleBlobData[] tmpBlobDataSeq = new doubleBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } doubleBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -146,7 +148,7 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { }else { doubleBlobData[] tmpBlobDataSeq = new doubleBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } doubleBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPlong.java +3 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ public class MPlong extends MonitorPointHelper implements CBlongOperations { //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) Loading Loading @@ -99,11 +99,12 @@ public class MPlong extends MonitorPointHelper implements CBlongOperations { @Override public void fillSeq() { //super.fillSeq(); super.fillSeq(); synchronized(mutex) { try { m_logger.log(AcsLogLevel.DEBUG,"---------FILLING SEQ:"+propertyName_m); if (curSeqInit_m == 0) { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; Loading monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPstring.java +10 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import alma.TMCDB.longBlobData; import alma.TMCDB.stringBlobData; import alma.TMCDB.stringBlobDataSeqHelper; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPstring extends MonitorPointHelper implements CBstringOperations { Loading @@ -45,22 +46,22 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.warning("Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) { m_logger.info("no such Characteristic for"+ex.getMessage()); m_logger.warning("no such Characteristic for"+ex.getMessage()); } m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); //m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); } @Override public void working(String value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -71,12 +72,12 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { a.time = c.timeStamp; blobDataSeq_m[curSeqPos_m] = a; // Increment current position pointer m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); curSeqPos_m++; // Increment initial position pointer if buffer is full if (bufferFull) { m_logger.info("Data lost from buffer"); m_logger.warning("Data lost from buffer"); curSeqInit_m++; } } Loading Loading @@ -114,7 +115,7 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; stringBlobData[] tmpBlobDataSeq = new stringBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } stringBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -122,7 +123,7 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { }else { stringBlobData[] tmpBlobDataSeq = new stringBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } stringBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MonitorComponent.java +90 −66 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.omg.CORBA.Any; import org.omg.CORBA.InterfaceDef; import org.omg.CORBA.InterfaceDefHelper; import org.omg.CORBA.Object; import org.slf4j.event.Level; import alma.ACS.CBdouble; import alma.ACS.CBdoubleHelper; Loading @@ -31,6 +32,7 @@ import alma.TMCDB.doubleBlobDataSeqHolder; import alma.TMCDB.longBlobData; import alma.TMCDB.longBlobDataSeqHolder; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; import alma.acs.time.TimeHelper; import alma.acstime.Epoch; import alma.TMCDB.MonitorCollectorImpl.MonitorPoint; Loading @@ -41,36 +43,36 @@ import alma.TMCDB.MonitorCollectorImpl.MonitorPoint; */ public class MonitorComponent { ContainerServices containerServices_m; CharacteristicComponent component_m; CharacteristicComponentDesc compDesc_m; int numOfProp_m=0; Logger m_logger; private ContainerServices containerServices_m; private CharacteristicComponent component_m; private CharacteristicComponentDesc compDesc_m; private int numOfProp_m=0; private Logger m_logger; // Monitoring state boolean monitoring_m = false; private boolean monitoring_m = false; /* * Time of monitoring start * TODO which Java type? is CORBA::ULongLong in acsCommonC.h * here is a long for compatibility with monitorDataBlock_m.startTime et similar */ Epoch m_monitoringStartTime =null; private Epoch m_monitoringStartTime =null; /* * List of monitored points, in C++ is a list with seqIndex_m as index. Here * I'll use an HashMap with names as keys for the moment */ Map<String, MonitorPointHelper> monitorPoints_m =null; private Map<String, MonitorPointHelper> monitorPoints_m =null; /* * Index for each monitored points in monitorDataBlock_m.monitorBlobs[]. * Names as keys. * TODO: evaluate monitorPoints_m implementation as an array as in C++ implementation to get rid of this. */ Map<String, Integer> monitorBlocksIndex_m = new HashMap<String, Integer>(); private Map<String, Integer> monitorBlocksIndex_m = new HashMap<String, Integer>(); MonitorDataBlock monitorDataBlock_m =null; private MonitorDataBlock monitorDataBlock_m =null; /** * @param comp Loading @@ -85,8 +87,8 @@ public class MonitorComponent { numOfProp_m = compDesc_m.properties.length; monitorDataBlock_m = new MonitorDataBlock(); monitorDataBlock_m.componentName = comp.name(); monitorDataBlock_m.startTime = 0; monitorDataBlock_m.stopTime = 0; monitorDataBlock_m.startTime = 0L; monitorDataBlock_m.stopTime = 0L; m_logger=containerServices_m.getLogger(); } Loading @@ -104,6 +106,7 @@ public class MonitorComponent { monitorPoints_m.get(propName).stopMonitoring(); monitorPoints_m.get(propName).deactivate(containerServices_m); } monitorPoints_m.clear(); } public void enable_archiving(String propertyName) { Loading @@ -120,11 +123,14 @@ public class MonitorComponent { public synchronized void addAllProperties() { m_logger.info("MonitorComponent.addAllProperties"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.addAllProperties"); int monitored=0; String[] ty =new String[numOfProp_m]; String[] na =new String[numOfProp_m]; Property[] pro = new Property[numOfProp_m]; long[] archInt = new long[numOfProp_m]; // TODO: what implementation of List/Collection for monitorPoints_m? monitorPoints_m = new HashMap<String, MonitorPointHelper>(numOfProp_m); monitorDataBlock_m.monitorBlobs = new MonitorBlob[numOfProp_m]; if (numOfProp_m>0) { for (PropertyDesc p : compDesc_m.properties) { Loading @@ -138,7 +144,7 @@ public class MonitorComponent { Object idef = p.property_ref._get_interface_def(); InterfaceDef type = InterfaceDefHelper.narrow(idef); m_logger.info("MonitorComponent.addAllProperties " + p.name + " " + type.name() m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.addAllProperties " + p.name + " " + type.name() + " "); /* Loading @@ -148,13 +154,24 @@ public class MonitorComponent { long monitoringInterval = propertyArchivingInterval(p); if (monitoringInterval != 0) { addProperty(p.name, type.name(), p.property_ref, monitoringInterval); //addProperty(p.name, type.name(), p.property_ref, monitoringInterval); ty[monitored] =p.name; na[monitored] =type.name(); pro[monitored] = p.property_ref; archInt[monitored]= monitoringInterval; monitored++; } } m_logger.info("The following monitorPoint has been added"); m_logger.log(AcsLogLevel.DEBUG,"The following monitorPoint has been added"); monitorPoints_m = new HashMap<String, MonitorPointHelper>(monitored); monitorDataBlock_m.monitorBlobs = new MonitorBlob[monitored]; for (int i=0; i<monitored; i++) addProperty(ty[i], na[i], pro[i], archInt[i]); for (String m : monitorPoints_m.keySet()) { m_logger.info("MonitorPoint:"+m); m_logger.log(AcsLogLevel.DEBUG,"MonitorPoint:"+m); } } } Loading @@ -173,6 +190,14 @@ public class MonitorComponent { if (strCharacteristic.equals("monitor_collector")) { anyCharacteristic = property .get_characteristic_by_name("default_timer_trig"); strCharacteristic = anyCharacteristic.extract_string(); double deftrig = Double.parseDouble(strCharacteristic); if (deftrig<1.) return 0; // reading archive_max_int property anyCharacteristic = property .get_characteristic_by_name("archive_max_int"); Loading Loading @@ -232,7 +257,8 @@ public class MonitorComponent { // Adding the index property on monitorBlocksIndex_m int index = monitorBlocksIndex_m.size(); monitorBlocksIndex_m.put(propertyName, index); monitorDataBlock_m.monitorBlobs[index]=null; m_logger.log(AcsLogLevel.DEBUG,"Adding prop index:"+index+"-->Name:"+propertyName); /* * A note from the C++ implementation: * Here we have to check for the type. Loading @@ -247,7 +273,7 @@ public class MonitorComponent { MPdouble mpd = new MPdouble(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpd.activate(containerServices_m); monitorPoints_m.put(propertyName, mpd); m_logger.info("Added ROdouble:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROdouble:"+propertyName); } }else if (propertyType.endsWith("long")) { //m_logger.info("Added ROLong:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -256,7 +282,7 @@ public class MonitorComponent { MPlong mpl = new MPlong(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpl.activate(containerServices_m); monitorPoints_m.put(propertyName, mpl); m_logger.info("Added ROLong:"+propertyName); } m_logger.log(AcsLogLevel.DEBUG,"Added ROLong:"+propertyName); } }else if (propertyType.endsWith("boolean")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); if (propertyType.startsWith("RO")) { Loading @@ -264,7 +290,7 @@ public class MonitorComponent { MPboolean mpb = new MPboolean(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpb.activate(containerServices_m); monitorPoints_m.put(propertyName, mpb); m_logger.info("Added ROboolean:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROboolean:"+propertyName); } }else if (propertyType.endsWith("longLong")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -273,7 +299,7 @@ public class MonitorComponent { MPlongLong mpll = new MPlongLong(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpll.activate(containerServices_m); monitorPoints_m.put(propertyName, mpll); m_logger.info("Added ROlongLong:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROlongLong:"+propertyName); } }else if (propertyType.endsWith("string")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -282,7 +308,7 @@ public class MonitorComponent { MPstring mps = new MPstring(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mps.activate(containerServices_m); monitorPoints_m.put(propertyName, mps); m_logger.info("Added ROstring:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROstring:"+propertyName); } }else { m_logger.info("UNIMPLEMENTED Porperty Type:"+propertyType); Loading @@ -291,16 +317,11 @@ public class MonitorComponent { public void startMonitoring() { m_logger.info("---> MonitorComponent.startMonitoring"); m_logger.info("---> # monitor points: "+monitorPoints_m.size()); for (String propName : monitorPoints_m.keySet()) { m_logger.info("----> "+propName); m_logger.info("----> "+monitorPoints_m.get(propName).toString()); } //m_logger.info("---> MonitorComponent.startMonitoring"); //m_logger.info("---> # monitor points: "+monitorPoints_m.size()); for (String propName : monitorPoints_m.keySet()) { m_logger.log(AcsLogLevel.DEBUG,"startMonitoring:"+propName); //m_logger.info("----> "+monitorPoints_m.get(propName).toString()); monitorPoints_m.get(propName).startMonitoring(containerServices_m); } // set monitoring state Loading @@ -316,7 +337,7 @@ public class MonitorComponent { public void stopMonitoring() { m_logger.info("MonitorComponent.stopMonitoring"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.stopMonitoring"); if (monitoring_m) { for (String propName : monitorPoints_m.keySet()) { monitorPoints_m.get(propName).stopMonitoring(); Loading @@ -341,7 +362,7 @@ public class MonitorComponent { String prop = component_m.name()+":"+propertyName; m_logger.info("MonitorComponent.set_archiving_interval "+prop); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.set_archiving_interval "+prop); for (String propName : monitorPoints_m.keySet()) { if (monitorPoints_m.get(propName).getPropertyName().equals(prop)) Loading @@ -364,7 +385,7 @@ public class MonitorComponent { public synchronized void setDeviceSerialNumber(String serialNumber) { m_logger.info("MonitorComponent.setDeviceSerialNumber"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.setDeviceSerialNumber"); monitorDataBlock_m.deviceSerialNumber = serialNumber; } Loading @@ -372,7 +393,7 @@ public class MonitorComponent { public synchronized void setPropertySerialNumber(String propertyName, String[] serialNumbers) { m_logger.info("MonitorComponent.setPropertySerialNumber"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.setPropertySerialNumber"); for (String propName : monitorPoints_m.keySet()) { Loading @@ -387,7 +408,7 @@ public class MonitorComponent { public synchronized void fillSeq() { m_logger.info("MonitorComponent.fillSeq"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.fillSeq"); if (monitoring_m) { // TODO: really it could be undefined here? Loading @@ -396,8 +417,11 @@ public class MonitorComponent { } for (String propName : monitorPoints_m.keySet()) { if (propName!="") { m_logger.info("MonitorComponent: filling:"+propName); monitorPoints_m.get(propName).fillSeq(); } } if (monitoring_m) { monitorDataBlock_m.stopTime = TimeHelper.getTimeStamp().value; Loading Loading
monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPboolean.java +8 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ import alma.TMCDB.booleanBlobData; import alma.TMCDB.booleanBlobDataSeqHelper; import alma.TMCDB.stringBlobData; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPboolean extends MonitorPointHelper implements CBbooleanOperations { Loading @@ -38,12 +39,12 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) { m_logger.info("no such Characteristic for"+ex.getMessage()); m_logger.warning("no such Characteristic for"+ex.getMessage()); } m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); Loading @@ -51,9 +52,9 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations @Override public void working(boolean value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -64,7 +65,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations a.time = c.timeStamp; blobDataSeq_m[curSeqPos_m] = a; // Increment current position pointer m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); curSeqPos_m++; // Increment initial position pointer if buffer is full if (bufferFull) Loading Loading @@ -107,7 +108,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; booleanBlobData[] tmpBlobDataSeq = new booleanBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } booleanBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -115,7 +116,7 @@ public class MPboolean extends MonitorPointHelper implements CBbooleanOperations }else { booleanBlobData[] tmpBlobDataSeq = new booleanBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } booleanBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading
monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPdouble.java +7 −5 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import alma.TMCDB.doubleBlobData; import alma.TMCDB.doubleBlobDataHelper; import alma.TMCDB.doubleBlobDataSeqHelper; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { Loading Loading @@ -62,9 +63,9 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { @Override public void working(double value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -91,7 +92,7 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { // Another segment can be created if ( seqLen_m < (prealocSeqLen_m)) { m_logger.fine("Creating new buffer segment and adding data to it"); m_logger.log(AcsLogLevel.DEBUG,"Creating new buffer segment and adding data to it"); // Create new segment seqLen_m = seqLen_m + prealocSeqLen_m; // blobDataSeq_m.length(seqLen_m); Loading Loading @@ -133,12 +134,13 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { synchronized(mutex) { try { m_logger.log(AcsLogLevel.DEBUG,"---------FILLING SEQ:"+propertyName_m); if (curSeqInit_m == 0) { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; doubleBlobData[] tmpBlobDataSeq = new doubleBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } doubleBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -146,7 +148,7 @@ public class MPdouble extends MonitorPointHelper implements CBdoubleOperations { }else { doubleBlobData[] tmpBlobDataSeq = new doubleBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } doubleBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading
monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPlong.java +3 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ public class MPlong extends MonitorPointHelper implements CBlongOperations { //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) Loading Loading @@ -99,11 +99,12 @@ public class MPlong extends MonitorPointHelper implements CBlongOperations { @Override public void fillSeq() { //super.fillSeq(); super.fillSeq(); synchronized(mutex) { try { m_logger.log(AcsLogLevel.DEBUG,"---------FILLING SEQ:"+propertyName_m); if (curSeqInit_m == 0) { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; Loading
monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MPstring.java +10 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import alma.TMCDB.longBlobData; import alma.TMCDB.stringBlobData; import alma.TMCDB.stringBlobDataSeqHelper; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; public class MPstring extends MonitorPointHelper implements CBstringOperations { Loading @@ -45,22 +46,22 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { //m_logger.info("no such Characteristic for"+propertyName); if(property_m.default_timer_trigger()==0){ m_logger.info("Default_timer_trigger=0 in Property:"+propertyName); m_logger.warning("Default_timer_trigger=0 in Property:"+propertyName); } } catch(Exception ex) { m_logger.info("no such Characteristic for"+ex.getMessage()); m_logger.warning("no such Characteristic for"+ex.getMessage()); } m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); //m_logger.info("INIZIALIZZATA COMPONENTE "+propertyName); } @Override public void working(String value, Completion c, CBDescOut desc) { m_logger.info("---->Working on:"+propertyName_m); m_logger.log(AcsLogLevel.DEBUG,"---->Working on:"+propertyName_m); // Still place in current available buffer segments m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); if ( curSeqPos_m < seqLen_m ) { // This log is commented because of operational constraints that are currently using 'debug' as operation log setting Loading @@ -71,12 +72,12 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { a.time = c.timeStamp; blobDataSeq_m[curSeqPos_m] = a; // Increment current position pointer m_logger.info("--->Received:"+value); m_logger.log(AcsLogLevel.DEBUG,"--->Received:"+value); curSeqPos_m++; // Increment initial position pointer if buffer is full if (bufferFull) { m_logger.info("Data lost from buffer"); m_logger.warning("Data lost from buffer"); curSeqInit_m++; } } Loading Loading @@ -114,7 +115,7 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { //blobDataSeq_m =new doubleBlobData[curSeqPos_m]; stringBlobData[] tmpBlobDataSeq = new stringBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"1---> BlobDataSeq "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[i]; } stringBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading @@ -122,7 +123,7 @@ public class MPstring extends MonitorPointHelper implements CBstringOperations { }else { stringBlobData[] tmpBlobDataSeq = new stringBlobData[curSeqPos_m]; for (int i = 0; i < curSeqPos_m; i++) { m_logger.info("2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); m_logger.log(AcsLogLevel.DEBUG,"2---> BlobDataSeq "+i+" "+blobDataSeq_m[i].time+" "+blobDataSeq_m[i].value); tmpBlobDataSeq[i] = blobDataSeq_m[(i+curSeqInit_m)%seqLen_m]; } stringBlobDataSeqHelper.insert(monitorBlob_m.blobDataSeq, tmpBlobDataSeq); Loading
monitorCollectorJava/src/alma/TMCDB/MonitorCollectorImpl/MonitorComponent.java +90 −66 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.omg.CORBA.Any; import org.omg.CORBA.InterfaceDef; import org.omg.CORBA.InterfaceDefHelper; import org.omg.CORBA.Object; import org.slf4j.event.Level; import alma.ACS.CBdouble; import alma.ACS.CBdoubleHelper; Loading @@ -31,6 +32,7 @@ import alma.TMCDB.doubleBlobDataSeqHolder; import alma.TMCDB.longBlobData; import alma.TMCDB.longBlobDataSeqHolder; import alma.acs.container.ContainerServices; import alma.acs.logging.AcsLogLevel; import alma.acs.time.TimeHelper; import alma.acstime.Epoch; import alma.TMCDB.MonitorCollectorImpl.MonitorPoint; Loading @@ -41,36 +43,36 @@ import alma.TMCDB.MonitorCollectorImpl.MonitorPoint; */ public class MonitorComponent { ContainerServices containerServices_m; CharacteristicComponent component_m; CharacteristicComponentDesc compDesc_m; int numOfProp_m=0; Logger m_logger; private ContainerServices containerServices_m; private CharacteristicComponent component_m; private CharacteristicComponentDesc compDesc_m; private int numOfProp_m=0; private Logger m_logger; // Monitoring state boolean monitoring_m = false; private boolean monitoring_m = false; /* * Time of monitoring start * TODO which Java type? is CORBA::ULongLong in acsCommonC.h * here is a long for compatibility with monitorDataBlock_m.startTime et similar */ Epoch m_monitoringStartTime =null; private Epoch m_monitoringStartTime =null; /* * List of monitored points, in C++ is a list with seqIndex_m as index. Here * I'll use an HashMap with names as keys for the moment */ Map<String, MonitorPointHelper> monitorPoints_m =null; private Map<String, MonitorPointHelper> monitorPoints_m =null; /* * Index for each monitored points in monitorDataBlock_m.monitorBlobs[]. * Names as keys. * TODO: evaluate monitorPoints_m implementation as an array as in C++ implementation to get rid of this. */ Map<String, Integer> monitorBlocksIndex_m = new HashMap<String, Integer>(); private Map<String, Integer> monitorBlocksIndex_m = new HashMap<String, Integer>(); MonitorDataBlock monitorDataBlock_m =null; private MonitorDataBlock monitorDataBlock_m =null; /** * @param comp Loading @@ -85,8 +87,8 @@ public class MonitorComponent { numOfProp_m = compDesc_m.properties.length; monitorDataBlock_m = new MonitorDataBlock(); monitorDataBlock_m.componentName = comp.name(); monitorDataBlock_m.startTime = 0; monitorDataBlock_m.stopTime = 0; monitorDataBlock_m.startTime = 0L; monitorDataBlock_m.stopTime = 0L; m_logger=containerServices_m.getLogger(); } Loading @@ -104,6 +106,7 @@ public class MonitorComponent { monitorPoints_m.get(propName).stopMonitoring(); monitorPoints_m.get(propName).deactivate(containerServices_m); } monitorPoints_m.clear(); } public void enable_archiving(String propertyName) { Loading @@ -120,11 +123,14 @@ public class MonitorComponent { public synchronized void addAllProperties() { m_logger.info("MonitorComponent.addAllProperties"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.addAllProperties"); int monitored=0; String[] ty =new String[numOfProp_m]; String[] na =new String[numOfProp_m]; Property[] pro = new Property[numOfProp_m]; long[] archInt = new long[numOfProp_m]; // TODO: what implementation of List/Collection for monitorPoints_m? monitorPoints_m = new HashMap<String, MonitorPointHelper>(numOfProp_m); monitorDataBlock_m.monitorBlobs = new MonitorBlob[numOfProp_m]; if (numOfProp_m>0) { for (PropertyDesc p : compDesc_m.properties) { Loading @@ -138,7 +144,7 @@ public class MonitorComponent { Object idef = p.property_ref._get_interface_def(); InterfaceDef type = InterfaceDefHelper.narrow(idef); m_logger.info("MonitorComponent.addAllProperties " + p.name + " " + type.name() m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.addAllProperties " + p.name + " " + type.name() + " "); /* Loading @@ -148,13 +154,24 @@ public class MonitorComponent { long monitoringInterval = propertyArchivingInterval(p); if (monitoringInterval != 0) { addProperty(p.name, type.name(), p.property_ref, monitoringInterval); //addProperty(p.name, type.name(), p.property_ref, monitoringInterval); ty[monitored] =p.name; na[monitored] =type.name(); pro[monitored] = p.property_ref; archInt[monitored]= monitoringInterval; monitored++; } } m_logger.info("The following monitorPoint has been added"); m_logger.log(AcsLogLevel.DEBUG,"The following monitorPoint has been added"); monitorPoints_m = new HashMap<String, MonitorPointHelper>(monitored); monitorDataBlock_m.monitorBlobs = new MonitorBlob[monitored]; for (int i=0; i<monitored; i++) addProperty(ty[i], na[i], pro[i], archInt[i]); for (String m : monitorPoints_m.keySet()) { m_logger.info("MonitorPoint:"+m); m_logger.log(AcsLogLevel.DEBUG,"MonitorPoint:"+m); } } } Loading @@ -173,6 +190,14 @@ public class MonitorComponent { if (strCharacteristic.equals("monitor_collector")) { anyCharacteristic = property .get_characteristic_by_name("default_timer_trig"); strCharacteristic = anyCharacteristic.extract_string(); double deftrig = Double.parseDouble(strCharacteristic); if (deftrig<1.) return 0; // reading archive_max_int property anyCharacteristic = property .get_characteristic_by_name("archive_max_int"); Loading Loading @@ -232,7 +257,8 @@ public class MonitorComponent { // Adding the index property on monitorBlocksIndex_m int index = monitorBlocksIndex_m.size(); monitorBlocksIndex_m.put(propertyName, index); monitorDataBlock_m.monitorBlobs[index]=null; m_logger.log(AcsLogLevel.DEBUG,"Adding prop index:"+index+"-->Name:"+propertyName); /* * A note from the C++ implementation: * Here we have to check for the type. Loading @@ -247,7 +273,7 @@ public class MonitorComponent { MPdouble mpd = new MPdouble(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpd.activate(containerServices_m); monitorPoints_m.put(propertyName, mpd); m_logger.info("Added ROdouble:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROdouble:"+propertyName); } }else if (propertyType.endsWith("long")) { //m_logger.info("Added ROLong:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -256,7 +282,7 @@ public class MonitorComponent { MPlong mpl = new MPlong(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpl.activate(containerServices_m); monitorPoints_m.put(propertyName, mpl); m_logger.info("Added ROLong:"+propertyName); } m_logger.log(AcsLogLevel.DEBUG,"Added ROLong:"+propertyName); } }else if (propertyType.endsWith("boolean")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); if (propertyType.startsWith("RO")) { Loading @@ -264,7 +290,7 @@ public class MonitorComponent { MPboolean mpb = new MPboolean(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpb.activate(containerServices_m); monitorPoints_m.put(propertyName, mpb); m_logger.info("Added ROboolean:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROboolean:"+propertyName); } }else if (propertyType.endsWith("longLong")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -273,7 +299,7 @@ public class MonitorComponent { MPlongLong mpll = new MPlongLong(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mpll.activate(containerServices_m); monitorPoints_m.put(propertyName, mpll); m_logger.info("Added ROlongLong:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROlongLong:"+propertyName); } }else if (propertyType.endsWith("string")) { //m_logger.info("Added ROboolean:"+propertyName+", "+propertyType+", "+propertyRef+", "+archivingInterval); Loading @@ -282,7 +308,7 @@ public class MonitorComponent { MPstring mps = new MPstring(m_logger,propertyName,archivingInterval,propertyRef,monitorDataBlock_m.monitorBlobs[index]); mps.activate(containerServices_m); monitorPoints_m.put(propertyName, mps); m_logger.info("Added ROstring:"+propertyName); m_logger.log(AcsLogLevel.DEBUG,"Added ROstring:"+propertyName); } }else { m_logger.info("UNIMPLEMENTED Porperty Type:"+propertyType); Loading @@ -291,16 +317,11 @@ public class MonitorComponent { public void startMonitoring() { m_logger.info("---> MonitorComponent.startMonitoring"); m_logger.info("---> # monitor points: "+monitorPoints_m.size()); for (String propName : monitorPoints_m.keySet()) { m_logger.info("----> "+propName); m_logger.info("----> "+monitorPoints_m.get(propName).toString()); } //m_logger.info("---> MonitorComponent.startMonitoring"); //m_logger.info("---> # monitor points: "+monitorPoints_m.size()); for (String propName : monitorPoints_m.keySet()) { m_logger.log(AcsLogLevel.DEBUG,"startMonitoring:"+propName); //m_logger.info("----> "+monitorPoints_m.get(propName).toString()); monitorPoints_m.get(propName).startMonitoring(containerServices_m); } // set monitoring state Loading @@ -316,7 +337,7 @@ public class MonitorComponent { public void stopMonitoring() { m_logger.info("MonitorComponent.stopMonitoring"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.stopMonitoring"); if (monitoring_m) { for (String propName : monitorPoints_m.keySet()) { monitorPoints_m.get(propName).stopMonitoring(); Loading @@ -341,7 +362,7 @@ public class MonitorComponent { String prop = component_m.name()+":"+propertyName; m_logger.info("MonitorComponent.set_archiving_interval "+prop); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.set_archiving_interval "+prop); for (String propName : monitorPoints_m.keySet()) { if (monitorPoints_m.get(propName).getPropertyName().equals(prop)) Loading @@ -364,7 +385,7 @@ public class MonitorComponent { public synchronized void setDeviceSerialNumber(String serialNumber) { m_logger.info("MonitorComponent.setDeviceSerialNumber"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.setDeviceSerialNumber"); monitorDataBlock_m.deviceSerialNumber = serialNumber; } Loading @@ -372,7 +393,7 @@ public class MonitorComponent { public synchronized void setPropertySerialNumber(String propertyName, String[] serialNumbers) { m_logger.info("MonitorComponent.setPropertySerialNumber"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.setPropertySerialNumber"); for (String propName : monitorPoints_m.keySet()) { Loading @@ -387,7 +408,7 @@ public class MonitorComponent { public synchronized void fillSeq() { m_logger.info("MonitorComponent.fillSeq"); m_logger.log(AcsLogLevel.DEBUG,"MonitorComponent.fillSeq"); if (monitoring_m) { // TODO: really it could be undefined here? Loading @@ -396,8 +417,11 @@ public class MonitorComponent { } for (String propName : monitorPoints_m.keySet()) { if (propName!="") { m_logger.info("MonitorComponent: filling:"+propName); monitorPoints_m.get(propName).fillSeq(); } } if (monitoring_m) { monitorDataBlock_m.stopTime = TimeHelper.getTimeStamp().value; Loading