#include "libs/FileObj.s2s" #include "libs/SaveObj.s2s" #include "libs/SettingsObj.s2s" var SettingsObj stgs; stgs.setPath("C:\\Users\\rishi\\Documents\\gitrepos2\\spike2scripts"); stgs.setName("WaveAvg_settings.s2gx"); stgs.openFile(); stgs.readAll(); stgs.closeFile(); var FileObj file; file.setName(FileName$(3)); file.setPath(FileName$(-1)); file.bringToFront(); var SaveObj saver; var samples%; var waveAvg%; var stimAvg%; DlgCreate("Waveform Averager"); DlgChan(1, "Vm Waveform Channel", 1); DlgChan(2, "Stimulus Waveform Channel", 1); DlgChan(3, "Rate trigger Channel", 2); DlgXValue(4, "Duration of Average"); DlgCheck(5, "Cursor: 1-2"); DlgCheck(6, "Cursor: 3-4"); DlgCheck(7, "Cursor: 5-6"); DlgCheck(8, "Cursor: 7-8"); DlgCheck(9, "Cursor: 9-0"); DlgInteger(10, "Attenuation(dB)", -100, 9); DlgInteger(11, "Carrier Freq(Hz)", 1, 5000); DlgInteger(12, "Pulse Durations(ms)", 1, 1000); DlgInteger(13, "num. of pulses", 1, 200); DlgInteger(14, "pulse rep.(pps)", 1, 200); DlgReal(15, "Injected Current (nA)", -1, 1); DlgString(16, "Version", 256); DlgString(17, "Results subfolder", 256); var ok% := DlgShow(stgs.waveChan%, stgs.stimChan%, stgs.stimTrigChan%, stgs.duration, stgs.c12%, stgs.c34%, stgs.c56%, stgs.c78%, stgs.c90%, stgs.dB%, stgs.Hz%, stgs.msPD%, stgs.pulses%, stgs.pps%, stgs.nA, stgs.version$, stgs.folder$); if ok% = 1 then var saveName$ := stgs.buildSaveName$(); samples% := stgs.duration*(1/BinSize(stgs.waveChan%)); waveAvg% := SetAverage(stgs.waveChan%, samples%, 0, stgs.stimTrigChan%, 1, 1); if stgs.c12% = 1 then Process(View(-1).Cursor(1), View(-1).Cursor(2), 0, 1); endif if stgs.c34% = 1 then Process(View(-1).Cursor(3), View(-1).Cursor(4), 0, 1); endif if stgs.c56% = 1 then Process(View(-1).Cursor(5), View(-1).Cursor(6), 0, 1); endif if stgs.c78% = 1 then Process(View(-1).Cursor(7), View(-1).Cursor(8), 0, 1); endif if stgs.c90% = 1 then Process(View(-1).Cursor(9), View(-1).Cursor(0), 0, 1); endif FrontView(waveAvg%); saver.setSavePath(file.path$+"\\..\\resultfiles"+"\\"+stgs.folder$); saver.setSaveName(saveName$); saver.save(); file.bringToFront(); stimAvg% := SetAverage(stgs.stimChan%, samples%, 0, stgs.stimTrigChan%, 1, 1); if stgs.c12% = 1 then Process(View(-1).Cursor(1), View(-1).Cursor(2), 0, 1); endif if stgs.c34% = 1 then Process(View(-1).Cursor(3), View(-1).Cursor(4), 0, 1); endif if stgs.c56% = 1 then Process(View(-1).Cursor(5), View(-1).Cursor(6), 0, 1); endif if stgs.c78% = 1 then Process(View(-1).Cursor(7), View(-1).Cursor(8), 0, 1); endif if stgs.c90% = 1 then Process(View(-1).Cursor(9), View(-1).Cursor(0), 0, 1); endif FrontView(stimAvg%); saver.setSavePath(file.path$+"\\..\\resultfiles"+"\\"+stgs.folder$); saver.setSaveName(saveName$+"_stimulus"); saver.save(); stgs.openFile(); stgs.writeAll(); stgs.closeFile(); endif