Skip to content
Snippets Groups Projects
Commit 8a5fd781 authored by Ruud Overeem's avatar Ruud Overeem
Browse files

Task #2090: Writing DynArrays with the TiedArrayBeam information.

parent a8bc76f2
No related branches found
No related tags found
No related merge requests found
...@@ -236,8 +236,8 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa ...@@ -236,8 +236,8 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa
Observation theObs(&obsPS); Observation theObs(&obsPS);
RTDBPropertySet* theObsPS = itsCurrentObs->second->propSet; RTDBPropertySet* theObsPS = itsCurrentObs->second->propSet;
theObsPS->setValue(PN_OBS_CLAIM_PERIOD, GCFPVInteger(itsClaimPeriod), 0.0, false); // theObsPS->setValue(PN_OBS_CLAIM_PERIOD, GCFPVInteger(itsClaimPeriod), 0.0, false);
theObsPS->setValue(PN_OBS_PREPARE_PERIOD, GCFPVInteger(itsPreparePeriod), 0.0, false); // theObsPS->setValue(PN_OBS_PREPARE_PERIOD, GCFPVInteger(itsPreparePeriod), 0.0, false);
theObsPS->setValue(PN_OBS_RUN_STATE, GCFPVString(""), 0.0, false); theObsPS->setValue(PN_OBS_RUN_STATE, GCFPVString(""), 0.0, false);
theObsPS->setValue(PN_OBS_START_TIME, GCFPVString (to_simple_string(from_time_t(theObs.startTime))), 0.0, false); theObsPS->setValue(PN_OBS_START_TIME, GCFPVString (to_simple_string(from_time_t(theObs.startTime))), 0.0, false);
theObsPS->setValue(PN_OBS_STOP_TIME, GCFPVString (to_simple_string(from_time_t(theObs.stopTime))), 0.0, false); theObsPS->setValue(PN_OBS_STOP_TIME, GCFPVString (to_simple_string(from_time_t(theObs.stopTime))), 0.0, false);
...@@ -281,6 +281,32 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa ...@@ -281,6 +281,32 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa
theObsPS->setValue(PN_OBS_BEAMS_ANGLE1, GCFPVDynArr(LPT_DYNDOUBLE, angle1Arr), 0.0, false); theObsPS->setValue(PN_OBS_BEAMS_ANGLE1, GCFPVDynArr(LPT_DYNDOUBLE, angle1Arr), 0.0, false);
theObsPS->setValue(PN_OBS_BEAMS_ANGLE2, GCFPVDynArr(LPT_DYNDOUBLE, angle2Arr), 0.0, false); theObsPS->setValue(PN_OBS_BEAMS_ANGLE2, GCFPVDynArr(LPT_DYNDOUBLE, angle2Arr), 0.0, false);
theObsPS->setValue(PN_OBS_BEAMS_DIRECTION_TYPE, GCFPVDynArr(LPT_DYNSTRING, dirTypesArr), 0.0, false); theObsPS->setValue(PN_OBS_BEAMS_DIRECTION_TYPE, GCFPVDynArr(LPT_DYNSTRING, dirTypesArr), 0.0, false);
// for the TiedArrayBeams we have to construct dyn arrays first.
GCFPValueArray beamIndexArr;
GCFPValueArray TABangle1Arr;
GCFPValueArray TABangle2Arr;
GCFPValueArray TABdirTypesArr;
GCFPValueArray dispersionArr;
GCFPValueArray coherentArr;
for (uint32 b(0); b < theObs.beams.size(); b++) {
for (uint32 t(0); t < theObs.beams[b].TABs.size(); t++) {
beamIndexArr.push_back (new GCFPVInteger(b));
angle1Arr.push_back (new GCFPVDouble(theObs.beams[b].TABs[t].angle1));
angle2Arr.push_back (new GCFPVDouble(theObs.beams[b].TABs[t].angle2));
dirTypesArr.push_back (new GCFPVString(theObs.beams[b].TABs[t].directionType));
dispersionArr.push_back (new GCFPVDouble(theObs.beams[b].TABs[t].dispersionMeasure));
coherentArr.push_back (new GCFPVBool(theObs.beams[b].TABs[t].coherent));
}
}
// Finally we can write those value to PVSS as well.
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_BEAM_INDEX, GCFPVDynArr(LPT_DYNINTEGER, beamIndexArr), 0.0, false);
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_ANGLE1, GCFPVDynArr(LPT_DYNDOUBLE, TABangle1Arr), 0.0, false);
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_ANGLE2, GCFPVDynArr(LPT_DYNDOUBLE, TABangle2Arr), 0.0, false);
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_DIRECTION_TYPE, GCFPVDynArr(LPT_DYNSTRING, TABdirTypesArr), 0.0, false);
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_DISPERSION, GCFPVDynArr(LPT_DYNSTRING, dispersionArr), 0.0, false);
theObsPS->setValue(PN_OBS_TIED_ARRAY_BEAMS_COHERENT, GCFPVDynArr(LPT_DYNBOOL, coherentArr), 0.0, false);
theObsPS->flush(); theObsPS->flush();
setObjectState("MACScheduler: registration", itsCurrentObs->second->DPname, RTDB_OBJ_STATE_OFF, true); setObjectState("MACScheduler: registration", itsCurrentObs->second->DPname, RTDB_OBJ_STATE_OFF, true);
...@@ -305,6 +331,14 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa ...@@ -305,6 +331,14 @@ GCFEvent::TResult ObsClaimer::preparePVSS_state (GCFEvent& event, GCFPortInterfa
delete angle2Arr[i]; delete angle2Arr[i];
delete dirTypesArr[i]; delete dirTypesArr[i];
} }
for (int i = beamIndexArr.size()-1; i >=0; i--) {
delete beamIndexArr[i];
delete TABangle1Arr[i];
delete TABangle2Arr[i];
delete TABdirTypesArr[i];
delete dispersionArr[i];
delete coherentArr[i];
}
} catch (Exception &e) { } catch (Exception &e) {
LOG_ERROR_STR("Specifications for Observation " << itsCurrentObs->second->obsName << " are invalid: " LOG_ERROR_STR("Specifications for Observation " << itsCurrentObs->second->obsName << " are invalid: "
......
// This file was generated by create_db_files v1.0 on Wed Mar 11 12:40:11 UTC 2009 // This file was generated by create_db_files v2.0 on Fri Jan 13 13:20:29 UTC 2012
#ifndef LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H #ifndef LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H
#define LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H #define LOFAR_DEPLOYMENT_PVSSDATAPOINTS_H
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#define PST_OBSERVATION "Observation" #define PST_OBSERVATION "Observation"
#define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate" #define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate"
#define PN_OBS_CLAIM_NAME "claim.name" #define PN_OBS_CLAIM_NAME "claim.name"
#define PN_OBS_RECEIVER_BITMAP "receiverBitmap"
#define PN_OBS_CLAIM_PERIOD "claimPeriod" #define PN_OBS_CLAIM_PERIOD "claimPeriod"
#define PN_OBS_PREPARE_PERIOD "preparePeriod" #define PN_OBS_PREPARE_PERIOD "preparePeriod"
#define PN_OBS_START_TIME "startTime" #define PN_OBS_START_TIME "startTime"
...@@ -63,22 +62,53 @@ ...@@ -63,22 +62,53 @@
#define PN_OBS_BEAMS_DIRECTION_TYPE "Beams.directionType" #define PN_OBS_BEAMS_DIRECTION_TYPE "Beams.directionType"
#define PN_OBS_BEAMS_BEAMLET_LIST "Beams.beamletList" #define PN_OBS_BEAMS_BEAMLET_LIST "Beams.beamletList"
#define PN_OBS_BEAMS_SUBBAND_LIST "Beams.subbandList" #define PN_OBS_BEAMS_SUBBAND_LIST "Beams.subbandList"
#define PN_OBS_TIED_ARRAY_BEAMS_BEAM_INDEX "TiedArrayBeams.beamIndex"
#define PN_OBS_TIED_ARRAY_BEAMS_ANGLE1 "TiedArrayBeams.angle1"
#define PN_OBS_TIED_ARRAY_BEAMS_ANGLE2 "TiedArrayBeams.angle2"
#define PN_OBS_TIED_ARRAY_BEAMS_DIRECTION_TYPE "TiedArrayBeams.directionType"
#define PN_OBS_TIED_ARRAY_BEAMS_DISPERSION "TiedArrayBeams.dispersion"
#define PN_OBS_TIED_ARRAY_BEAMS_COHERENT "TiedArrayBeams.coherent"
// ObservationControl // ObservationControl
#define PSN_OBSERVATION_CONTROL "LOFAR_ObsSW_@observation@_ObservationControl" #define PSN_OBSERVATION_CONTROL "LOFAR_ObsSW_@observation@_ObservationControl"
#define PST_OBSERVATION_CONTROL "ObservationControl" #define PST_OBSERVATION_CONTROL "ObservationControl"
// OnlineControl // Adder
#define PSN_ONLINE_CONTROL "LOFAR_ObsSW_@observation@_OnlineControl" #define PSN_ADDER "@adder@"
#define PST_ONLINE_CONTROL "OnlineControl" #define PST_ADDER "Adder"
#define PN_ADD_DROPPING "dropping"
#define PN_ADD_NR_BLOCKS_DROPPED "nrBlocksDropped"
#define PN_ADD_DATA_PRODUCT_TYPE "dataProductType"
#define PN_ADD_FILE_NAME "fileName"
#define PN_ADD_STORAGE_NODE "storageNode"
#define PN_ADD_DIRECTORY "directory"
#define PN_ADD_OBSERVATION_NAME "observationName"
// Correlator // InputBuffer
#define PSN_CORRELATOR "LOFAR_ObsSW_@observation@_OnlineControl_Correlator" #define PSN_INPUT_BUFFER "@inputbuffer@"
#define PST_CORRELATOR "Correlator" #define PST_INPUT_BUFFER "InputBuffer"
#define PN_IPB_STATION_NAME "stationName"
#define PN_IPB_STREAM0_BLOCKS_IN "stream0.blocksIn"
#define PN_IPB_STREAM0_PERC_BAD "stream0.percBad"
#define PN_IPB_STREAM0_REJECTED "stream0.rejected"
#define PN_IPB_STREAM1_BLOCKS_IN "stream1.blocksIn"
#define PN_IPB_STREAM1_PERC_BAD "stream1.percBad"
#define PN_IPB_STREAM1_REJECTED "stream1.rejected"
#define PN_IPB_STREAM2_BLOCKS_IN "stream2.blocksIn"
#define PN_IPB_STREAM2_PERC_BAD "stream2.percBad"
#define PN_IPB_STREAM2_REJECTED "stream2.rejected"
#define PN_IPB_STREAM3_BLOCKS_IN "stream3.blocksIn"
#define PN_IPB_STREAM3_PERC_BAD "stream3.percBad"
#define PN_IPB_STREAM3_REJECTED "stream3.rejected"
#define PN_IPB_LATE "late"
#define PN_IPB_IO_TIME "IOTime"
// StorageAppl // Storage
#define PSN_STORAGE_APPL "LOFAR_ObsSW_@observation@_OnlineControl_StorageAppl" #define PSN_STORAGE "@storage@"
#define PST_STORAGE_APPL "StorageAppl" #define PST_STORAGE "Storage"
#define PN_STR_TIME "time"
#define PN_STR_COUNT "count"
#define PN_STR_DROPPED "dropped"
// Cabinet // Cabinet
#define PSN_CABINET "LOFAR_PIC_@cabinet@" #define PSN_CABINET "LOFAR_PIC_@cabinet@"
...@@ -136,6 +166,7 @@ ...@@ -136,6 +166,7 @@
#define PN_RSP_VOLTAGE33 "voltage33" #define PN_RSP_VOLTAGE33 "voltage33"
#define PN_RSP_VERSION "version" #define PN_RSP_VERSION "version"
#define PN_RSP_ALERT "alert" #define PN_RSP_ALERT "alert"
#define PN_RSP_SPLITTER_ON "splitterOn"
#define PN_RSP__ETHERNET_STATUS_STATE "Ethernet.status.state" #define PN_RSP__ETHERNET_STATUS_STATE "Ethernet.status.state"
#define PN_RSP__ETHERNET_STATUS_CHILD_STATE "Ethernet.status.childState" #define PN_RSP__ETHERNET_STATUS_CHILD_STATE "Ethernet.status.childState"
#define PN_RSP__ETHERNET_STATUS_MESSAGE "Ethernet.status.message" #define PN_RSP__ETHERNET_STATUS_MESSAGE "Ethernet.status.message"
...@@ -216,10 +247,15 @@ ...@@ -216,10 +247,15 @@
#define PN_RCU_TRIGGER_FILTER "Trigger.filter" #define PN_RCU_TRIGGER_FILTER "Trigger.filter"
#define PN_RCU_TRIGGER_WINDOW "Trigger.window" #define PN_RCU_TRIGGER_WINDOW "Trigger.window"
#define PN_RCU_TRIGGER_OPERATING_MODE "Trigger.operatingMode" #define PN_RCU_TRIGGER_OPERATING_MODE "Trigger.operatingMode"
#define PN_RCU_TRIGGER_COEFF0 "Trigger.coeff0" #define PN_RCU_TRIGGER_TRIGGER_MODE "Trigger.triggerMode"
#define PN_RCU_TRIGGER_COEFF1 "Trigger.coeff1" #define PN_RCU_TRIGGER_FILTER0_COEFF0 "Trigger.filter0.coeff0"
#define PN_RCU_TRIGGER_COEFF2 "Trigger.coeff2" #define PN_RCU_TRIGGER_FILTER0_COEFF1 "Trigger.filter0.coeff1"
#define PN_RCU_TRIGGER_COEFF3 "Trigger.coeff3" #define PN_RCU_TRIGGER_FILTER0_COEFF2 "Trigger.filter0.coeff2"
#define PN_RCU_TRIGGER_FILTER0_COEFF3 "Trigger.filter0.coeff3"
#define PN_RCU_TRIGGER_FILTER1_COEFF0 "Trigger.filter1.coeff0"
#define PN_RCU_TRIGGER_FILTER1_COEFF1 "Trigger.filter1.coeff1"
#define PN_RCU_TRIGGER_FILTER1_COEFF2 "Trigger.filter1.coeff2"
#define PN_RCU_TRIGGER_FILTER1_COEFF3 "Trigger.filter1.coeff3"
// TBBoard // TBBoard
#define PSN_TB_BOARD "LOFAR_PIC_@cabinet@_@subrack@_@TBBoard@" #define PSN_TB_BOARD "LOFAR_PIC_@cabinet@_@subrack@_@TBBoard@"
...@@ -260,6 +296,7 @@ ...@@ -260,6 +296,7 @@
#define PST_HARDWARE_MONITOR "HardwareMonitor" #define PST_HARDWARE_MONITOR "HardwareMonitor"
#define PN_HWM_RSP_CONNECTED "RSP.connected" #define PN_HWM_RSP_CONNECTED "RSP.connected"
#define PN_HWM_TBB_CONNECTED "TBB.connected" #define PN_HWM_TBB_CONNECTED "TBB.connected"
#define PN_HWM_EC_CONNECTED "EC.connected"
// SoftwareMonitor // SoftwareMonitor
#define PSN_SOFTWARE_MONITOR "LOFAR_PermSW_SoftwareMonitor" #define PSN_SOFTWARE_MONITOR "LOFAR_PermSW_SoftwareMonitor"
...@@ -292,7 +329,7 @@ ...@@ -292,7 +329,7 @@
#define PN_ANT_RCUY "RCUY" #define PN_ANT_RCUY "RCUY"
#define PN_ANT_DELTAX "deltaX" #define PN_ANT_DELTAX "deltaX"
#define PN_ANT_DELTAY "deltaY" #define PN_ANT_DELTAY "deltaY"
#define PN_ANT_DELTAH "deltaH" #define PN_ANT_DELTAZ "deltaZ"
// StnObservation // StnObservation
#define PSN_STN_OBSERVATION "LOFAR_ObsSW_@observation@" #define PSN_STN_OBSERVATION "LOFAR_ObsSW_@observation@"
...@@ -300,6 +337,7 @@ ...@@ -300,6 +337,7 @@
#define PN_OBS_NAME "name" #define PN_OBS_NAME "name"
#define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate" #define PN_OBS_CLAIM_CLAIM_DATE "claim.claimDate"
#define PN_OBS_CLAIM_NAME "claim.name" #define PN_OBS_CLAIM_NAME "claim.name"
#define PN_OBS_RECEIVER_BITMAP "receiverBitmap"
// BeamControl // BeamControl
#define PSN_BEAM_CONTROL "LOFAR_ObsSW_@observation@_BeamControl" #define PSN_BEAM_CONTROL "LOFAR_ObsSW_@observation@_BeamControl"
...@@ -336,5 +374,6 @@ ...@@ -336,5 +374,6 @@
#define PN_TBC_TRIGGER_PEAK_VALUE "trigger.peakValue" #define PN_TBC_TRIGGER_PEAK_VALUE "trigger.peakValue"
#define PN_TBC_TRIGGER_FLAGS "trigger.flags" #define PN_TBC_TRIGGER_FLAGS "trigger.flags"
#define PN_TBC_TRIGGER_TABLE "trigger.table" #define PN_TBC_TRIGGER_TABLE "trigger.table"
#define PN_TBC_TRIGGER_MISSED "trigger.missed"
#endif #endif
#ObservationControl.dpdef #Observation.dpdef
claim :Claim claim :Claim
claimPeriod int claimPeriod int
...@@ -24,3 +24,10 @@ Beams.angle2 doubleArr ...@@ -24,3 +24,10 @@ Beams.angle2 doubleArr
Beams.directionType stringArr Beams.directionType stringArr
Beams.beamletList stringArr Beams.beamletList stringArr
Beams.subbandList stringArr Beams.subbandList stringArr
TiedArrayBeams.beamIndex doubleArr
TiedArrayBeams.angle1 doubleArr
TiedArrayBeams.angle2 doubleArr
TiedArrayBeams.directionType stringArr
TiedArrayBeams.dispersion doubleArr
TiedArrayBeams.coherent boolArr
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment