Changeset 230 in PSPA for Interface_Web/trunk


Ignore:
Timestamp:
Jan 3, 2013, 6:35:36 PM (11 years ago)
Author:
lemeur
Message:

fin implementation fit

Location:
Interface_Web/trunk/pspaWT
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/include/dataManager.h

    r227 r230  
    99#include "sectionToExecute.h"
    1010#include "nomDeLogiciel.h"
    11 
     11#include "trivaluedBool.h"
    1212class dataManager
    1313{
     
    4949  string getLabelFromElementNumero(int numero);
    5050  void initializeExecution(string workingDir);
    51   string checkExecute();
    52   bool executeTransport( unsigned int indexDeb, unsigned int indexFin, string workingDir,  string& resul);
    53   bool executeParmela( unsigned int indexDeb, unsigned int indexFin, string workingDir, string& resul);
     51  trivaluedBool checkExecute(string& diagnostic);
     52  bool executeTransport( unsigned int numeroDeb, unsigned int numeroFin, string workingDir,  string& resul);
     53  bool executeParmela( unsigned int numeroDeb, unsigned int numeroFin, string workingDir, string& resul);
    5454  bool executeAll(string workingDir, string& resul);
    5555  void saveConfiguration(string workingDir, string nameOfFile);
  • Interface_Web/trunk/pspaWT/include/elementsCollection.h

    r226 r230  
    2424  abstractElement* addElement(typedElement elemType);
    2525  abstractElement* getElementPointer(string label) const;
    26   abstractElement* getElementPointer(unsigned int index) const;
     26  abstractElement* getElementPointerFromIndex(unsigned int index) const;
    2727  abstractElement* getElementPointerFromNumero(int num) const;
    2828
  • Interface_Web/trunk/pspaWT/src/GWt_LigneFaisceau.cc

    r229 r230  
    6363  for(k = 0; k < (unsigned)nbElem; k++)
    6464    {     
    65       abstractElement* ptr = pspa_->getDataManager()->getCollection()->getElementPointer(k);
     65      abstractElement* ptr = pspa_->getDataManager()->getCollection()->getElementPointerFromIndex(k);
    6666      GWt_abstractElement* gw = GWt_abstractElement::ajoute(ptr);
    6767      if(gw == NULL) {
  • Interface_Web/trunk/pspaWT/src/GWt_pspaApplication.cc

    r229 r230  
    1515#include "environmentVariables.h"
    1616#include "GWt_tools.h"
     17#include "trivaluedBool.h"
    1718
    1819#include <Wt/WLineEdit>
     
    420421    }
    421422
    422   string diagnostic = dtmanage_->checkExecute();
    423   if ( !diagnostic.empty() )
    424     {   
    425       caMarche = false;
    426       //     GWt_tools::addConsoleMessage(diagnostic.c_str());
    427       GWt_dialog calculDialog("PSPA : Erreur lors de check execute", diagnostic , GWt_dialog::Error,true,true);
    428       calculDialog.exec();
    429     }
     423  string diagnostic;
     424  trivaluedBool essai = dtmanage_->checkExecute(diagnostic);
     425  cout << " retour verif , essai = " << essai << endl;
     426  if ( essai == error ) {
     427    cout << " appli : erreur " << endl;
     428    caMarche = false;   
     429    GWt_dialog calculDialog("PSPA check execute : ERROR", diagnostic , GWt_dialog::Error,true,true);
     430    calculDialog.exec();
     431  } else if ( essai == warning )  {
     432    cout << " appli : warnig " << endl;
     433    caMarche = true;   
     434    GWt_dialog calculDialog("PSPA check execute : warning ", diagnostic , GWt_dialog::Warning, false,true);
     435    calculDialog.exec();
     436  }
    430437
    431438  return caMarche;
     
    904911//   chart->setPlotAreaPadding(40, Top | Bottom);
    905912  // Add the curves
    906   WDataSeries s(1, CurveSeries, Y1Axis);
     913  WDataSeries s(1, LineSeries, Y1Axis);
    907914  chart->addSeries(s);
    908915
  • Interface_Web/trunk/pspaWT/src/dataManager.cc

    r227 r230  
    3737}
    3838
    39 string dataManager::checkExecute()
     39trivaluedBool dataManager::checkExecute(string& diagnostic)
    4040{
    4141  cout << "dataManager::checkExecute()" << endl;
    42  
     42  trivaluedBool resul = ok;
    4343  unsigned k,j;
    44   string diagnostic;
     44  diagnostic.clear();
    4545  unsigned indexDeb, indexFin;
    4646  cout << "controle execution : " << endl;
     
    5050    if ( indexFin  <= indexDeb )
    5151      {
    52         diagnostic += " first ans last elements are the same \n";
    53         break;
     52        diagnostic += " first and last elements are the same \n";
     53        resul = error;
     54        break;
    5455      }
    5556    cout << " indexDeb= " << indexDeb << " indexFin= " << indexFin << endl;
     
    5758    indexFin--;
    5859    abstractElement* elPtr;
    59     if(jobList_[k]->software == nomDeLogiciel::parmela )
    60       {
    61         for(j = indexDeb; j <= indexFin; j++) {
    62           elPtr = elementsGallery_.getElementPointer(j);
    63 
    64           cout << "elPtr parmela: " << elPtr->getLabel() << endl;
    65 
    66           if(!elPtr->is_parmela_element()) {
     60    if(jobList_[k]->software == nomDeLogiciel::parmela ) {
     61      for(j = indexDeb; j <= indexFin; j++) {
     62        elPtr = elementsGallery_.getElementPointerFromIndex(j);
     63
     64        cout << "elPtr parmela: " << elPtr->getLabel() << endl;
     65
     66        if(!elPtr->is_parmela_element()) {
     67          cout << " el non parmela : " << elPtr->getLabel()  << " ignored ? " << elPtr->is_parmela_ignored() << endl;
     68          if ( elPtr->is_parmela_ignored() ) {
     69            cout << " element ignore " << elPtr->getLabel() << endl;
     70            diagnostic += " the element " + elPtr->getNomdElement().getElementName() + " is ignored by PARMELA \n";
     71            resul = warning;
     72          } else {
    6773            diagnostic += " the element " + elPtr->getNomdElement().getElementName() + " is not allowed for PARMELA \n";
     74            resul =error;
    6875          }
    6976        }           
    7077      }
    71     else if (jobList_[k]->software == nomDeLogiciel::transport)
    72       {
    73         for(j = indexDeb; j <= indexFin; j++) {
    74           elPtr = elementsGallery_.getElementPointer(j);
    75 
    76           cout << "elPtr transp: " << elPtr->getLabel() << endl;
    77 
    78           if (!elPtr->is_transport_element()) {
    79             diagnostic += " the element " + elPtr->getNomdElement().getElementName() + " is not allowed for TRANSPORT \n";
    80           }
    81         }           
    82       }
     78    }
     79    else if (jobList_[k]->software == nomDeLogiciel::transport) {
     80      for(j = indexDeb; j <= indexFin; j++) {
     81        elPtr = elementsGallery_.getElementPointerFromIndex(j);
     82
     83        cout << "elPtr transp: " << elPtr->getLabel() << endl;
     84
     85        if (!elPtr->is_transport_element()) {
     86          diagnostic += " the element " + elPtr->getNomdElement().getElementName() + " is not allowed for TRANSPORT \n";
     87          resul = error;
     88        }
     89      }     
     90    }
    8391    else
    8492      {
    85         diagnostic += (jobList_[k]->software).getString() + " : unknown software \n "; 
    86       }
    87   }
    88  
    89   return diagnostic;
    90 }
    91 
    92 bool dataManager::executeTransport( unsigned int indexDeb, unsigned int indexFin, string workingDir, string& resul)
     93        diagnostic += (jobList_[k]->software).getString() + " : unknown software \n ";
     94        resul = error;
     95      }
     96  }
     97  cout << " data manager renvoie resul = " << resul << endl;
     98  return resul;
     99}
     100
     101bool dataManager::executeTransport( unsigned int numeroDeb, unsigned int numeroFin, string workingDir, string& resul)
    93102{
    94103  ostringstream sortie;
    95104  resul.clear();
    96   sortie << " EXECUTION DE TRANSPORT DE " << indexDeb << " a " << indexFin << endl;
    97   if ( !createInputFileTransport( indexDeb, indexFin, workingDir) )
     105  sortie << " EXECUTION DE TRANSPORT DE " << numeroDeb << " a " << numeroFin << endl;
     106  if ( !createInputFileTransport( numeroDeb, numeroFin, workingDir) )
    98107    {
    99108      sortie << " error creating transport input file "  << endl;
     
    143152
    144153        unsigned k;
    145         for ( k= indexDeb; k <= indexFin; k++)
     154        for ( k= numeroDeb; k <= numeroFin; k++)
    146155          {
    147156            diagnosticBeam_.push_back(particleBeam());
     
    164173}
    165174
    166 bool  dataManager::executeParmela(unsigned int indexDeb,unsigned int indexFin,string workingDir,string& resul)
     175bool  dataManager::executeParmela(unsigned int numeroDeb,unsigned int numeroFin,string workingDir,string& resul)
    167176{
    168177  ostringstream sortie;
    169178  bool ExecuteStatus = true;
    170179  resul.clear();
    171   if ( !createInputFileParmela(indexDeb,indexFin, workingDir) )
     180  if ( !createInputFileParmela(numeroDeb,numeroFin, workingDir) )
    172181    {
    173182      sortie << " error creating parmela input file "  << endl;
     
    176185    }
    177186
    178   sortie << " EXECUTION DE PARMELA DE l'ELEMENT " << indexDeb << " A L'ELEMENT " << indexFin << endl;
     187  sortie << " EXECUTION DE PARMELA DE l'ELEMENT " << numeroDeb << " A L'ELEMENT " << numeroFin << endl;
    179188
    180189  char buf[132];
     
    204213      {
    205214        unsigned k;
    206         for ( k= indexDeb; k <= indexFin; k++)
     215        for ( k= numeroDeb; k <= numeroFin; k++)
    207216          {
    208217            diagnosticBeam_.push_back(particleBeam());
    209218            if (! diagnosticBeam_.back().setFromParmela(workingDir, k, globParam_.getFrequency()) )
    210219              {
    211                 sortie << " reading parmdesz  failed " << endl;
    212                 ExecuteStatus = false;
    213                 break;
     220                abstractElement* elem = elementsGallery_.getElementPointerFromNumero(k);
     221                if ( elem->is_parmela_ignored() ) {
     222                  int avantDernier = diagnosticBeam_.size() -2;
     223                  diagnosticBeam_.back() = diagnosticBeam_.at(avantDernier);
     224                } else {
     225                  sortie << " reading parmdesz  failed " << endl;
     226                  ExecuteStatus = false;
     227                  break;
     228                }
    214229              }
    215230          }
     231
    216232        if ( ExecuteStatus ) currentBeam_ = &diagnosticBeam_.back();
    217233        else currentBeam_ = NULL;
     
    236252
    237253  abstractElement* premierEl = NULL;
    238   premierEl = elementsGallery_.getElementPointer(indexDeb);
     254  premierEl = elementsGallery_.getElementPointerFromIndex(indexDeb);
    239255
    240256  // ceinture et bretelles
     
    298314  for ( k=indexDeb; k <= indexFin; k++)
    299315    {
    300       elPtr = elementsGallery_.getElementPointer(k);
     316      elPtr = elementsGallery_.getElementPointerFromIndex(k);
    301317      outfile << elPtr->transportOutputFlow() << endl;
    302318    }
     
    332348  abstractElement* elPtr;
    333349  double initalKineticEnergy = 0.0;
    334   elPtr = elementsGallery_.getElementPointer(indexDeb);
     350  elPtr = elementsGallery_.getElementPointerFromIndex(indexDeb);
    335351  if ( elPtr->getNomdElement().getElementType() != RFgun ) {
    336352    cerr << " dataManager::createInputFileParmela : the first element should be rfgun" << endl;
     
    350366  for ( k = indexDeb; k <= indexFin; k++)
    351367    {
    352       elPtr = elementsGallery_.getElementPointer(k);
     368      elPtr = elementsGallery_.getElementPointerFromIndex(k);
    353369      outfile << elPtr->parmelaOutputFlow() << endl;
    354370    }
     
    424440  for ( k=0 ; k < elementsGallery_.size() ; k++)
    425441    {
    426       elPtr = elementsGallery_.getElementPointer(k);
     442      elPtr = elementsGallery_.getElementPointerFromIndex(k);
    427443      outfile << elPtr->FileOutputFlow();
    428444    }
     
    477493  unsigned k;
    478494  for(k = 0; k <  elementsGallery_.size(); k++) {
    479     abstractElement* ptr= elementsGallery_.getElementPointer(k);
     495    abstractElement* ptr= elementsGallery_.getElementPointerFromIndex(k);
    480496    cout << "reupere " << ptr->getLabel() << endl;
    481497  }
     
    516532        {
    517533          if ( !diagnosticBeam_.at(k).momentRepresentationOk() ) diagnosticBeam_.at(k).buildMomentRepresentation();
    518           longueur += elementsGallery_.getElementPointer(k)->getLenghtOfElement();
     534          longueur += elementsGallery_.getElementPointerFromIndex(k)->getLenghtOfElement();
    519535          valeur = diagnosticBeam_.at(k).getXmaxRms();
    520536          xcor.push_back(longueur);
  • Interface_Web/trunk/pspaWT/src/elementFit.cc

    r225 r230  
    1010  parametersString_ = new string[nbParam_+1];
    1111  transportOk_ = true;
     12  parmelaIgnored_ = true;
    1213}
    1314
     
    7374    ostringstream sortie;
    7475    sortie << label_ << ":" << "  FIT," << variableName_ << " = " << variableValue_ << ", TOLER = " << tolerance_ << " ;" << endl;
     76    if ( variableName_ == "R11" || variableName_ == "R22" || variableName_ == "R12" || variableName_ == "R21" ) {
     77      sortie << " PRINT, TRANS;" << endl;
     78    }
    7579    return sortie.str();
    7680  }
  • Interface_Web/trunk/pspaWT/src/elementsCollection.cc

    r226 r230  
    9494}
    9595
    96 abstractElement* elementsCollection::getElementPointer(unsigned int index) const
     96abstractElement* elementsCollection::getElementPointerFromIndex(unsigned int index) const
    9797{
    9898  if ( index >= elements_.size() ) return NULL;
Note: See TracChangeset for help on using the changeset viewer.