From 938eea27e81d0c7dffd2dc45b07d36f447801bb7 Mon Sep 17 00:00:00 2001 From: ThorBarRa Date: Thu, 12 Mar 2026 10:50:30 +0100 Subject: [PATCH] feat: add unified functionSignatures.json for MATLAB auto-complete Adds native IDE parameter suggestions, name-value pair tracking, and enum choices for all NAPP functions based on their current inputParser configurations. --- beamtime/resources/functionSignatures.json | 188 +++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 beamtime/resources/functionSignatures.json diff --git a/beamtime/resources/functionSignatures.json b/beamtime/resources/functionSignatures.json new file mode 100644 index 0000000..dd9f6e8 --- /dev/null +++ b/beamtime/resources/functionSignatures.json @@ -0,0 +1,188 @@ +{ + "_schemaVersion": "1.0.0", + + "nappScale": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "optional", "type": ["logical"]}, + {"name": "energyStart", "kind": "optional", "type": ["numeric"]}, + {"name": "energyEnd", "kind": "optional", "type": ["numeric"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'spectrum_counts','spectrum_countsPerSecond','spectrum_countsNorm'}"]}, + {"name": "regionOld", "kind": "namevalue", "type": ["choices={'O1s','C1s','N1s','Cl2p'}"]}, + {"name": "regionNew", "kind": "namevalue", "type": ["choices={'O1s','C1s','N1s'}"]}, + {"name": "peakNumber", "kind": "namevalue", "type": ["numeric"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'intensity','area'}"]} + ] + }, + + "nappPlot": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "optional", "type": ["logical"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'image','imageRoh','spectrum_countsPerSecond','spectrum_counts','spectrum_countsNorm'}"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'AllInOne','OneEach','iterations','AugerMeitner','interactive'}"]}, + {"name": "figureMode", "kind": "namevalue", "type": ["choices={'screen','powerpoint','word'}"]}, + {"name": "energyScale", "kind": "namevalue", "type": ["choices={'kinetic','binding','xRay','sweeps'}"]}, + {"name": "plotStep", "kind": "namevalue", "type": ["numeric"]}, + {"name": "AugerMeitnerEnergies", "kind": "namevalue", "type": ["numeric"]} + ] + }, + + "nappGenerateSpectra": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "optional", "type": ["logical"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'image','imageRoh'}"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'mean','sum','trapz','AugerMeitnerMean'}"]}, + {"name": "iterationRange", "kind": "namevalue", "type": ["numeric"]}, + {"name": "eKinStart", "kind": "namevalue", "type": ["numeric"]}, + {"name": "eKinEnd", "kind": "namevalue", "type": ["numeric"]} + ] + }, + + "nappFitGaussXps": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "FitParameter", "kind": "required", "type": ["struct"]}, + {"name": "tableSelection", "kind": "optional", "type": ["logical"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'spectrum_counts','spectrum_countsPerSecond','spectrum_countsNorm'}"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'unconstrained','widthPosition','position','width','widthPositionShirley','positionShirley','widthShirley','unconstrainedAndWidthPosition','gasAndTwoAcidBasePairs','widthPositionAreaRatio','widthPositionAmineAreaRatio','TwoSpinOrbitDoublet','TwoSpinOrbitDoubletPseudoVoigtShirley','GasAndSurfaceSpinOrbitDoublet'}"]}, + {"name": "showFigures", "kind": "namevalue", "type": ["choices={'on','off'}"]}, + {"name": "energyScale", "kind": "namevalue", "type": ["choices={'kinetic','binding'}"]}, + {"name": "backgroundMode", "kind": "namevalue", "type": ["choices={'linear','shirley'}"]}, + {"name": "peakWidthMode", "kind": "namevalue", "type": ["choices={'gauss','FWHM'}"]} + ] + }, + + "nappFileList": { + "inputs": [ + {"name": "dataPath", "kind": "required"}, + {"name": "DataTable", "kind": "optional", "type": ["table"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'local','nappDrive','dataDrive','localNew','nappDrivePick','localPick','dataPick'}"]}, + {"name": "importLabView", "kind": "namevalue", "type": ["choices={'on','off'}"]} + ] + }, + + "nappDetermineShiftXps": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "eKinStart", "kind": "optional", "type": ["numeric"]}, + {"name": "eKinEnd", "kind": "optional", "type": ["numeric"]}, + {"name": "FitParameter", "kind": "namevalue", "type": ["struct"]}, + {"name": "binEnReference", "kind": "namevalue", "type": ["numeric"]}, + {"name": "kinEnReference", "kind": "namevalue", "type": ["numeric"]}, + {"name": "tableSelection", "kind": "namevalue", "type": ["logical"]}, + {"name": "minPeakWidth", "kind": "namevalue", "type": ["numeric"]}, + {"name": "minPeakHeight", "kind": "namevalue", "type": ["numeric"]}, + {"name": "movMeanWindow", "kind": "namevalue", "type": ["numeric"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'spectrum_counts','spectrum_countsPerSecond','spectrum_countsNorm','image','imageRoh'}"]}, + {"name": "showFigures", "kind": "namevalue", "type": ["choices={'on','off'}"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'gaussFit','findPeak'}"]}, + {"name": "refPeak", "kind": "namevalue", "type": ["numeric"]} + ] + }, + + "nappCopyShift": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "optional", "type": ["logical"]}, + {"name": "regionOld", "kind": "namevalue", "type": ["choices={'O1s','C1s','N1s'}"]}, + {"name": "regionNew", "kind": "namevalue", "type": ["choices={'O1s','C1s','N1s','Cl2p'}"]}, + {"name": "energyScale", "kind": "namevalue", "type": ["choices={'kinetic','binding'}"]} + ] + }, + + "nappCombineSpectra": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "namevalue", "type": ["logical"]}, + {"name": "tableRow", "kind": "namevalue", "type": ["numeric"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'nexafsSpectrum','spectrum_counts','spectrum_countsPerSecond','spectrum_countsNorm','nexafsSpectrumPreBackground','nexafsSpectrumPreNorm','nexafsSpectrumPreGasPhase','nexafsSpectrumPreI0','nexafsSpectrumPreAdvCarb'}"]}, + {"name": "mode", "kind": "namevalue", "type": ["choices={'sum','average','subtract'}"]}, + {"name": "energyScale", "kind": "namevalue", "type": ["choices={'kinetic','binding','xRay'}"]}, + {"name": "output", "kind": "namevalue", "type": ["choices={'simple','complete'}"]} + ] + }, + + "nappBindingEnergyXps": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "namevalue", "type": ["logical"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'spectrum_counts','spectrum_countsPerSecond'}"]} + ] + }, + + "nappAlignImages": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "namevalue", "type": ["logical"]}, + {"name": "tableVariable", "kind": "namevalue", "type": ["choices={'imageRoh','image'}"]} + ] + }, + + "nappAddFitToPlot": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "tableSelection", "kind": "optional"}, + {"name": "plotHandle", "kind": "optional"}, + {"name": "peakWidthMode", "kind": "optional"}, + {"name": "energyScale", "kind": "optional"} + ] + }, + + "nappAnnotateSurvey": { + "inputs": [ + {"name": "X", "kind": "required"}, + {"name": "Y", "kind": "required"}, + {"name": "dataObjs", "kind": "required"}, + {"name": "labeltext", "kind": "required"} + ] + }, + + "Napp_RH_p": { + "inputs": [ + {"name": "T_current", "kind": "required"}, + {"name": "partial_pressure_water", "kind": "required"} + ] + }, + + "Napp_p_RH": { + "inputs": [ + {"name": "T_current", "kind": "required"}, + {"name": "RH", "kind": "required"} + ] + }, + + "Napp_p_ice": { + "inputs": [ + {"name": "T_current", "kind": "required"} + ] + }, + + "createBeamtimeFolder": { + "inputs": [ + {"name": "projectName", "kind": "required"} + ] + }, + + "addSampleNotes": { + "inputs": [ + {"name": "DataTable", "kind": "required", "type": ["table"]}, + {"name": "fileNumber", "kind": "required"}, + {"name": "notesToAdd", "kind": "required"}, + {"name": "dataMonth", "kind": "required"}, + {"name": "dataYear", "kind": "required"}, + {"name": "tableSelection", "kind": "required"} + ] + }, + + "addPhotonEnergy": { + "inputs": [ + {"name": "FileList", "kind": "required"}, + {"name": "fileNumber", "kind": "required"}, + {"name": "notesToAdd", "kind": "required"}, + {"name": "dataMonth", "kind": "required"}, + {"name": "dataYear", "kind": "required"} + ] + } +} \ No newline at end of file