Ignore:
Timestamp:
Jul 22, 2019 4:16:46 PM (3 years ago)
Author:
krzywon
Message:

Create a method to open or create a new file for all NXcanSAS writers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/branches/nxcansas_writer/NCNR_User_Procedures/Common/NIST_NXcanSAS_v709.ipf

    r1171 r1187  
    3434         
    3535        // Check fullpath and dialog 
    36         if(dialog || stringmatch(fullpath, "")) 
    37                 fileID = NxCansas_DoSaveFileDialog() 
    38         else 
    39                 fileID = NxCansas_CreateFile(fullpath) 
    40         Endif 
    41         if(!fileID) 
    42                 abort "Unable to create file at " + fullpath + "." 
    43         else 
    44                 Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
    45                 sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all 
    46                 sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all 
    47  
    48                 destStr = "root:Packages:NIST:"+type 
    49                 //*****these waves MUST EXIST, or IGOR Pro will crash, with a type 2 error**** 
    50                 WAVE intw = $(destStr + ":integersRead") 
    51                 WAVE rw = $(destStr + ":realsRead") 
    52                 WAVE/T textw=$(destStr + ":textRead") 
    53                 WAVE qvals =$(destStr + ":qval") 
    54                 WAVE inten=$(destStr + ":aveint") 
    55                 WAVE sig=$(destStr + ":sigave") 
    56                 WAVE qbar = $(destStr + ":QBar") 
    57                 WAVE sigmaq = $(destStr + ":SigmaQ") 
    58                 WAVE fsubs = $(destStr + ":fSubS") 
    59         endif 
     36        print "fullpath: ",fullpath 
     37        fileID = NXcanSAS_OpenOrCreate(dialog,fullpath,base) 
     38         
     39        Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
     40        sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all 
     41        sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all 
     42 
     43        destStr = "root:Packages:NIST:"+type 
     44        //*****these waves MUST EXIST, or IGOR Pro will crash, with a type 2 error**** 
     45        WAVE intw = $(destStr + ":integersRead") 
     46        WAVE rw = $(destStr + ":realsRead") 
     47        WAVE/T textw=$(destStr + ":textRead") 
     48        WAVE qvals =$(destStr + ":qval") 
     49        WAVE inten=$(destStr + ":aveint") 
     50        WAVE sig=$(destStr + ":sigave") 
     51        WAVE qbar = $(destStr + ":QBar") 
     52        WAVE sigmaq = $(destStr + ":SigmaQ") 
     53        WAVE fsubs = $(destStr + ":fSubS") 
    6054 
    6155        /////////////////////////////////////////////////////////////////////////// 
     
    141135         
    142136        // Check fullpath and dialog 
    143         if(dialog || stringmatch(fullpath, "")) 
    144                 fileID = NxCansas_DoSaveFileDialog() 
     137        fileID = NXcanSAS_OpenOrCreate(dialog,fullpath,base) 
     138 
     139        Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
     140        sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all 
     141        sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all 
     142         
     143        destStr = "root:Packages:NIST:"+type 
     144 
     145        //must select the linear_data to export 
     146        NVAR isLog = $(destStr+":gIsLogScale") 
     147        if(isLog==1) 
     148                typeStr = ":linear_data" 
    145149        else 
    146                 fileID = NxCansas_CreateFile(fullpath) 
    147         Endif 
    148         if(!fileID) 
    149                 abort "Unable to create file at " + fullpath + "." 
    150         else 
    151                 Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
    152                 sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all 
    153                 sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all 
    154                  
    155                 destStr = "root:Packages:NIST:"+type 
    156  
    157                 //must select the linear_data to export 
    158                 NVAR isLog = $(destStr+":gIsLogScale") 
    159                 if(isLog==1) 
    160                         typeStr = ":linear_data" 
    161                 else 
    162                         typeStr = ":data" 
    163                 endif 
    164                 NVAR pixelsX = root:myGlobals:gNPixelsX 
    165                 NVAR pixelsY = root:myGlobals:gNPixelsY 
    166                 Wave data=$(destStr+typeStr) 
    167                 Wave data_err=$(destStr+":linear_data_error") 
    168                 WAVE intw=$(destStr + ":integersRead") 
    169                 WAVE rw=$(destStr + ":realsRead") 
    170                 WAVE/T textw=$(destStr + ":textRead") 
    171         endif 
     150                typeStr = ":data" 
     151        endif 
     152        NVAR pixelsX = root:myGlobals:gNPixelsX 
     153        NVAR pixelsY = root:myGlobals:gNPixelsY 
     154        Wave data=$(destStr+typeStr) 
     155        Wave data_err=$(destStr+":linear_data_error") 
     156        WAVE intw=$(destStr + ":integersRead") 
     157        WAVE rw=$(destStr + ":realsRead") 
     158        WAVE/T textw=$(destStr + ":textRead") 
    172159         
    173160        /////////////////////////////////////////////////////////////////////////// 
     
    456443// Basic file open/create and file initialization routines 
    457444 
     445// Generic open or create file 
     446Function NXcanSAS_OpenOrCreate(dialog,fullpath,base) 
     447        Variable dialog 
     448        String fullpath,base 
     449        Variable fileID 
     450        if(dialog || stringmatch(fullpath, "")) 
     451                fileID = NxCansas_DoSaveFileDialog(base) 
     452        else 
     453                fileID = NxCansas_CreateFile(fullpath,base) 
     454        Endif 
     455        if(!fileID) 
     456                abort "Unable to create file at " + fullpath + "." 
     457        EndIf 
     458        return fileID 
     459End 
     460 
    458461// Select/create file through prompt 
    459 Function NxCansas_DoSaveFileDialog() 
     462Function NxCansas_DoSaveFileDialog(base) 
     463        String base 
    460464        Variable refNum, fileID 
    461465        String message = "Save a file" 
     
    465469        Open /D /F=fileFilters /M=message refNum 
    466470        outputPath = S_fileName 
    467         fileID = NxCansas_CreateFile(outputPath) 
     471        fileID = NxCansas_CreateFile(outputPath,base) 
    468472        return fileID 
    469473End 
    470474 
    471475// Create file with a known path 
    472 Function NxCansas_CreateFile(fullpath) 
    473         String fullpath 
     476Function NxCansas_CreateFile(fullpath, base) 
     477        String fullpath,base 
    474478        Variable fileID 
    475479        Make/T/O/N=1 $("root:file_name") = fullpath 
     
    477481        fullpath = ReplaceString("\\", fullpath, ":") 
    478482        HDF5CreateFile /Z fileID as fullpath 
    479         NXCansas_InitializeFile(fileID) 
     483        NXCansas_InitializeFile(fileID, base) 
    480484        return fileID 
    481485End 
     
    509513 
    510514// Initialize the file to a base state 
    511 Function NxCansas_InitializeFile(fileID) 
    512         Variable fileID 
     515Function NxCansas_InitializeFile(fileID, base) 
     516        Variable fileID 
     517        String base 
    513518        String parent,nxParent 
    514         String/G base = "root:NXcanSAS_file" 
    515519        Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 
    516520        sPrintf parent,":sasentry%d",sasentry 
Note: See TracChangeset for help on using the changeset viewer.