/* $Id: probeTestActualizeNmrpt 1634 2020-11-04 15:20:31Z miw $                           */
/* ********************************************************************* */

{
 int probeTestActualizeNmrpt(const char *curdat, char *cmd);
 AUERR=probeTestActualizeNmrpt(curdat, cmd);
 /* avoid compiler warnings */ { i1=0; i2=0; i3=0; d1=0.0; d2=0.0; d3=0.0; f1=0.f; f2=0.f; f3=0.f; sprintf(text, "%d, %d, %d, %.1f, %.1f, %.1f, %.1f, %.1f, %.1f", i1, i2, i3, d1, d2, d3, f1, f2, f3); }
}
QUIT

int getProbeIdRunNameAndTestMode(char *probeId,char *runName, unsigned int sizeofRunName, char *testMode, unsigned int sizeofTestMode); 

int probeTestActualizeNmrpt(const char *curdat, char *cmd)
{
 char probeId[64], runName[64], testMode[64], javaCallCmd[256]; 

 if (getProbeIdRunNameAndTestMode(probeId, runName, sizeof(runName), testMode, sizeof(testMode))<0)
    {
     Proc_err(INFO_OPT, "AU program aborted due to user request");
     ABORT;
    }

 sprintf(javaCallCmd, "nmrpt updaterun -runname=%s -testmode=%s -probeid=%s", runName, testMode, probeId);
 JAVACALL(javaCallCmd);
 Proc_err(INFO_OPT, "Inspection Lot %s for probe %s with test mode %s should be available in NMRPT now.", runName, probeId, testMode);

 return 0;
}

int getProbeIdRunNameAndTestMode(char *probeId,char *runName, unsigned int sizeofRunName, char *testMode, unsigned int sizeofTestMode)
{
#define DEF_chomp(string) \
{ \
 char *s_ptr; \
 for (s_ptr=string; *s_ptr; s_ptr++) \
    { \
     if (*s_ptr=='\r' || *s_ptr=='\n') \
        { *s_ptr='\0'; } \
   } \
}

 char fileList[20][FILE_SELECT_MAX_LINE_LEN], run_p[PATH_MAX], probeId_fp[PATH_MAX];
 int nSelect=20;
 FILE *Fi_probeId;

 sprintf(run_p, "%s/npt/ProbesWithoutFactoryTest/runs/", PathXWinNMRInst());
 while (nSelect!=1)
    {
     if (Proc_err(QUESTION_OPT, "Please, select exactly one probe for which NMRPT should be updated!\nPress 'OK' to proceed with selection or 'Cancel' to abort AU program.")==0)
        { FileSelect(run_p, fileList, &nSelect, 0); }
     else
        {
         Proc_err(INFO_OPT, "AU program was aboreted due to user request");
         ABORT;
        }
    }

 sprintf(probeId, "%s", fileList[0]);
 sprintf(probeId_fp, "%s%s", run_p, probeId);
 Fi_probeId=fopen(probeId_fp, "r");
 fgets(runName, sizeofRunName, Fi_probeId);
 DEF_chomp(runName);
 fgets(testMode, sizeofTestMode, Fi_probeId);
 DEF_chomp(testMode);
 fclose(Fi_probeId);

 return 0;
}
