// Object properties
#define OBJECTNAME "Discharge Configurator"
/*
modified by Rafael Henriques - rhenriques@ipfn.ist.utl.pt
date: 2016-04-11
changes: add the hibd option for plasma position measurement
*/
/*
#define VERSION "1.00"
#define LASTDATE "2011-03-24"
#define AUTHOR "Ivo Carvalho - ivoc@ipfn.ist.utl.pt"
#define DESCRIPTION "HTML page to change and upload the configuration file parameters"
*/
#define HEADERIMAGELINK "http://www.ipfn.ist.utl.pt/ipfnPortalLayout/themes/ipfn/_img_/logoIPFN_Topo_officialColours.png"
#define FOOTERIMAGELINK "http://backoffice.ipfn.ist.utl.pt/mgallery/default.asp?obj=1"
#include "MainConfigurator.h"
#include "MessageEnvelope.h"
#include "Message.h"
OBJECTLOADREGISTER(MainConfigurator,"$Id: MainConfigurator.cpp,v 1.0 2009/05/22 10:40:56 ivoc Exp $")
/** initialise an object from a set of configs */
bool MainConfigurator::ObjectLoadSetup(ConfigurationDataBase & info, StreamInterface * err){
Ip_max_threshold_value = 10000;
max_value =1000;
timewindows_dropdown_vector = new int[42];
int i;
timewindows_time = new float[14];
timewindows_bool_vector = new bool[14];
delete_selected_points_bool = False;
vector_dim_temp = 0;
already_started = False;
this->graphics_support = new SVGGraphicSupport();
save_filename.Printf("last.cfg");
for(i=0;i<42;i++) timewindows_dropdown_vector[i]=0;
GCReferenceContainer::ObjectLoadSetup(info,err);
CDBExtended &cdbx = (CDBExtended &)info;
cdbx.ReadFString(configFileID, "configFileID", "cfgFile");
if(!cdbx.ReadFString(Description, "Description"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read Description",this->Name());
return False;
}
// Move to the graphics branch
if(!cdbx->Move("graphics"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not move to \"graphics\"",this->Name());
return False;
}
if(!cdbx.ReadInt32(screen_resolution_x, "screen_resolution_x"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read graph_width",this->Name());
return False;
}
if(!cdbx.ReadInt32(screen_resolution_y, "screen_resolution_y"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read graph_height",this->Name());
return False;
}
// Move back to the GAM main branch
cdbx->MoveToFather();
// CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %d %d",screen_resolution_x,screen_resolution_y);
// Move to the file branch
if(!cdbx->Move("colours"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not move to \"colours\"",this->Name());
return False;
}
if(!cdbx.ReadFString(header_colour, "header_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read header_colour",this->Name());
return False;
}
if(!cdbx.ReadFString(diagnostics_parameters_colour, "diagnostics_parameters_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read diagnostics_parameters_colour",this->Name());
return False;
}
if(!cdbx.ReadFString(control_parameters_colour, "control_parameters_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read control_parameters_colour",this->Name());
return False;
}
if(!cdbx.ReadFString(time_windows_colour, "time_windows_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read time_windows_colour",this->Name());
return False;
}
if(!cdbx.ReadFString(edit_colour, "edit_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read edit_colour",this->Name());
return False;
}
if(!cdbx.ReadFString(footer_colour, "footer_colour"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read footer_colour",this->Name());
return False;
}
// Move back to the GAM main branch
cdbx->MoveToFather();
// CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s %s %s %s %s %s",header_colour.Buffer(),diagnostics_parameters_colour.Buffer(),control_parameters_colour.Buffer(),time_windows_colour.Buffer(),edit_colour.Buffer(),footer_colour.Buffer());
if(!cdbx->Move("default_directories"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not move to \"default_directories\"",this->Name());
return False;
}
if(!cdbx.ReadFString(default_config_file_path, "default_config_file_path"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read default_config_file_path",this->Name());
return False;
}
if(!cdbx.ReadFString(config_files_directory, "config_files_directory"))
{
CStaticAssertErrorCondition(InitialisationError,"MainConfigurator::ObjectLoadSetup: %s Could not read config_files_directory",this->Name());
return False;
}
// Move back to the GAM main branch
cdbx->MoveToFather();
graphic_select = 0;
selected_load_directory = "..";
selected_load_file = "last.cfg";
this->ReadConfigurationFile((char *)default_config_file_path.Buffer());
// this->WriteConfigurationFileWithChanges((char *)default_config_file_path.Buffer(), (char *) "/home/atcatest/Dropbox/code/atca/sandbox/testeparvo.cfg");
if(!cdbx.ReadFString(marteLocation, "MARTeLocation", "MARTe")){
AssertErrorCondition(Warning, "ObjectLoadSetup::MARTe location wasn not specified. Using default: %s", marteLocation.Buffer());
}
return HttpInterface::ObjectLoadSetup(info,err);
}
bool MainConfigurator::PrintHTTPForm(HtmlStream &hmStream){
// to view the limit, delete after complete
// hmStream.SSPrintf(HtmlTagStreamMode, "div style=\"position: absolute; top: 0px; left: 1200px;\"");
// hmStream.SSPrintf(HtmlTagStreamMode, "TEXTAREA NAME=\"form_description\" COLS=1 ROWS=\"1\" WRAP=\"SOFT\">Units used:Time in milisecondsDistance in milimetersCurrent in AmpereRadial position diagnostics:Vertical position diagnostics:Other calculations:Low IpHigh IpLow IpHigh IpFile Description:%suse interferometryfor radial controlPower supplies:Magnetic probes:Discharge Settings:Number of cycles:Discharge time:MARTe cycle (µs):start-up delay (µs):SoftMediumHardPrimaryHorizontalVerticalPIDPIDPIDAngleCalib.AngleCalib.AngleCalib.123456789101112%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%.2f%d%.1f ms%d µs%d µs%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1f%.1fPositive time-windows:Negative time-windows:T1 =T2 =T3 =T4 =T5 =T6 =T7 =T1 =T2 =T3 =T4 =T5 =T6 =T7 =PrimaryVerticalHorizontalPrimaryVerticalHorizontalFirst cycle:positivenegativepositivenegative------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2f------%.2foffoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlIp control-Soft PIDIp control-Soft PIDIp control-Med. PIDIp control-Med. PIDIp control-Hard PIDIp control-Hard PIDIp control-Auto PIDIp control-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*offoffcurrent controlcurrent controlposition-Soft PIDposition-Soft PIDposition-Med. PIDposition-Med. PIDposition-Hard PIDposition-Hard PIDposition-Auto PIDposition-Auto PIDIntegrated control*Integrated control*Invert*Invert*Select waveform: \