maintenance release: pshell import, elog, documentation

* bugfixes in pshell import
* updates to elog interface: templates, login, separate persistent and volatile data
* new header and revision information in documentation
This commit is contained in:
muntwiler_m 2016-06-03 12:06:04 +02:00
parent 724c73ef19
commit 02709fd4df
11 changed files with 740 additions and 233 deletions

20
.gitattributes vendored Normal file
View File

@ -0,0 +1,20 @@
.git* export-ignore
#*.ipf diff=igorpro
# git diff --check should output something useful
*.ipf whitespace=indent-with-non-tab,tabwidth=4
# mark files as binary
# you can also add -delta if you regularly
# commit large files of these types
*.ibw binary
*.xop binary
*.pxp binary
*.pxt binary
*.uxp binary
*.uxt binary
*.ihf binary
*.ifn binary
*.ift binary
# automatic end of line normalization
*.ipf eol=lf

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
*.ipfT*
doc/html/*
doc/latex/*

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "PEARL Procedures"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER =
PROJECT_NUMBER = $(REVISION)
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@ -1647,7 +1647,7 @@ EXTRA_PACKAGES =
# to HTML_HEADER.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER =
LATEX_HEADER = src/header.tex
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last

View File

@ -11,7 +11,7 @@ DOX=doxygen
DOXOPTS=
LATEX_DIR=latex
REVISION=$(shell git describe --always --tags --dirty --long)
REVISION=$(shell git describe --always --tags --dirty --long || echo "unknown, "`date +"%F %T %z"`)
export REVISION
all: docs
@ -19,7 +19,7 @@ all: docs
docs: doxygen pdf
doxygen:
$(DOX) $(DOXOPTS) Doxyfile
$(DOX) $(DOXOPTS) config.dox
pdf: doxygen
-$(MAKE) -C $(LATEX_DIR)
@ -27,3 +27,4 @@ pdf: doxygen
clean:
-rm latex/*
-rm html/*

149
doc/src/header.tex Normal file
View File

@ -0,0 +1,149 @@
% Latex header for doxygen 1.8.9.1
%
% To generate this file, call:
% doxygen -w latex header.tex footer.tex doxygen.sty
% and substitute the placeholders:
% $title, $datetime, $date, $doxygenversion, $projectname, $projectnumber, $projectbrief, $projectlogo
% (or diff and merge with previous version)
%
\documentclass[twoside]{book}
% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{calc}
\usepackage{doxygen}
\usepackage[export]{adjustbox} % also loads graphicx
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage[table]{xcolor}
% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize $projectnumber}}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize $projectnumber}}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex
% Hyperlinks (required, but should be loaded last)
\usepackage{ifpdf}
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode%
}
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
%===== C O N T E N T S =====
\begin{document}
% Titlepage & ToC
\hypersetup{pageanchor=false,
bookmarks=true,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{roman}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large $projectname}\\
\vspace*{1cm}
{\large $projectbrief }\\
\vspace*{0.5cm}
{\small Version $projectnumber}\\
\vspace*{0.5cm}
{\small $datetime}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\hypersetup{pageanchor=true}
%--- Begin generated contents ---

View File

@ -21,7 +21,7 @@ Users of PEARL Procedures are requested to coordinate and share the development
Please read and respect the respective license agreements.
\author Matthias Muntwiler, <mailto:matthias.muntwiler@psi.ch>
\version This documentation is compiled from revision $(REVISION).
\version This documentation is compiled from version $(REVISION).
\copyright 2009-2016 by [Paul Scherrer Institut](http://www.psi.ch)
\copyright Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
*/

View File

@ -1893,13 +1893,12 @@ end
///
/// @param x, y projected Cartesian coordinate
///
/// @param projection mapping function from polar to cartesian coordinates
/// @param projection mapping function from polar to cartesian coordinates.
/// projections 0-2 have no effect on the azimuthal coordinate.
/// @arg 0 linear
/// @arg 1 stereographic (default)
/// @arg 2 azimuthal
///
/// projections 0-2 have no effect on the azimuthal coordinate
///
/// @param zeroAngle zeroAngleWhere parameter of polar graphs
/// @arg 0 (default) zero is at the 3 o'clock position
/// @arg 180 zero is at the 9 o'clock position

File diff suppressed because it is too large Load Diff

View File

@ -55,10 +55,8 @@ menu "PEARL"
end
submenu "Services"
PearlMenuEnableFunc("pearl_elog") + "ELOG Experiments", /Q, pearl_elog("Experiments")
help = {"Create entries in ELOG experiments logbook"}
PearlMenuEnableFunc("pearl_elog") + "ELOG Calculations", /Q, pearl_elog("Calculations")
help = {"Create entries in ELOG calculations logbook"}
PearlMenuEnableFunc("pearl_elog") + "Open ELOG Panel", /Q, pearl_elog("")
help = {"Open an ELOG panel to send entries to an ELOG logbook"}
end
submenu "Sample Preparation"

View File

@ -637,6 +637,7 @@ function /s psh5_load_scan_preview(fileID, scanpath, [set_scale])
string datasets = psh5_list_scan_datasets(fileID, scanpath)
string datasetname = ""
variable index
// todo: this should be generalized
if (strsearch(datasets, "ScientaImage", 0) >= 0)
datasetname = "ScientaImage"
@ -644,17 +645,24 @@ function /s psh5_load_scan_preview(fileID, scanpath, [set_scale])
datasetname = "ScientaSpectrum"
elseif (strsearch(datasets, "ScientaEnergyDistribution", 0) >= 0)
datasetname = "ScientaEnergyDistribution"
elseif (strsearch(datasets, "ImageEnergyDistribution", 0) >= 0)
datasetname = "ImageEnergyDistribution"
elseif (strsearch(datasets, "Counts", 0) >= 0)
datasetname = "Counts"
elseif (strsearch(datasets, "SampleCurrent", 0) >= 0)
datasetname = "SampleCurrent"
else
datasetname = StringFromList(0, datasets)
index = ItemsInList(datasetname, "/") - 1
datasetname = StringFromList(index, datasetname, "/")
endif
if (strlen(datasetname) == 0)
return ""
endif
string datasetpath
datasetpath = scanpath + "/" + datasetname
datasetpath = ReplaceString("//", datasetpath, "/")
STRUCT HDF5DataInfo di // Defined in HDF5 Browser.ipf.
InitHDF5DataInfo(di)
variable err = HDF5DatasetInfo(fileID, datasetpath, 0, di)
@ -667,6 +675,10 @@ function /s psh5_load_scan_preview(fileID, scanpath, [set_scale])
if (di.ndims < 3)
HDF5LoadData /O /Q /Z fileID, datasetpath
dataname = StringFromList(0, S_waveNames)
wave /z data = $dataname
if (waveexists(data))
ps_set_dimlabels(data)
endif
else
variable dim2start = 0
variable dim2count = 1
@ -1000,10 +1012,12 @@ function ps_set_dimlabels(data)
setdimlabel 0, -1, $kEnergyDimLabel, data
break
case "ImageAngleDistribution":
case "ScientaAngleDistribution":
setdimlabel 0, -1, $kScanDimLabel, data
setdimlabel 1, -1, $kAngleDimLabel, data
break
case "ImageEnergyDistribution":
case "ScientaEnergyDistribution":
setdimlabel 0, -1, $kScanDimLabel, data
setdimlabel 1, -1, $kEnergyDimLabel, data
break