diff --git a/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl b/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl index 6b133fc226359d9a71c456e4bbad2693e0c9b1f3..8835eb5411a948d60c6e180c2c01e32a7eff00f6 100644 --- a/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl +++ b/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl @@ -1,4 +1,4 @@ -V 10 +V 11 1 LANG:1 10 Subrack_AP PANEL,-1 -1 184 193 N "_3DFace" 1 @@ -49,9 +49,9 @@ E "#uses \"navPanel.ctl\" string baseDP=\"\"; -FPGASyncDetails(string dp1, int sampleCount, - string dp2, int syncCount, - string dp3, int errorCount) +FPGASyncDetails(string dp1, uint sampleCount, + string dp2, uint syncCount, + string dp3, uint errorCount) { setValue(\"output_errorCount\" , \"text\", errorCount); setValue(\"output_sampleCount\", \"text\", sampleCount); @@ -106,12 +106,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 0 1 E U 0 E 27 33 45 50 +E E 0 1 1 0 1 E U 0 E 27 33 45 49 0 2 0 "0s" 0 0 0 192 0 0 27 33 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0 +0 1 LANG:1 2 AP 2 6 "txt_version" @@ -126,12 +125,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 0 1 E U 0 E 121 166 158 181 +E E 0 1 1 0 1 E U 0 E 121 166 158 180 0 2 0 "0s" 0 0 0 194 0 0 158 166 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0 +0 1 LANG:1 8 ver: x.x 2 8 "label_sampleCount" @@ -149,9 +147,8 @@ LANG:1 0 E E 0 1 1 0 1 E U 0 E 22 97 72 116 0 2 0 "0s" 0 0 0 66 0 0 22 97 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0 +0 1 LANG:1 7 Sample: 2 9 "label_syncCount" @@ -169,9 +166,8 @@ LANG:1 0 E E 0 1 1 0 1 E U 0 E 39 120 72 136 0 2 0 "0s" 0 0 0 66 0 0 39 120 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0 +0 1 LANG:1 5 Sync: 2 7 "label_errorCount" @@ -189,9 +185,8 @@ LANG:1 0 E E 0 1 1 0 1 E U 0 E 39 143 72 159 0 2 0 "0s" 0 0 0 66 0 0 39 143 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0 +0 1 LANG:1 6 Error: 2 18 "txt_temperature" @@ -206,12 +201,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 0 1 E U 0 E 126 32 133 49 +E E 0 1 1 0 1 E U 0 E 126 32 133 48 0 2 0 "3.0f" 4 0 0 194 0 0 133 32 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0 +0 1 LANG:1 1 x 2 4 "label_temperature" @@ -226,12 +220,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 0 1 E U 0 E 134 32 148 49 +E E 0 1 1 0 1 E U 0 E 134 32 148 48 0 2 0 "0s" 0 0 0 194 0 0 148 32 1 1 -LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" -1 +LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0 +0 1 LANG:1 2 �C 1 19 0 "" 1 0 @@ -248,9 +241,8 @@ LANG:1 0 0 1 -LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" - 78 139 152 164 +LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0 +0 78 139 152 164 3 "0s" 0 0 0 2 0 -1 E E E 14 13 "output_sampleCount" @@ -265,9 +257,8 @@ LANG:1 0 0 1 -LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" - 78 90 152 115 +LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0 +0 78 90 152 115 3 "0s" 0 0 0 2 0 -1 E E E 14 14 "output_syncCount" @@ -282,9 +273,8 @@ LANG:1 0 0 1 -LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial -0 "" - 78 114 152 139 +LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0 +0 78 114 152 139 3 "0s" 0 0 0 2 0 -1 E E E 0 LAYER, 1 @@ -315,7 +305,7 @@ LAYER, 7 1 LANG:1 6 Layer8 0 -3 0 "selfState" +3 0 "selfState" -1 "objects\\lofar_self_state.pnl" 25 171 T 17 1 0 1 -2 -15 0 -0 \ No newline at end of file +0 diff --git a/MAC/Navigator2/scripts/setSumAlerts.ctl b/MAC/Navigator2/scripts/setSumAlerts.ctl index 71fbb9d3439d1a53dab7ccf23cf798b9adf4d024..844e90f4441e7872278adcf7259fae5bfb1212c3 100644 --- a/MAC/Navigator2/scripts/setSumAlerts.ctl +++ b/MAC/Navigator2/scripts/setSumAlerts.ctl @@ -45,10 +45,12 @@ private void setSumAlerts( string strDPE, bool bRunDone ) // Get all DPE's with a 'childSumAlert' dsParentDPEs = dpNames( "*.**.childSumAlert" ); + dynSort(dsParentDPEs); + // Go through sumalerts for( x=1; x<=dynlen(dsParentDPEs); x++ ) { - bool bRetVal1, bRetVal2; + bool bRetVal1, bRetVal2, bLeaf; int iRetVal, iAlertHdlType; string strDPE; dyn_string dsChilds, dsChildDPEs; @@ -57,8 +59,8 @@ private void setSumAlerts( string strDPE, bool bRunDone ) strDPE = dpSubStr( dsParentDPEs[x], DPSUB_DP_EL ); strDPE = RemoveLastDpeParts(strDPE); - // Skip master datapoints - if( patternMatch( "*_mp*", strDPE ) ) + // Skip master datapoints and leaf=True points + if( patternMatch( "*_mp*", strDPE )) { continue; } @@ -68,58 +70,74 @@ private void setSumAlerts( string strDPE, bool bRunDone ) continue; } + dpGet(strDPE+".status.leaf",bLeaf); + if (bLeaf) + { + continue; + } + + + if (bDebug) + { + DebugTN("Working on: " + strDPE); + } + // Get childs of this DPE dsChilds = GetChilds( strDPE ); + // For each child: get DPE's to add to sumalerts and append to list for( y=1; y<=dynlen(dsChilds); y++ ) { dynAppend( dsChildDPEs, GetChildDPEs( dsChilds[y] ) ); } + // Check if this DPE has an alert_hdl of type sumalert dpGet( dsParentDPEs[x] + ":_alert_hdl.._type", iAlertHdlType ); - if( iAlertHdlType == DPCONFIG_SUM_ALERT ) + if( iAlertHdlType == DPCONFIG_SUM_ALERT) { - // First deactivate the alert - dpDeactivateAlert( dsParentDPEs[x], bRetVal1 ); - if( !bRetVal1 ) - { - DebugTN( "setSumAlerts(): FAILED TO dpDeactivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" ); - } - - // No change the sumalert dplist - iRetVal = dpSet( dsParentDPEs[x] + ":_alert_hdl.._dp_list", dsChildDPEs, - dsParentDPEs[x] + ":_alert_hdl.._dp_pattern", "" ); - - dyn_errClass derrLastError = getLastError(); - if( dynlen(derrLastError) > 0 ) - { - DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, getLastError():", derrLastError ); - } - else if( iRetVal != 0 ) - { - DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, iRetVal = " + iRetVal ); - } - - // Activate alert again - dpActivateAlert( dsParentDPEs[x], bRetVal2 ); - if( !bRetVal2 ) - { - DebugTN( "setSumAlerts(): FAILED TO dpActivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" ); - } - - // Show if we're succesfull - if( bRetVal1 && bRetVal2 && ( iRetVal == 0 ) ) + if (dynlen(dsChildDPEs) > 0) { - if( bDebug ) + // First deactivate the alert + dpDeactivateAlert( dsParentDPEs[x], bRetVal1 ); + if( !bRetVal1 ) + { + DebugTN( "setSumAlerts(): FAILED TO dpDeactivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" ); + } + + // No change the sumalert dplist + iRetVal = dpSet( dsParentDPEs[x] + ":_alert_hdl.._dp_list", dsChildDPEs, + dsParentDPEs[x] + ":_alert_hdl.._dp_pattern", "" ); + + dyn_errClass derrLastError = getLastError(); + if( dynlen(derrLastError) > 0 ) { - DebugTN( "setSumAlerts(): SumAlerts for DPE '" + dsParentDPEs[x] + "' succesfully set to " + dynlen(dsChildDPEs) + " child DPEs" ); + DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, getLastError():", derrLastError ); + } + else if( iRetVal != 0 ) + { + DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, iRetVal = " + iRetVal ); + } + + // Activate alert again + dpActivateAlert( dsParentDPEs[x], bRetVal2 ); + if( !bRetVal2 ) + { + DebugTN( "setSumAlerts(): FAILED TO dpActivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" ); + } + + // Show if we're succesfull + if( bRetVal1 && bRetVal2 && ( iRetVal == 0 ) ) + { + if( bDebug ) + { + DebugTN( "setSumAlerts(): SumAlerts for DPE '" + dsParentDPEs[x] + "' succesfully set to " + dynlen(dsChildDPEs) + " child DPEs" ); + } } } } - else { DebugTN( "setSumAlerts(): DPE '" + dsParentDPEs[x] + "' DOESN'T HAVE AN ALERT-HANDLE OR NOT OF TYPE SUM-ALERT!!" ); @@ -131,6 +149,7 @@ private void setSumAlerts( string strDPE, bool bRunDone ) } dpSet( "scriptInfo.setSumAlerts.runDone", true ); + DebugTN("setSumAlerts.ctl:main|set of sumAlerts done"); } diff --git a/MAC/Navigator2/scripts/transferMPs.ctl b/MAC/Navigator2/scripts/transferMPs.ctl index 632cbc3f43aacd0922d8c09df4d7dc44118f0a84..da806d60e5abb30953f1fb073753313c17dc10b2 100644 --- a/MAC/Navigator2/scripts/transferMPs.ctl +++ b/MAC/Navigator2/scripts/transferMPs.ctl @@ -12,7 +12,7 @@ void main() if (dpExists("scriptInfo.transferMPs.debug")) { dpConnect("debugCB",true,"scriptInfo.transferMPs.debug"); } else { - DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.debugpoint not found in Database"); + DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.debugpoint not found in bbase"); } if (dpExists("scriptInfo.transferMPs.runDone")) { @@ -35,10 +35,6 @@ void main() } else { DebugTN("transferMPs.ctl:main|set leafpoints to value in mp failed"); } - - // if on a station, determine the ip adres to construct the ip adres of the POEWEC(S) write them in then database - // and set the manager active - } private void debugCB(string dp1, bool debug) { @@ -53,10 +49,11 @@ private void startTransferMP(string dp1, bool done ) { string sDestinationDPE; if (done) return; + + startTransferMP_Embedded(); - DebugTN("transferMPs.ctl:main|start transfer of MPconfigs to all DP's"); + DebugTN("transferMPs.ctl:main|start transfer of MPconfigs to all DP's"); - string query="SELECT '_original.._value' FROM '_mp_*'"; dyn_dyn_anytype tab; dyn_string dps; @@ -71,12 +68,12 @@ private void startTransferMP(string dp1, bool done ) { } } } - + for (k=1;k <= dynlen(dps); k++) { string dpstr = dps[k]; dyn_string dsDpes = dpNames( dpstr + ".**"), dsDps = dpNames("*",dpTypeName(dpstr)); - + // no datapoints found if ( dynlen(dsDps) > 1 ) { @@ -85,6 +82,7 @@ private void startTransferMP(string dp1, bool done ) { ll = l * (l1 - 1); // !!! dynlen(dsDpes) * dynlen(dsDps) verwenden mit der 2-Sek-Verz�gerung + for ( i = 1; i <= l; i++ ) { if ( strpos(dsDpes[i],".") < 1 ) dsDpes[i] += "."; dsConfigs = dpNames( dsDpes[i] + ":*" ); @@ -101,13 +99,16 @@ private void startTransferMP(string dp1, bool done ) { sDestinationDPE = dsDpes[i]; strreplace( sDestinationDPE, dpSubStr(dsDpes[i], DPSUB_DP), dpSubStr(dsDps[j], DPSUB_DP)); daCheckDPE(sDestinationDPE); - dpCopyConfig(dsDpes[i], sDestinationDPE, dsConfigs, iError); } } } } dpSet("scriptInfo.transferMPs.runDone",true); + + // fire setSumAlerts now that the database is complete + dpSet("scriptInfo.setSumAlerts.runDone",false); + DebugTN("MPTransfer Done."); } @@ -213,3 +214,99 @@ bool skipDP(string dp) { if (strpos(dp,"MODE_CMD") > -1) return true; return false; } + + + + + +void startTransferMP_Embedded() +{ + int x, y; + dyn_dyn_anytype ddaData; + dyn_dyn_string ddsRefs; + dyn_string dsDPs; + dyn_string dsDPTs; + + DebugTN("========== transferMPs.ctl:main|start transfer of embedded MPconfigs to all master DP's"); + + string strQuery = "SELECT '_original.._value' FROM '_mp_*'"; + dpQuery( strQuery,ddaData ); + + for( x=2; x<=dynlen(ddaData); x++) + { + string strDP = dpSubStr( ddaData[x][1], DPSUB_DP ); + string strDPT = dpTypeName(strDP); + + if( skipDP( strDP ) ) + { + continue; + } + + if (dynContains(dsDPTs, strDPT)) + { + continue; + } + + dynAppend(dsDPTs,strDPT); + + + // Get all DP-Types that has reference to this DP-type + ddsRefs = dpGetRefsToDpType( strDPT ); + + for( y=1; y<=dynlen(ddsRefs); y++ ) + { + if( dynlen(ddsRefs[y]) != 2 ) + continue; + + string strDPTsource = strDPT; + string strDPTtarget = ddsRefs[y][1]; + string strDPEtarget = ddsRefs[y][2]; + + CopyEmbbeddedMasterDP( strDPTsource, strDPTtarget, strDPEtarget ); + } + } + + DebugTN("========== transfer of embedded MPconfigs to all master DP's done"); + +} + + + +// Copies the master-datapoint configs of the given datapoint type 'strDPTsource' to the master-datapoint of the given type 'strDPTtarget' +void CopyEmbbeddedMasterDP( string strDPTsource, string strDPTtarget, string strDPTtargetElement ) +{ + int x, iError; + string strDPsource, strDPtarget, strDPEsource, strDPEtarget; + dyn_string dsDPEsSource; + dyn_string dsConfigs = makeDynString( "_distrib", "_address", "_archive", "_alert_hdl", + "_cmd_conv", "_msg_conv", + "_default", "_dp_fct", "_pv_range", + "_smooth", "_u_range", "_auth", + "_alert_class", "_original" ); + + + strDPsource = "_mp_" + strDPTsource; + strDPtarget = "_mp_" + strDPTtarget; + + strDPsource = dpSubStr( strDPsource, DPSUB_DP ); + strDPtarget = dpSubStr( strDPtarget, DPSUB_DP ); + + if( !dpExists( strDPsource ) ) + return; + + if( !dpExists( strDPtarget ) ) + return; + + dsDPEsSource = dpNames( strDPsource + ".**" ); + + if (bDebug) DebugN( "CopyEmbbeddedMasterDP(): Copy config from " + dynlen(dsDPEsSource) + " DPE's of '" + strDPsource + "' to '" + strDPtarget + "." + strDPTtargetElement +"'" ); + for( x=1; x<=dynlen(dsDPEsSource); x++ ) + { + strDPEsource = dpSubStr( dsDPEsSource[x], DPSUB_DP_EL ); + + strDPEtarget = strDPtarget + "." + strDPTtargetElement + strltrim( strDPEsource, strDPsource ); + + if (bDebug)DebugN( "Copy " + strDPEsource + " -> " + strDPEtarget ); + dpCopyConfig( strDPEsource, strDPEtarget, dsConfigs, iError); + } +}