193 lines
6.9 KiB
TeX
193 lines
6.9 KiB
TeX
\subsection{NXdata}
|
|
NXdata is a module for writing Powder Diffraction Data files. The
|
|
routines here are somewhat obsolete as they refer to NeXus writing
|
|
using the standard Napi routines which is quite involved. Usually,
|
|
NeXus files are written from SICS through the NXDICT aware utility
|
|
routines in NXUTIL.
|
|
|
|
If not stated
|
|
otherwise, all routines return 1 on successful completion and 0 when an
|
|
error is detected. Please note, that many of these routines expect to find
|
|
certain data items in the Sics Interpreter. This implies, that any naming
|
|
changes in the initialisation file might force changes in here as well.
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap1}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ char *SNXMakeFileName(SicsInterp *pSics, SConnection *pCon);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
SNXMakeFileName creates a new filename from the SICS variables SicsDataPath,
|
|
SicsDataPresript, SicsDataNumber and SicsDataEnding. SicsDataNumber will be
|
|
incremented as well. The function returns a newly allocate buffer with the
|
|
assembled filename or NULL on error. Note, that the caller is responsible
|
|
for freeing the memory associated with the filename afterwards.
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap2}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ NXhandle SNXStartFile(SConnection *pCon, SicsInterp *pSics); @\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
First calls SNXMakeFileName in order to get a new Filename.
|
|
Then a new Nexus file is
|
|
created and all the standard headings are filled in: Filename, User,
|
|
instrument, date etc. This routine also installs an error handler which
|
|
prints errors to pCon.
|
|
If successful, the SicsDataNumber is incremented and
|
|
an NXhandle into the new file is returned. If there is a problem, NULL
|
|
will be returned. The file returned will be positioned at root level.
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap3}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ int SNXStartEntry(NXhandle Nfil, int iNew, SicsInterp *pSics);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap4}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ void SNXFormatTime(char *pBuffer, int iBufLen);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
SNXFormatTime formats the current system time in a form compatible to the
|
|
NeXus standard. Input parameters is a Buffer to hold the string and a
|
|
length of the buffer. Maximum iBufLen characters will be copied to that
|
|
buffer.
|
|
|
|
SNXStartEntry creates a new entry corresponding to iNew in the Nexus file
|
|
Nfil. SNXStartEntry will position Nfil in this new entry. Any data items
|
|
labeled as Comment or intent will be written to the file as well.
|
|
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap5}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ int SNFinishFile(NXhandle Nfil);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
SNFinishFile will end a Nexus file properly.
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap6}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ int SNMakeDMC(SConnection *pCon, SicsInterp *pSics);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
SNMakeDMC produces a Nexus DMC data file from the currently valid
|
|
information. It orchestrates all of the above.
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap7}
|
|
$\langle$Protos {\footnotesize ?}$\rangle\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@int SNStoreDMC(SConnection *pCon, SicsInterp *pSics, void *pData, int argc,@\\
|
|
\mbox{}\verb@ char *argv[]);@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-1ex}
|
|
\footnotesize\addtolength{\baselineskip}{-1ex}
|
|
\begin{list}{}{\setlength{\itemsep}{-\parsep}\setlength{\itemindent}{-\leftmargin}}
|
|
\item Macro defined by scraps ?, ?, ?, ?, ?, ?, ?.
|
|
\item Macro referenced in scrap ?.
|
|
\end{list}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|
|
SNStoreData is the wrapper function used to install a DMC data storage
|
|
command in the Sics interpreter.
|
|
|
|
|
|
\begin{flushleft} \small
|
|
\begin{minipage}{\linewidth} \label{scrap8}
|
|
\verb@"nxdata.h"@ {\footnotesize ? }$\equiv$
|
|
\vspace{-1ex}
|
|
\begin{list}{}{} \item
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@/*-------------------------------------------------------------------------@\\
|
|
\mbox{}\verb@ N X D A T A@\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ Some routines for handling Nexus data file writing.@\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@ Mark Koennecke, April 1997@\\
|
|
\mbox{}\verb@ @\\
|
|
\mbox{}\verb@ copyright: see implementation file.@\\
|
|
\mbox{}\verb@--------------------------------------------------------------------------*/@\\
|
|
\mbox{}\verb@#ifndef SICSNXDATA@\\
|
|
\mbox{}\verb@#define SICSNXDATA@\\
|
|
\mbox{}\verb@@$\langle$Protos {\footnotesize ?, \ldots\ }$\rangle$\verb@ @\\
|
|
\mbox{}\verb@#endif @\\
|
|
\mbox{}\verb@@\\
|
|
\mbox{}\verb@@$\diamond$
|
|
\end{list}
|
|
\vspace{-2ex}
|
|
\end{minipage}\\[4ex]
|
|
\end{flushleft}
|