Changeset 906


Ignore:
Timestamp:
Mar 29, 2020 4:22:52 PM (3 years ago)
Author:
ilavsky
Message:

windows GNOM communication developed

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/User Procedures/Irena/IRB1_bioSAXS.ipf

    r904 r906  
    18831883        //are we on Windows or mac?
    18841884        string datgnomName=""
     1885        string datgnomNameTemp
    18851886        if(PDDFUseGNOM)
    18861887                datgnomName="gnom"
     
    18881889                datgnomName="datgnom"
    18891890        else
    1890                 ABort "Unknown gnom executable selected"
    1891         endif
     1891                Abort "Unknown gnom executable selected"
     1892        endif
     1893        //On WIndows, to test for gnom, need gnom.exe, but to run, no extension. Make life difficutl... 
    18921894        if(stringmatch(IgorInfo(2),"Windows"))
    1893                 datgnomName+=".exe"
    1894         endif
    1895         GetFileFolderInfo /Q/Z/P=DATGNOMPath datgnomName
     1895                datgnomNameTemp=datgnomName+".exe"
     1896        endif
     1897        GetFileFolderInfo /Q/Z/P=DATGNOMPath datgnomNameTemp
    18961898        if(V_Flag!=0)
    1897                 DoAlert /T="GNOM/datGNOM executable not found" 0, "In next dialog locate FOLDER, where GNOM and datGNOM (gnom.exe and datgnom.exe) executable file is located, please. Typically Applications - ATSAS - bin"
    1898                 GetFileFolderInfo/D/P=DATGNOMPath datgnomName
     1899                DoAlert /T="GNOM/datGNOM executable not found" 0, "In next dialog locate FOLDER, where GNOM and datGNOM (gnom.exe and datgnom.exe) executable file is located, please. Window:  Program Files (x86)\ATSAS 3.01\bin and MacOS: Applications - ATSAS - bin"
     1900                GetFileFolderInfo/D/P=DATGNOMPath datgnomNameTemp
    18991901                newPath/O/Q/Z DATGNOMPath, S_Path
    19001902                DATGNOMLocation = S_Path
    19011903        endif
    19021904        //At this moment we should have DATGNOMLocation be string with Igor path to datpddf and datpddfeName be name of executable.
    1903         GetFileFolderInfo /Q/Z/P=DATGNOMPath datgnomName
     1905        GetFileFolderInfo /Q/Z/P=DATGNOMPath datgnomNameTemp
    19041906        if(V_Flag!=0)
    19051907                Abort "Cannot find properly datgnom executable, something is worng here. Report as bug to author, please" 
     
    19191921        Save/G/O/M="\n"/P=ATSASWorkPath ExportQ,ExportInt,ExportErr as "DataIn.dat"
    19201922        //create script file...
    1921         variable RgEstimate = 20
    19221923        string cmd, ATSASPath, DataFilePath, OutputFilePath, InputFilePath
    19231924        ATSASPath = RemoveFromList("bin", DATGNOMLocation, ":")
     
    19291930        //4. Need to specify absolute file to output file, or it will be created in ATSAS folder...
    19301931        //Oh dear...   
     1932        string rminForce, rmaxForce, alphaValForce, NumBinsForce, RgForce, GnomWInPath, wincmd
     1933        if(GnomForceRmin0)
     1934                //rminForce=" --rmin=Yes "
     1935                rminForce=""
     1936        else
     1937                rminForce=" --rmin=No "
     1938        endif
     1939        if(GnomForceRmax0)
     1940                rmaxForce=""
     1941                //rmaxForce=" --rmax=Yes "
     1942        else
     1943                rmaxForce=" --rmax=No "
     1944        endif
     1945        if(GnomAlfaValue>0.001)
     1946                alphaValForce=" --alpha="+num2str(GnomAlfaValue)+" "
     1947        else
     1948                alphaValForce=""
     1949        endif
     1950        if(NumBinsInR>0.001)
     1951                NumBinsForce=" --nr="+num2str(NumBinsInR)+" "
     1952        else
     1953                NumBinsForce=""
     1954        endif
     1955        RgForce = " --rmax="+Num2Str(DmaxEstimate)
    19311956        string unixCmd, igorCmd
    1932         if(stringmatch(IgorInfo(2),"Windows"))                          //Windows script...     
    1933 //              //this will need to be customized on Windows...
    1934 //              Abort "This needs to be fixed for Windows ATSAS Installation"
    1935 //              cmd="cd "+ATSASPath+";\\bin\\"+datgnomName+" "+InputFilePath+" -o "+OutputFilePath             
    1936 //              ExecuteScriptText  cmd
    1937         else    //Mac, need to convert to Posix path
     1957        if(stringmatch(IgorInfo(2),"Windows"))                                                          //Windows script...     
     1958                //this will need to be customized on Windows...
     1959                GnomWInPath =  ParseFilePath(5, DATGNOMLocation, "\\", 0, 0)
     1960                InputFilePath = ParseFilePath(5, DataFilePath, "\\", 0, 0)+"DataIn.dat"
     1961                OutputFilePath = ParseFilePath(5, DataFilePath, "\\", 0, 0)+"DataOut.out"       
     1962                if(PDDFUseGNOM)
     1963                        //and now build it together
     1964                        //note, this is needeed, see the " - whole command is "" as well as each part which may contain spaces.
     1965                        //example from https://stackoverflow.com/questions/6376113/how-do-i-use-spaces-in-the-command-prompt
     1966                        //  cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
     1967                        wincmd="cmd.exe /C \"\""+GnomWInPath+datgnomName+".exe\" \""+InputFilePath+"\""+RgForce+NumBinsForce+alphaValForce+rmaxForce+rminForce+" -o \""+OutputFilePath+"\"\""           
     1968                        //print wincmd
     1969                elseif(PDDFUseAutoGNOM)
     1970                        wincmd="cmd.exe /C  \"\""+GnomWInPath+datgnomName+".exe\" \""+InputFilePath+"\" -r "+Num2Str(DmaxEstimate)+" -o \""+OutputFilePath+"\"\""                       
     1971                        //print wincmd
     1972                else
     1973                        ABort "Unknown gnom executable selected"
     1974                endif
     1975                ExecuteScriptText/Z  wincmd
     1976                if(V_Flag!=0)   //error happened
     1977                        Abort "There was error scripting and running GNOM/DATGNOM"
     1978                endif
     1979                //Print S_value         // actually datgnom adn gnom do report anything contrary to datgnom4...
     1980                //FittingResults = S_value
     1981        else                                                                            //Mac, need to convert to Posix path
    19381982                ATSASPath = "'"+ParseFilePath(9, ATSASPath, "*", 0, 0)+"'"
    1939                 InputFilePath = "'"+ParseFilePath(9, DataFilePath, "*", 0, 0)+"DataIn.dat'"
     1983                InputFilePath ="'"+ ParseFilePath(9, DataFilePath, "*", 0, 0)+"DataIn.dat'"
    19401984                OutputFilePath = "'"+ParseFilePath(9, DataFilePath, "*", 0, 0)+"DataOut.out'"   
    19411985                if(PDDFUseGNOM)
    1942                         string rminForce, rmaxForce, alphaValForce, NumBinsForce, RgForce
    1943                         if(GnomForceRmin0)
    1944                                 //rminForce=" --rmin=Yes "
    1945                                 rminForce=""
    1946                         else
    1947                                 rminForce=" --rmin=No "
    1948                         endif
    1949                         if(GnomForceRmax0)
    1950                                 rmaxForce=""
    1951                                 //rmaxForce=" --rmin=Yes "
    1952                         else
    1953                                 rmaxForce=" --rmin=No "
    1954                         endif
    1955                         if(GnomAlfaValue>0.001)
    1956                                 alphaValForce=" --alpha="+num2str(GnomAlfaValue)+" "
    1957                         else
    1958                                 alphaValForce=""
    1959                         endif
    1960                         if(NumBinsInR>0.001)
    1961                                 NumBinsForce=" --nr="+num2str(NumBinsInR)+" "
    1962                         else
    1963                                 NumBinsForce=""
    1964                         endif
    1965                         RgForce = " --rmax="+Num2Str(DmaxEstimate)
    19661986                        //and now build it together
    19671987                        unixCmd="cd "+ATSASPath+";./bin/"+datgnomName+" "+InputFilePath+RgForce+NumBinsForce+alphaValForce+rmaxForce+rminForce+" -o "+OutputFilePath           
     
    19761996                ExecuteScriptText/UNQ/Z igorCmd
    19771997                if(V_Flag!=0)   //error happened
    1978                         Abort "There was error scripting and running datpddf4"
     1998                        Abort "There was error scripting and running GNOM/DATGNOM"
    19791999                endif
    1980                 Print "datgnom reported these values"
    1981                 Print S_value           // For debugging only - actually datgnom doe snto report anything contrary to datgnom4...
    1982                 FittingResults = S_value
    1983         endif
    1984         //OK, at this moment we should have run datpddf and have the data...
    1985         //now we need to laod them from file:
    1986         // path ATSASWorkPath
    1987         // file DataOut.out
     2000                //Print S_value         // actually datgnom adn gnom do report anything contrary to datgnom4...
     2001                //FittingResults = S_value
     2002        endif
     2003        //import GNOM output file in Irena
    19882004        KillDataFolder/Z root:Packages:Irena:PDDFTemp
    19892005        NewDataFolder/O/S root:Packages:Irena:PDDFTemp 
    19902006        LoadWave/G/D/Q/N/P=ATSASWorkPath "DataOut.out"
    19912007        variable NumLoadedWaves = ItemsInList(S_waveNames,";")
    1992 
    19932008        //now looking at this...
    19942009        //last three waves are      R          P(R)      ERROR
Note: See TracChangeset for help on using the changeset viewer.