V 10
1
LANG:1 4 HVLV
PANEL,394 206 962 663 N {204,204,204} 0
"main()
{

//Starting up info:
dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - Starting up...\");
delay(1,0);

//Checking cooling and environmental project
//EP_childPanelOn();

//Starting the status script
dpSet(\"Alert.Stat:_original.._value\", 1);
dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - Starting alert script\");

//Starting the status script - Abdel is setting the status
//dpSet(\"SetStatus.Stat:_original.._value\", 1);
//dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - Starting startup script\");

//Finished startup
delay(1,0);
dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - ready\");



//     Read();
//   dpConnect(\"setOpening\",\"setOpening.trigger:_online.._value\");
//   dpSet(\"Crate00.DDC.DCS_STATES:_original.._value\",0);
 //  Load();
//   dpSet(\"Crate00.DDC.DCS_STATES:_original.._value\",1);
 //  Configure();
//   dpSet(\"Crate00.DDC.DCS_STATES:_original.._value\",2);
//   Monitor();
//   dpSet(\"Crate00.DDC.DCS_STATES:_original.._value\",3);
   
//   Configure();
//   DebugN(\"configure\");

//   Monitor();
//   DebugN(\"monitor\");
   

}


//-----------------------------------------------------------
// Load initialisation values == XXX  into the ELMB
//-----------------------------------------------------------

EP_childPanelOn()
{
  ChildPanelOnParent(\"subpanels/CoolingSU.pnl\",
      \"sector\",

      makeDynString(\"\"));
}



/////////////////////////////////////////////////////////////////////////////////////
void LoadX() {

dyn_errClass err;
int i,j, crateMax;
int k,l,m,n,icard, crate;
dyn_string valset, valset2, valset3; 
string datapoint1, datapoint2, datapoint3;
//int value;
float value;

dpSet(\"Info.Name:_original.._value\", \"- Loading inital values...\");

crateMax=2;
//value == \"XXX\";

//value== -999;
value = -999;

//dpSet(\"Crate00.Controller.CCchRead.Send:_original.._value\", channel);

//Setting startup values to the receive buttons
//-----------------------------------------------------------------

valset=makeDynString(\"HVchVolt\",\"HVchCurr\");
// HV card taken out HVcaMask ( by the way mask is only read) ttok out also from LV
valset2=makeDynString(\"LVcaTemp\",\"LVcaPowr\",
                      \"LVch_Vcc\",\"LVch_Vdd\",\"LVchVCSV\",\"LVchPINV\", 
                      \"LVch_Icc\", \"LVch_Idd\", \"MOch_Tm1\", \"MOch_Tm0\", 
                      \"LVps_Vcc\", \"LVps_Vdd\", \"LVchPINI\", \"LVchVCSI\",
                       \"LVretVcc\", \"LVretVdd\");

for (k=0; k<=1; k++) 
  {
  DebugN(\"started loop\");

      for(j=1; j<=2; j++)
        {
        for(i=0; i<=47; i++)
           {
           sprintf(datapoint1,\"Crate%02d.Channel%02d.%s.Recv:_original.._value\",k,i,valset[j]);
           dpSetWait(datapoint1, value);
//           DebugN(\"datapoint1\", datapoint1,valset[j],\"value= \",value);
           }
        }
 
        for(j=1; j<=16; j++)
        {
	    if(j<=2)
	      {

	      for(i=0; i<=11; i++)
             {
              sprintf(datapoint2,\"Crate%02d.LV_card%02d.%s.Recv:_original.._value\", k,i,valset2[j]);
              dpSetWait(datapoint2, value);
              //DebugN(\"TTrip\", initValue2[1],\"LVMask\",initValue2[2]);
             }

 	       }
   	    else
 	       {
 	      
           for(i=0; i<=47; i++)
              {
              sprintf(datapoint2,\"Crate%02d.Channel%02d.%s.Recv:_original.._value\",k,i,valset2[j] );
              dpSetWait(datapoint2, value);
//              DebugN(\"LV channel\", datapoint2,valset2[j],\"value= \",value);
              }
           }
         }
  } 
  err = getLastError();
  if (dynlen(err) > 0)
    errorDialog(err);       



}






//Read all monitored values from ELMB

void Read()
{
dyn_errClass err;
int lv, icard, channel, i;

dpGet(\"HVch.Numb:_original.._value\", lv); 
icard=lv/4;

for (i=icard*4;i<=icard*4+47;i++){
DebugN(\"WE CALLED IT\");
//DebugN(\"lv\", lv ,\"icard\", icard,\"i\", i);
channel=i;
dpSet(\"Crate00.Controller.CCchRead.Send:_original.._value\", channel);
channel=i+100;
delay(0,10);
dpSet(\"Crate00.Controller.CCchRead.Send:_original.._value\", channel);
delay(0,10);
//DebugN(\"i\", i,\"channel\", channel); 
 
  err = getLastError();
  if (dynlen(err) > 0)
    errorDialog(err);
 }
}

//

void setOpening(string dpeTrigger, bool state)
{
string paramStr;
dyn_string param;
//string dp_path;
float value;
int i;
bool bit;
string port;
int response;

/*
if(state)
{
  response=0;
  dpGet(\"setOpening.trigger:_online.._value\", paramStr);
  param=strsplit(paramStr,\"|\");

  //sscanf(param[1],\"%s\",dp_path);
  sscanf(param[1],\"%f\",value);

  //Limi01.FatL
  response=dpSetWait(\"Crate00.DDC.DCS_STATES:_original.._value\",value);
      if(response!=0)
         response=0-response;

   dpSet(\"setOpening.response:_original.._value\",response,
         \"setOpening.trigger:_original.._value\",!state);
 }
*/
}

//-----------------------------------------------------------
// Load initialisation values into the ELMB
//-----------------------------------------------------------

Load()
{
dyn_errClass err;
int i,j,k,l,m,n,icard;
dyn_string valset, valset2, valset3; 
string datapoint1, datapoint2, datapoint3;
dyn_float initValue, initValue2, initValue3;


// Set Channel number to zero
//-----------------------------------------------------------
dpSetWait(\"HVch.Numb:_original.._value\", 0);


// Starting the ELMB
//-----------------------------------------------------------
//dpSetWait(\"Crate00.Elmb_0.NMT:_original.._value\", 1); 
//DebugN(\"ELMB\");

//Setting configuration of the HV Channels and Cards to the ELMB
//------------------------------------------------------------------ 
valset=makeDynString(\"HVcaMask\",\"HVchVolt\",\"HVchITrp\",\"HVchRamp\");
initValue= makeDynFloat(0,100,1000,3);

for(j=1; j<=4; j++)
    {
	if(j==1)
	  {
	  for(i=0; i<=5; i++)
         {
         sprintf(datapoint1, \"Crate00.HV_card%02d.%s.Send:_original.._value\",i,valset[j]);
         dpSetWait(datapoint1, initValue[j]);
         }
 	  }
 	  else
 	  {
       for(i=0; i<=47; i++)
         {
        sprintf(datapoint1, \"Crate00.Channel%02d.%s.Send:_original.._value\",i,valset[j] );
        dpSetWait(datapoint1, initValue[j]);
         }
        }
       }

//Setting configuration of the LV Cards and channels to the ELMB 
//-----------------------------------------------------------------

valset2=makeDynString(\"LVcaTrip\",\"LVcaMask\",\"LVch_Vcc\",\"LVch_Vdd\",\"LVchVCSV\",\"LVchPINV\", \"LVchDTrp\", \"LVchCTrp\", \"LVchTLim\", \"LVchTTrp\", \"LVchCLKS\", \"LVchCLKR\", \"LVchVOut\");
initValue2=makeDynFloat(46*2.5,0,3.5*50,4*50,4*25,6*20,50/2,50/2,128,148,0,0,1);

for(j=1; j<=13; j++)
    {
	if(j<=2)
	  {
	  for(i=0; i<=11; i++)
         {
         sprintf(datapoint2, \"Crate00.LV_card%02d.%s.Send:_original.._value\",i,valset2[j]);
         dpSetWait(datapoint2, initValue2[j]);
//	     DebugN(\"TTrip\", initValue2[1],\"LVMask\",initValue2[2]);
         }
 	  }
 	  else
 	  {
       for(i=0; i<=47; i++)
         {
        sprintf(datapoint2, \"Crate00.Channel%02d.%s.Send:_original.._value\",i,valset2[j] );
        dpSetWait(datapoint2, initValue2[j]);
         }
        }
       }
  err = getLastError();
  if (dynlen(err) > 0)
    errorDialog(err);       
}

//-----------------------------------------------------------
// Transmitting the right values from the ELMB to the Cards
//-----------------------------------------------------------

Configure() {
DebugN(\"Configure\");  
     dpSetWait(\"Crate00.Controller.CCch_Set.Send:_original.._value\", 255); 
  }


//-----------------------------------------------------------
// Starting monitoring state
//-----------------------------------------------------------

Monitor() {
  DebugN(\"Monitor\");
  }
" 0
"main()
{
dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - Shutting down...\");

//Set DDC commands to 0
DDCreset();

//delay(1,0);
dpSet(\"Info.Name:_original.._value\", \"- MPS_DP - Off\");
}

DDCreset() {

dpSet(\"changeState.trigger:_original.._value\", 0);
dpSet(\"loadConfiguration.trigger:_original.._value\", 0);
dpSet(\"requestIVCurve.trigger:_original.._value\", 0);
dpSet(\"HardReset.trigger:_original.._value\", 0);
dpSet(\"ChangeClock.trigger:_original.._value\", 0);
dpSet(\"ToggleState.trigger:_original.._value\", 0);
}
" 0
E E E 1 -1 -1 0  0 10
"" 0 1
EE 2
"CBRef""1"
"EClose"E
""
DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
LAYER, 0 
1
LANG:1 6 Layer1
2 111
"Text6"
""
1 30 580 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
 E E
105 0 0 0 0 0
EE E
0
1
LANG:1 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  1 E 32 582 218 618
1 2 0 "s" 0 0 0 64 0 0  32 582
 1
1
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
1
LANG:1 11 Comments...
2 114
"Text1"
""
1 30 613 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
 E E
108 0 0 0 0 0
EE E
0
1
LANG:1 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  1 E 32 615 228 630
1 2 0 "s" 0 0 0 64 0 0  32 615
 1
1
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
1
LANG:1 7 drdtdtr
2 119
"Text2"
""
1 50 500 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
 E E
109 0 0 0 0 0
EE E
0
1
LANG:1 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  1 E 52 502 51 517
1 2 0 "s" 0 0 0 64 0 0  52 502
 1
1
LANG:1 119 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,3,2,1,49,Courier New
0 ""
1
LANG:1 5 Text2
28 69
"Tab2"
""
1 104 368 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
65 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
14 218 242 592
E5
"Global CMD" 1
LANG:1 10 Global CMD
1 "subpanels\\Global.pnl" 1
LANG:1 0 
0
"Local CMD" 1
LANG:1 9 Local CMD
1 "subpanels\\Local.pnl" 1
LANG:1 0 
0
"RST" 1
LANG:1 5 Tests
1 "subpanels\\LTT.pnl" 1
LANG:1 0 
0
"Groups" 1
LANG:1 6 Groups
1 "subpanels\\Groups.pnl" 1
LANG:1 0 
0
"AllCrates" 1
LANG:1 9 AllCrates
1 "subpanels\\Allglobal.pnl" 1
LANG:1 0 
0
28 46
"Tab1"
""
1 319 904 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
43 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
248 8 942 592
E8
"Values" 1
LANG:1 6 Values
1 "subpanels\\Values.pnl" 1
LANG:1 0 
0
"Global Monitoring" 1
LANG:1 17 Global Monitoring
1 "subpanels\\Glmon.pnl" 1
LANG:1 0 
0
"IVcurve" 1
LANG:1 7 IVcurve
1 "OurOneIVCurve.pnl" 1
LANG:1 0 
0
"BusInfo" 1
LANG:1 7 BusInfo
1 "subpanels\\ELMB.pnl" 1
LANG:1 0 
0
"States" 1
LANG:1 6 States
1 "PS_Summary\\PS_Summary.pnl" 1
LANG:1 0 
0
"SectorT" 1
LANG:1 7 SectorT
1 "subpanels\\SectorTemperatureSmall.pnl" 1
LANG:1 0 
0
"DP creation" 1
LANG:1 11 DP creation
1 "file.pnl" 1
LANG:1 0 
0
"CrateView" 1
LANG:1 9 CrateView
1 "subpanels\\CrateView.pnl" 1
LANG:1 0 
0
13 77
"Button1"
""
1 870 600 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
73 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
868 598 942 632
T 
1
LANG:1 6 ERRORS
"main()
{
  EP_childPanelOn();
}

EP_childPanelOn()
{
  ChildPanelOnCentral(\"vision/SC/AlertScreen\",
      \"\",
     makeDynString(\"\"));
}

// SimpleCtrlScript {EP_childPanelOn}
// Function {ChildPanelOnParentModal}
// File {vision/SC/AlertScreen}
// Panel {}
// Parent {subpanels/_SCT_MoPS_Read_Archive.pnl}
// Module {}
// OffsetX {0}
// OffsetY {0}
// SimpleCtrlScriptEnd {EP_childPanelOn
// SimpleCtrlScriptStart {invalid}" 0
 E E E
25 116
"Table1"
""
1 -44 572 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
 E E
109 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 118 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,0,0,0,0,Courier New
0 ""
18 598 662 630
"main()
{
  EP_textFieldIn();
  EP_setInvalid();
}


EP_textFieldIn()
{
dyn_errClass err;
int crate;

  if( dpSubStr( \"Info.Name:_online.._value\", DPSUB_DP_EL ) == \"\" )
  {
    setValue(\"\", \"color\", \"_dpdoesnotexist\");
    return;
  }
  
dpGet(\"Crate.Numb:_online.._value\", crate);
  dpConnect(\"EP_textFieldInCB\",
            \"Info.Name:_online.._value\", 
            \"Crate00.AlrmMesg.Message:_original.._value\");
  dpConnect(\"EP_textFieldInCB2\",          
            \"Crate00.Controller.CCchStat.Recv:_original.._value\");

  err = getLastError();
  if (dynlen(err) > 0)
    setValue(\"\", \"color\", \"_dpdoesnotexist\");

}


EP_textFieldInCB(string dp, string sInfo )
{
  int row,col;
  time t;
  string tim;
  getValue(\"\", \"currentCell\", row, col);
    t=getCurrentTime();
	  tim=formatTime(\"%H:%M:%S\", t);
	setValue(\"\", \"appendLine\", \"#1\", tim, \"#2\", sInfo);
}


EP_textFieldInCB2(string dp, int sInfo )
{
  int row,col, crate;
  time t;
  string tim, text, DPvalue;
  int error, val, number;
  float value;
  string hex;
    
 dpGet(\"Crate.Numb:_original.._value\", crate);

  sprintf(DPvalue,\"Crate%02d.Controller.CCchStat.Recv:_online.._value\",crate);
  dpGet(DPvalue,value);
  
  
  //transform status value
  val = value;
  number = (0x000000ff & val);
  //Debug(number);
  error  = (0x0000ff00 &val)>>8;
  sprintf(hex,\"0x%02x\", error);
 
   if (number>128) {
     number = number - 128;
     text = \"ERROR: CC error, HV channel:\"+number+\", code: \"+hex;
     }
  else {
     text = \"ERROR: CC error, LV channel:\"+number+\", code: \"+hex;
     }

  getValue(\"\", \"currentCell\", row, col);
    t=getCurrentTime();
	  tim=formatTime(\"%H:%M:%S\", t);
	setValue(\"\", \"appendLine\", \"#1\", tim, \"#2\", text);
	

  
  //(value & 0x001) >> 0)
  //sprintf(xTmp,\"%x\", value);
 // setValue(\"\", \"text\", number);	
	
}

/*EP_textFieldInCB(string dp, string sNewValue)
{
  setValue(\"\", \"text\", dpValToString(dp, sNewValue, TRUE) );
}*/


EP_setInvalid()
{
dyn_errClass err;

  if( dpSubStr( \"Info.Name:_online.._invalid\", DPSUB_DP_EL ) == \"\" )
  {
    setValue(\"\", \"color\", \"_dpdoesnotexist\");
    return;
  }

  dpConnect(\"EP_setInvalidCB\",
            \"Info.Name:_online.._invalid\");
  err = getLastError();
  if (dynlen(err) > 0)
    setValue(\"\", \"color\", \"_dpdoesnotexist\");

}

EP_setInvalidCB(string dp, bool boInvalid)
{
  setValue(\"\", \"color\", (boInvalid ? \"_invalid\" : \"\"));
}

" 0
 E 0 0 1 2 1 "#1" 0 1 0 "s" 1
LANG:1 2 #1
E1
LANG:1 0 
 80 "#2" 0 1 0 "s" 1
LANG:1 2 #2
E1
LANG:1 0 
 1000 25 25 "" 1 1
LANG:1 2 #1
8 100 1
LANG:1 118 -microsoft windows-Courier New-normal-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,400,0,0,0,0,0,0,0,0,Courier New
0 ""
0 1 0 0 0
1 0
13 117
"Button2"
""
1 790 600 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
109 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
788 598 862 632
T 
1
LANG:1 7 Archive
"main()
{
  EP_childPanelOn();
}

EP_childPanelOn()
{
  ChildPanelOnCentral(\"archive/_SCT_MoPS_Read_Archive_tab.pnl\",
      \"choice\",
     makeDynString(\"\"));
}

// SimpleCtrlScript {EP_childPanelOn}
// Function {ChildPanelOnParentModal}
// File {vision/SC/AlertScreen}
// Panel {}
// Parent {subpanels/_SCT_MoPS_Read_Archive.pnl}
// Module {}
// OffsetX {0}
// OffsetY {0}
// SimpleCtrlScriptEnd {EP_childPanelOn
// SimpleCtrlScriptStart {invalid}" 0
 E E E
28 92
"Tab3"
""
1 339 38 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
87 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
14 28 243 214
E7
"Select" 1
LANG:1 6 Select
1 "subpanels\\Select.pnl" 1
LANG:1 0 
0
"File" 1
LANG:1 6 STtest
1 "subpanels\\TestRST.pnl" 1
LANG:1 0 
0
"Cooling" 1
LANG:1 7 Cooling
1 "subpanels\\Cooling.pnl" 1
LANG:1 0 
0
"IVTest" 1
LANG:1 6 IVtest
1 "subpanels\\TestIV.pnl" 1
LANG:1 0 
0
"LoadDB" 1
LANG:1 6 LoadDB
1 "subpanels\\LoadDB.pnl" 1
LANG:1 0 
0
"HR" 1
LANG:1 9 HardReset
1 "subpanels\\TestHR.pnl" 1
LANG:1 0 
0
"Environmental" 1
LANG:1 13 Environmental
1 "subpanels\\Environmental.pnl" 1
LANG:1 0 
0
13 121
"Button4"
""
1 667 600 E E E 1 E 1 E N "_3DText" E N "_3DFace" E E
 E E
109 0 0 0 0 0
EE E
0
1
LANG:1 0 
0
1
LANG:1 105 -microsoft windows-Arial-bold-r-normal-*-*-110-100-100-*-*-iso8859-1|-12,0,0,0,700,0,0,0,0,3,2,1,34,Arial
0 ""
665 598 705 632
T 
1
LANG:1 4 More
"//Function Button3_EventClick()
// SimpleCtrlScriptStart {invalid}


main()
{
  EP_childPanelOn();
}

EP_childPanelOn()
{
  ChildPanelOnCentral(\"subpanels/ErrorPnl.pnl\",
      \"\",
     makeDynString(\"\"));
}

// Function {ChildPanelOnParentModal}
// File {subpanels/ErrorPnl.pnl}
// Panel {}
// Parent {_SCT_MoPS_Diagn.pnl}
// Module {}
// OffsetX {0}
// OffsetY {0}
// SimpleCtrlScriptEnd {EP_childPanelOn
// SimpleCtrlScriptStart {invalid}
//Function Button3_EventClick()" 0
 E E E
0
LAYER, 1 
1
LANG:1 6 Layer2
0
LAYER, 2 
1
LANG:1 6 Layer3
0
LAYER, 3 
1
LANG:1 6 Layer4
0
LAYER, 4 
1
LANG:1 6 Layer5
0
LAYER, 5 
1
LANG:1 6 Layer6
0
LAYER, 6 
1
LANG:1 6 Layer7
0
LAYER, 7 
1
LANG:1 6 Layer8
6 86
"infoBoard"
""
1 0 447 E E E 1 E 1 E N {0,0,0} E N {51,102,153} E E
 E E
82 0 0 0 0 0
EE E
0
1
LANG:1 21 Vers.01.1, 23-06-2003
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  1 E 0 0 950 650
2 91
"Text5"
""
1 14 3 E E E 1 E 1 E N {0,255,255} E N {51,102,153} E E
 E E
87 0 0 0 0 0
EE E
0
1
LANG:1 0 
1
"dashclr"N "_Transparent"
E E 0 1 1 0 1 E U  1 E 16 5 250 31
0 2 0 "s" 0 0 0 64 0 0  16 5
 1
1
LANG:1 119 -microsoft windows-Courier New-bold-i-normal-*-*-160-100-100-*-*-iso8859-1|-19,0,0,0,700,255,0,0,0,3,2,1,49,Courier New
0 ""
1
LANG:1 21 DIAGNOSTICS PANEL 3.0
0
0