%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{epics\_variable\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZainputEpicsZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZainputEpicsZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dark\_current\_variable\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZainputDarkZcurrentZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZainputDarkZcurrentZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{epics\_variable\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZaoutputEpicsZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZaoutputEpicsZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZareaZdetectorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{prefix\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZareaZdetectorPrefixZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZareaZdetectorPrefixZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZareaZdetectorCameraZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZareaZdetectorCameraZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{image\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZareaZdetectorImageZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZareaZdetectorImageZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZccdDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZccdEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZccdEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{epics\_variable\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZdinputEpicsZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZdinputEpicsZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{epics\_variable\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZdoutputEpicsZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZdoutputEpicsZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZmcaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaFields} \\
    \hline
    \textit{epics\_detector\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcaEpicsZdetectorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcaEpicsZdetectorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{epics\_mca\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcaEpicsZmcaZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcaEpicsZmcaZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{epics\_dxp\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcaEpicsZdxpZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcaEpicsZdxpZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{epics\_mca\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcaEpicsZmcaZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcaEpicsZmcaZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZmcsDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{channel\_prefix} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcsChannelZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcsChannelZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{common\_prefix} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcsCommonZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcsCommonZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{epics\_mcs\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEpicsZmcsEpicsZmcsZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmcsEpicsZmcsZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZmotorEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZmotorEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZscalerEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZscalerEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scaler\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEpicsZscalerScalerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZscalerScalerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZtimerEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZtimerEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZcamacDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCamacFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZcamacEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZcamacEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZgpibDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkGpibFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZgpibEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZgpibEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZrsCDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZrsCDCEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZrsCDCEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZvmeDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkVmeFields} \\
    \hline
    \textit{epics\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZvmeEpicsZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZvmeEpicsZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZcharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZshortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZfloatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZtimeoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEpicsZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLabjackZuxDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{product\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldLabjackZuxProductZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLabjackZuxProductZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{device\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLabjackZuxDeviceZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLabjackZuxDeviceZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{labjack\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLabjackZuxLabjackZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLabjackZuxLabjackZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLabjackZuxZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{labjack\_ux\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLabjackZuxZdinputLabjackZuxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLabjackZuxZdinputLabjackZuxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pin\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLabjackZuxZdinputPinZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLabjackZuxZdinputPinZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEpicsZpmacZbiocatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{beamline\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatBeamlineZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatBeamlineZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{component\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatComponentZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatComponentZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{assembly\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatAssemblyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatAssemblyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{calib\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatCalibZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatCalibZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dpram\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatDpramZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatDpramZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{device\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatDeviceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatDeviceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{start\_delay} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatStartZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatStartZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{end\_delay} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEpicsZpmacZbiocatEndZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEpicsZpmacZbiocatEndZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMbcZgscZtriggerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{epics\_prefix} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldMbcZgscZtriggerEpicsZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMbcZgscZtriggerEpicsZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMbcZnoirDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{epics\_prefix} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldMbcZnoirEpicsZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMbcZnoirEpicsZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_filename\_prefix} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMbcZnoirRemoteZfilenameZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMbcZnoirRemoteZfilenameZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{local\_filename\_prefix} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMbcZnoirLocalZfilenameZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMbcZnoirLocalZfilenameZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMbcZnoirZtriggerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{epics\_prefix} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldMbcZnoirZtriggerEpicsZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMbcZnoirZtriggerEpicsZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{card\_address} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFCardZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFCardZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZainputKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZainputKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZainputChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZainputChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZaoutputKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZaoutputKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZaoutputChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZaoutputChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZdinputKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZdinputKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZdinputChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZdinputChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZdoutputKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZdoutputKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZdoutputChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZdoutputChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZscalerKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZscalerKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZscalerChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZscalerChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKIAFFZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{k8055\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKIAFFZtimerKIAFFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKIAFFZtimerKIAFFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZtcZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{actual\_position\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorActualZpositionZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorActualZpositionZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{requested\_position\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorRequestedZpositionZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorRequestedZpositionZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{in\_position\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorInZpositionZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorInZpositionZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{abort\_record\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorAbortZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorAbortZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_name} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorPmacZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorPmacZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{speed\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorSpeedZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorSpeedZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{start\_delay} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorStartZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorStartZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{end\_delay} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZtcZmotorEndZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZtcZmotorEndZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZgapDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{sector\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZgapSectorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZgapSectorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_subtype} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZgapMotorZsubtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZgapMotorZsubtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZquademZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{epics\_record\_namestem} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldApsZquademZamplifierEpicsZrecordZnamestem}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZquademZamplifierEpicsZrecordZnamestem\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZidZqscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkQuickZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZtopupZinterlockDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCalcFields} \\
    \hline
    \textit{extra\_delay\_time} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZtopupZinterlockExtraZdelayZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZtopupZinterlockExtraZdelayZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZtopupZtimeDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCalcFields} \\
    \hline
    \textit{extra\_delay\_time} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZtopupZtimeExtraZdelayZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZtopupZtimeExtraZdelayZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxListZheadDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkListZheadZclassFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZrsCDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZrsCDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZrsCDCServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZrsCDCServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZrsCDCRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZrsCDCRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTtyDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldTtyFilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTtyFilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDDEEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDDEECamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDDEECamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDDEESlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDDEESlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDDEESubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDDEESubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{max\_read\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDDEEMaxZreadZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDDEEMaxZreadZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWagoHFAZserialDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{bus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZserialBusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZserialBusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_bus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZserialInputZbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZserialInputZbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_bus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZserialOutputZbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZserialOutputZbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_data\_bytes} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZserialNumZdataZbytes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZserialNumZdataZbytes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTcpCDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldTcpCDCHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpCDCHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTcpCDCPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpCDCPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{tcp232\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTcpCDCTcpCDCZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpCDCTcpCDCZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTelnetDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldTelnetHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTelnetHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTelnetPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTelnetPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{telnet\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTelnetTelnetZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTelnetTelnetZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCameraZlinkZrsCDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{camera\_link\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCameraZlinkZrsCDCCameraZlinkZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCameraZlinkZrsCDCCameraZlinkZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZcommandDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZcommandSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZcommandSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{spec\_command\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZcommandSpecZcommandZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZcommandSpecZcommandZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSimJAAZportDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRsCDCFields} \\
    \hline
    \textit{sim900\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJAAZportSimJAAZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJAAZportSimJAAZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJAAZportPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJAAZportPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZgpibDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkGpibFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZgpibServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZgpibServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZgpibRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZgpibRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKFAAserialDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkGpibFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKFAAserialRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKFAAserialRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMicroEIIexDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkGpibFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMicroEIIexRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMicroEIIexRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{micro488ex\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMicroEIIexMicroEIIexZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMicroEIIexMicroEIIexZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPrologixDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkGpibFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPrologixRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPrologixRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZcamacDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCamacFields} \\
    \hline
    \textit{logfile\_name} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldSoftZcamacLogfileZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZcamacLogfileZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDspGAABDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCamacFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDspGAABPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDspGAABPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDspGAABBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDspGAABBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmDAAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{controller\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmDAAAControllerZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmDAAAControllerZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmEAAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{controller\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmEAAAControllerZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmEAAAControllerZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEspDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{controller\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEspControllerZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEspControllerZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_type\_name} & string & 1 & 32 & $\ifthenelse{\isundefined{\MxFieldPmacPortZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacPortZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_args} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldPmacPortZargs}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacPortZargs\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_cards} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacNumZcards}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacNumZcards\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCompumotorZintDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZintRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZintRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{interface\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZintInterfaceZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZintInterfaceZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_controllers} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZintNumZcontrollers}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZintNumZcontrollers\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_number} & long & 1 & \textit{num\_controllers} & $\ifthenelse{\isundefined{\MxFieldCompumotorZintControllerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZintControllerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_axes} & long & 1 & \textit{num\_controllers} & $\ifthenelse{\isundefined{\MxFieldCompumotorZintNumZaxes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZintNumZaxes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDIDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDIRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDIRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVpJAAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAARsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAARsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_controllers} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAANumZcontrollers}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAANumZcontrollers\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_motors} & long & 1 & \textit{num\_controllers} & $\ifthenelse{\isundefined{\MxFieldVpJAAANumZmotors}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAANumZmotors\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEARsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEARsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stepper\_mode} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEAStepperZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEAStepperZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stepper\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEAStepperZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEAStepperZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stepper\_stop\_delay} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEAStepperZstopZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEAStepperZstopZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIICFFDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIICFFPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIICFFBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcGICBDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_a\_data\_direction} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBPortZaZdataZdirection}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBPortZaZdataZdirection\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_b\_data\_direction} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBPortZbZdataZdirection}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBPortZbZdataZdirection\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLptDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLptPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLptBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{lpt\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldLptLptZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptLptZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{lpt\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLptLptZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptLptZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAmJFBDDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{master\_mode\_register} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDMasterZmodeZregister}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDMasterZmodeZregister\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxHscBDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHscBRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_modules} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHscBNumZmodules}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBNumZmodules\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_id} & string & 2 & ( \textit{num\_modules}, 14 ) & $\ifthenelse{\isundefined{\MxFieldHscBModuleZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBModuleZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVmeFIDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFICrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFICrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVscBGDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPcstepDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{limit\_switch\_polarity} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepLimitZswitchZpolarity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepLimitZswitchZpolarity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{enable\_limit\_switches} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepEnableZlimitZswitches}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepEnableZlimitZswitches\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxOrtecJHEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{module\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldOrtecJHEModuleZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldOrtecJHEModuleZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZserverRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZserverRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{use\_external\_time\_base} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxUseZexternalZtimeZbase}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxUseZexternalZtimeZbase\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_stepping\_rate} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxMaximumZsteppingZrate}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxMaximumZsteppingZrate\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSisDIAHDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldSisDIAHAddressZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHAddressZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_channels} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHNumZchannels}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHNumZchannels\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_invert\_register} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHOutputZinvertZregister}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHOutputZinvertZregister\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{enable\_factor\_8\_predivider} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHEnableZfactorZIZpredivider}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHEnableZfactorZIZpredivider\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMardtbDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{username} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldMardtbUsername}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbUsername\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mardtb\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbMardtbZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbMardtbZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUglideDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldUglideRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUglideRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{uglide\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldUglideUglideZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUglideUglideZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZadcmodCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{averaged\_value\_update\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCAveragedZvalueZupdateZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCAveragedZvalueZupdateZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{raw\_value\_read\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCRawZvalueZreadZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCRawZvalueZreadZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_raw\_measurements\_to\_average} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCNumZrawZmeasurementsZtoZaverage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCNumZrawZmeasurementsZtoZaverage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCxtiltACDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCxtiltACRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCxtiltACRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{resolution\_level} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCxtiltACResolutionZlevel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCxtiltACResolutionZlevel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIseriesDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{bus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesBusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesBusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bus\_address\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldIseriesBusZaddressZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesBusZaddressZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPhidgetZoldZstepperZcontrollerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{usb\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperZcontrollerUsbZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperZcontrollerUsbZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{order\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperZcontrollerOrderZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperZcontrollerOrderZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPfcuDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pfcu\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuPfcuZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuPfcuZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCHAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCHAAPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCHAAPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCEAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCAAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCAAAPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCAAAPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKohzuZscDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKohzuZscPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKohzuZscPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPicomotorZcontrollerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZcontrollerRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZcontrollerRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSrGDADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrGDAPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrGDAPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTpgCGCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTpgCGCRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTpgCGCRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{tpg262\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTpgCGCTpgCGCZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTpgCGCTpgCGCZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCmBHaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCmBHaRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCmBHaRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSonyZviscaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSonyZviscaRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSonyZviscaRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPanasonicZkxZdpHACDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPanasonicZkxZdpHACRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPanasonicZkxZdpHACRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpellmanZdfDDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{query\_interval} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDQueryZinterval}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDQueryZinterval\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_power\_limit} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDDefaultZpowerZlimit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDDefaultZpowerZlimit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_filament\_current\_limit} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDDefaultZfilamentZcurrentZlimit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDDefaultZfilamentZcurrentZlimit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_function\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxPortZfunctionZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxPortZfunctionZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIsobusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{isobus\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIsobusIsobusZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIsobusIsobusZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{isobus\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIsobusIsobusZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIsobusIsobusZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIlmDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{isobus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmIsobusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmIsobusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{isobus\_address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmIsobusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmIsobusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ilm\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmIlmZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmIlmZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmMaximumZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmMaximumZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxItcFADDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{isobus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADIsobusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADIsobusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{isobus\_address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADIsobusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADIsobusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADControllerZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADControllerZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADMaximumZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADMaximumZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryojetDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{isobus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetIsobusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetIsobusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{isobus\_address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetIsobusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetIsobusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetControllerZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetControllerZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetMaximumZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetMaximumZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinkamZtJxDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_type\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxModuleZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxModuleZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSimJAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{sim900\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJAASimJAAZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJAASimJAAZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sim900\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJAASimJAAZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJAASimJAAZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIEAEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIEAERsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIEAERsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIEAEAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIEAEAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinuxZparportDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{parport\_name} & string & 1 & 41 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportParportZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportParportZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parport\_mode\_name} & string & 1 & 7 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportParportZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportParportZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parport\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportParportZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportParportZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinuxZioplDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPortioFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinuxZiopermDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPortioFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmapZvmeDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkVmeFields} \\
    \hline
    \textit{mmap\_vme\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmapZvmeMmapZvmeZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmapZvmeMmapZvmeZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{page\_size} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmapZvmePageZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmapZvmePageZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZtcpDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkModbusFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldModbusZtcpHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZtcpHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZtcpPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZtcpPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{unit\_id} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZtcpUnitZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZtcpUnitZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZserialZrtuDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkModbusFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZserialZrtuRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZserialZrtuRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZserialZrtuAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZserialZrtuAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZcameraZlinkDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCameraZlinkFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCameraZlinkZapiDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCameraZlinkFields} \\
    \hline
    \textit{library\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldCameraZlinkZapiLibraryZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCameraZlinkZapiLibraryZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{aoutput\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZainputAoutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZainputAoutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZainputServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZainputServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_field\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldNetworkZainputRemoteZrecordZfieldZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZainputRemoteZrecordZfieldZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZaoutputServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZaoutputServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_field\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldNetworkZaoutputRemoteZrecordZfieldZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZaoutputRemoteZrecordZfieldZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDFBCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDFBCCamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDFBCCamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDFBCSlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDFBCSlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDFBCSubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDFBCSubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDBBCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDBBCCamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDBBCCamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDBBCSlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDBBCSlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDBBCSubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDBBCSubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZainputPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZainputPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZainputCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZainputCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZainputPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZainputPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZaoutputPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZaoutputPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZaoutputCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZaoutputCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZaoutputPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZaoutputPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMclennanZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{mclennan\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZainMclennanZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZainMclennanZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZainPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZainPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMclennanZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{mclennan\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZaoutMclennanZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZaoutMclennanZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZaoutPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZaoutPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZainScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZainScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_scaler\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZainScipeZscalerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZainScipeZscalerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZaoutScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZaoutScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_actuator\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZaoutScipeZactuatorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZaoutScipeZactuatorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZainputPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZainputPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZainputLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZainputLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZaoutputPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZaoutputPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZaoutputLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZaoutputLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZvalueDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{mca\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZvalueMcaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZvalueMcaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldMcaZvalueValueZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZvalueValueZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_parameters} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldMcaZvalueValueZparameters}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZvalueValueZparameters\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZweightedZsumDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{roi\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZweightedZsumRoiZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZweightedZsumRoiZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mca\_enable\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZweightedZsumMcaZenableZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZweightedZsumMcaZenableZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_mcas} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZweightedZsumNumZmcas}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZweightedZsumNumZmcas\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mca\_record\_array} & record & 1 & \textit{num\_mcas} & $\ifthenelse{\isundefined{\MxFieldMcaZweightedZsumMcaZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZweightedZsumMcaZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMardtbZstatusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{mardtb\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZstatusMardtbZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZstatusMardtbZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZstatusParameterZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZstatusParameterZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMdriveZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{mdrive\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveZainMdriveZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveZainMdriveZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmartmotorZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{smartmotor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZainSmartmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZainSmartmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 5 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZainPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZainPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmartmotorZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{smartmotor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZaoutSmartmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZaoutSmartmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 5 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZaoutPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZaoutPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCxtiltACZangleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{cxtilt02\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCxtiltACZangleCxtiltACZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCxtiltACZangleCxtiltACZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_id} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCxtiltACZangleAngleZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCxtiltACZangleAngleZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZainputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZainputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZainputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZainputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZainputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZainputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZainputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZainputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZaoutputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZaoutputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZaoutputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZaoutputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZaoutputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZaoutputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZaoutputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZaoutputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWagoHFAZmodbusZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZaoutputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZaoutputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZaoutputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZaoutputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZaoutputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZaoutputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZaoutputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZaoutputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIseriesZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{iseries\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZainputIseriesZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZainputIseriesZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldIseriesZainputCommand}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZainputCommand\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_command\_bytes} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZainputNumZcommandZbytes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZainputNumZcommandZbytes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_precision} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZainputDefaultZprecision}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZainputDefaultZprecision\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIseriesZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{iseries\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZaoutputIseriesZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZaoutputIseriesZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldIseriesZaoutputCommand}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZaoutputCommand\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_command\_bytes} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZaoutputNumZcommandZbytes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZaoutputNumZcommandZbytes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_precision} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZaoutputDefaultZprecision}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZaoutputDefaultZprecision\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaiZfunctionDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{mcai\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaiZfunctionMcaiZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaiZfunctionMcaiZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_channels} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaiZfunctionNumZchannels}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaiZfunctionNumZchannels\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_scale} & double & 1 & \textit{num\_channels} & $\ifthenelse{\isundefined{\MxFieldMcaiZfunctionRealZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaiZfunctionRealZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_offset} & double & 1 & \textit{num\_channels} & $\ifthenelse{\isundefined{\MxFieldMcaiZfunctionRealZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaiZfunctionRealZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCHAAZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCHAAZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCHAAZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{system\_channel} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCHAAZainputSystemZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCHAAZainputSystemZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCEAAZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{measurement\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZainputMeasurementZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZainputMeasurementZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCEAAZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZaoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZaoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{source\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZaoutputSourceZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZaoutputSourceZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCAAAZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCAAAZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCAAAZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{measurement\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCAAAZainputMeasurementZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCAAAZainputMeasurementZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPicomotorZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{picomotor\_controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZainputPicomotorZcontrollerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZainputPicomotorZcontrollerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{driver\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldPicomotorZainputDriverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZainputDriverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZainputChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZainputChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTrackerZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZainputRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZainputRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZainputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZainputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{location} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZainputLocation}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZainputLocation\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTrackerZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZaoutputRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZaoutputRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZaoutputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZaoutputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{location} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZaoutputLocation}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZaoutputLocation\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSrGDAZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrGDAZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrGDAZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrGDAZainputChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrGDAZainputChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSrGDAZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrGDAZaoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrGDAZaoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrGDAZaoutputChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrGDAZaoutputChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPGAAAaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPGAAAaRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPGAAAaRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTpgCGCZpressureDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{tpg262\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTpgCGCZpressureTpgCGCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTpgCGCZpressureTpgCGCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gauge\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTpgCGCZpressureGaugeZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTpgCGCZpressureGaugeZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZionZchamberDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZionZchamberBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZionZchamberBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZionZchamberBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZionZchamberBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZionZchamberDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZionZchamberBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZionZchamberBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_counter\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZionZchamberBluiceZcounterZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZionZchamberBluiceZcounterZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZionZchamberBluiceZchannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZionZchamberBluiceZchannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_timer\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZionZchamberBluiceZtimerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZionZchamberBluiceZtimerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_timer\_type} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZionZchamberBluiceZtimerZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZionZchamberBluiceZtimerZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpellmanZdfDZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{spellman\_df3\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZainSpellmanZdfDZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZainSpellmanZdfDZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_type} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZainInputZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZainInputZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpellmanZdfDZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{spellman\_df3\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZaoutSpellmanZdfDZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZaoutSpellmanZdfDZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_type} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZaoutOutputZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZaoutOutputZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{bkprecision\_912x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZainBkprecisionZJBCxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZainBkprecisionZJBCxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_type\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZainInputZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZainInputZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{bkprecision\_912x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZaoutBkprecisionZJBCxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZaoutBkprecisionZJBCxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_type\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZaoutOutputZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZaoutOutputZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIlmZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{ilm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZainputIlmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZainputIlmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZainputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZainputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZdinputServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZdinputServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_field\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldNetworkZdinputRemoteZrecordZfieldZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZdinputRemoteZrecordZfieldZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZdoutputServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZdoutputServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_field\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldNetworkZdoutputRemoteZrecordZfieldZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZdoutputRemoteZrecordZfieldZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDAGDZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDAGDZinCamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDAGDZinCamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDAGDZinSlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDAGDZinSlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDAGDZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDAGDZoutCamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDAGDZoutCamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDAGDZoutSlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDAGDZoutSlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIICFFZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIICFFZinInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFZinInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & string & 1 & 2 & $\ifthenelse{\isundefined{\MxFieldIICFFZinPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFZinPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIICFFZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIICFFZoutInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFZoutInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & string & 1 & 2 & $\ifthenelse{\isundefined{\MxFieldIICFFZoutPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIICFFZoutPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcGICBZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBZinInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBZinInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBZinPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBZinPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcGICBZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBZoutInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBZoutInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcGICBZoutPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcGICBZoutPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLptZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLptZinInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptZinInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 7 & $\ifthenelse{\isundefined{\MxFieldLptZinPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptZinPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLptZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLptZoutInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptZoutInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 7 & $\ifthenelse{\isundefined{\MxFieldLptZoutPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLptZoutPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBitZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{invert} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZinInvert}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZinInvert\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZinInputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZinInputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZinInputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZinInputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_input\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZinNumZinputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZinNumZinputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBitZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{invert} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutInvert}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutInvert\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutInputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutInputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutInputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutInputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_input\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutNumZinputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutNumZinputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutOutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutOutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutOutputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutOutputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_output\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBitZoutNumZoutputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBitZoutNumZoutputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVmeZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdinputVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdinputVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldVmeZdinputAddressZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdinputAddressZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdinputCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdinputCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdinputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdinputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{data\_size\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldVmeZdinputDataZsizeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdinputDataZsizeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVmeZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdoutputVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdoutputVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldVmeZdoutputAddressZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdoutputAddressZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdoutputCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdoutputCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeZdoutputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdoutputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{data\_size\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldVmeZdoutputDataZsizeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeZdoutputDataZsizeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPortioZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdinputPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdinputPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdinputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdinputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{data\_size} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdinputDataZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdinputDataZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPortioZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{portio\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdoutputPortioZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdoutputPortioZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdoutputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdoutputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{data\_size} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPortioZdoutputDataZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPortioZdoutputDataZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdinputPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdinputPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdinputCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdinputCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZdinputPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdinputPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdoutputPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoutputPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdoutputCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoutputCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZdoutputPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoutputPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCompumotorZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{compumotor\_interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdinCompumotorZinterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdinCompumotorZinterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdinControllerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdinControllerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{brick\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdinBrickZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdinBrickZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{first\_bit} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdinFirstZbit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdinFirstZbit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdinNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdinNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCompumotorZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{compumotor\_interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdoutCompumotorZinterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdoutCompumotorZinterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdoutControllerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdoutControllerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{brick\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdoutBrickZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdoutBrickZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{first\_bit} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdoutFirstZbit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdoutFirstZbit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZdoutNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZdoutNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMclennanZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{mclennan\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZdinMclennanZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZdinMclennanZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZdinPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZdinPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMclennanZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{mclennan\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZdoutMclennanZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZdoutMclennanZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanZdoutPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanZdoutPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZdinScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZdinScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_scaler\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZdinScipeZscalerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZdinScipeZscalerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZdoutScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZdoutScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_actuator\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZdoutScipeZactuatorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZdoutScipeZactuatorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMdriveZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{mdrive\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveZdinMdriveZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveZdinMdriveZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveZdinPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveZdinPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMdriveZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{mdrive\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveZdoutMdriveZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveZdoutMdriveZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveZdoutPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveZdoutPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmartmotorZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{smartmotor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZdinSmartmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZdinSmartmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 5 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZdinPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZdinPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmartmotorZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{smartmotor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZdoutSmartmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZdoutSmartmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 5 & $\ifthenelse{\isundefined{\MxFieldSmartmotorZdoutPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorZdoutPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdinputPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdinputPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdinputLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdinputLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pdi45\_dinput\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdinputPdiEFZdinputZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdinputPdiEFZdinputZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdoutputPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdoutputPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdoutputLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdoutputLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pdi45\_doutput\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZdoutputPdiEFZdoutputZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZdoutputPdiEFZdoutputZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdinputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdinputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdinputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdinputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdinputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdinputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdinputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdinputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxModbusZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdoutputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdoutputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdoutputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdoutputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdoutputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdoutputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldModbusZdoutputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldModbusZdoutputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWagoHFAZmodbusZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{modbus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZdoutputModbusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZdoutputModbusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZdoutputModbusZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZdoutputModbusZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZdoutputNumZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZdoutputNumZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{modbus\_function\_code} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWagoHFAZmodbusZdoutputModbusZfunctionZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWagoHFAZmodbusZdoutputModbusZfunctionZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIseriesZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{iseries\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZdinputIseriesZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdinputIseriesZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldIseriesZdinputCommand}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdinputCommand\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_command\_bytes} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZdinputNumZcommandZbytes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdinputNumZcommandZbytes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIseriesZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{iseries\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZdoutputIseriesZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdoutputIseriesZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldIseriesZdoutputCommand}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdoutputCommand\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_command\_bytes} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIseriesZdoutputNumZcommandZbytes}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIseriesZdoutputNumZcommandZbytes\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCEAAZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZdoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZdoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPfcuZfilterZsummaryDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{pfcu\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZfilterZsummaryPfcuZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZfilterZsummaryPfcuZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZfilterZsummaryModuleZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZfilterZsummaryModuleZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPicomotorZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{picomotor\_controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdinputPicomotorZcontrollerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdinputPicomotorZcontrollerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{driver\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdinputDriverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdinputDriverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdinputChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdinputChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPicomotorZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{picomotor\_controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdoutputPicomotorZcontrollerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdoutputPicomotorZcontrollerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{driver\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdoutputDriverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdoutputDriverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorZdoutputChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorZdoutputChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTrackerZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdinputRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdinputRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdinputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdinputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{location} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdinputLocation}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdinputLocation\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTrackerZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdoutputRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdoutputRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdoutputAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdoutputAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{location} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTrackerZdoutputLocation}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTrackerZdoutputLocation\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCmBHaZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{cm17a\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCmBHaZdoutputCmBHaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCmBHaZdoutputCmBHaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{house\_code} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCmBHaZdoutputHouseZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCmBHaZdoutputHouseZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{device\_code} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCmBHaZdoutputDeviceZcode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCmBHaZdoutputDeviceZcode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpellmanZdfDZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{spellman\_df3\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZdinSpellmanZdfDZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZdinSpellmanZdfDZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_type} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZdinInputZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZdinInputZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpellmanZdfDZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{spellman\_df3\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZdoutSpellmanZdfDZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZdoutSpellmanZdfDZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_type} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpellmanZdfDZdoutOutputZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpellmanZdfDZdoutOutputZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{bkprecision\_912x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZdinBkprecisionZJBCxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZdinBkprecisionZJBCxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{bkprecision\_912x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZdoutBkprecisionZJBCxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZdoutBkprecisionZJBCxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIlmZstatusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{ilm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZstatusIlmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZstatusIlmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZstatusChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZstatusChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIlmZsampleZrateDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{ilm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZsampleZrateIlmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZsampleZrateIlmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIlmZsampleZrateChannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIlmZsampleZrateChannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSystronZdonnerZmBAHDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{gpib\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSystronZdonnerZmBAHGpibZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSystronZdonnerZmBAHGpibZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSystronZdonnerZmBAHAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSystronZdonnerZmBAHAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinkamZtJxZpumpDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{linkam\_t9x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZpumpLinkamZtJxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZpumpLinkamZtJxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSimJIADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{port\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJIAPortZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJIAPortZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeyboardZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{debug} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeyboardZdinputDebug}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeyboardZdinputDebug\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{debug} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldFileZdinputDebug}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFileZdinputDebug\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldFileZdinputFilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFileZdinputFilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAinputZasZdinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{analog\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAinputZasZdinputAnalogZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAinputZasZdinputAnalogZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{low\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAinputZasZdinputLowZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAinputZasZdinputLowZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{high\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAinputZasZdinputHighZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAinputZasZdinputHighZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{threshold\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAinputZasZdinputThresholdZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAinputZasZdinputThresholdZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAoutputZasZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{analog\_output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAoutputZasZdoutputAnalogZoutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAoutputZasZdoutputAnalogZoutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{low\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAoutputZasZdoutputLowZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAoutputZasZdoutputLowZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{high\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAoutputZasZdoutputHighZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAoutputZasZdoutputHighZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{threshold\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAoutputZasZdoutputThresholdZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAoutputZasZdoutputThresholdZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxRelayZasZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{relay\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRelayZasZdoutputRelayZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRelayZasZdoutputRelayZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{use\_inverted\_logic} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRelayZasZdoutputUseZinvertedZlogic}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRelayZasZdoutputUseZinvertedZlogic\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinuxZparportZinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportZinInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportZinInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportZinPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportZinPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinuxZparportZoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportZoutInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportZoutInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldLinuxZparportZoutPortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinuxZparportZoutPortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{default\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZmotorDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmotorDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZmotorDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmotorDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZmotorDefaultZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmotorDefaultZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEFAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAACamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAACamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAASlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAASlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAASubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAASubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{e500\_base\_speed} & ushort & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAAEFAAZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAAEFAAZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{e500\_slew\_speed} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAAEFAAZslewZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAAEFAAZslewZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{acceleration\_time} & ushort & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAAAccelerationZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAAAccelerationZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{correction\_limit} & ushort & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAACorrectionZlimit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAACorrectionZlimit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{lam\_mask} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEFAALamZmask}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEFAALamZmask\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmcCEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{crate\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmcCECrateZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmcCECrateZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmcCESlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmcCESlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{encoder\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmcCEEncoderZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmcCEEncoderZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_steps\_per\_encoder\_tick} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmcCEMotorZstepsZperZencoderZtick}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmcCEMotorZstepsZperZencoderZtick\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmcCEFlags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmcCEFlags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPantherZhiDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{acceleration\_slope} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiAccelerationZslope}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiAccelerationZslope\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{deceleration\_slope} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiDecelerationZslope}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiDecelerationZslope\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{microstep\_divide\_factor} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiMicrostepZdivideZfactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiMicrostepZdivideZfactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{step\_resolution\_mode} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiStepZresolutionZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiStepZresolutionZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{hold\_current} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiHoldZcurrent}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiHoldZcurrent\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{run\_current} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiRunZcurrent}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiRunZcurrent\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{settling\_time\_delay} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiSettlingZtimeZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiSettlingZtimeZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{limit\_polarity} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZhiLimitZpolarity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZhiLimitZpolarity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPantherZheDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{acceleration\_slope} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheAccelerationZslope}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheAccelerationZslope\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{deceleration\_slope} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheDecelerationZslope}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheDecelerationZslope\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{microstep\_divide\_factor} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheMicrostepZdivideZfactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheMicrostepZdivideZfactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{step\_resolution\_mode} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheStepZresolutionZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheStepZresolutionZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{hold\_current} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheHoldZcurrent}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheHoldZcurrent\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{run\_current} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheRunZcurrent}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheRunZcurrent\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{settling\_time\_delay} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheSettlingZtimeZdelay}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheSettlingZtimeZdelay\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{limit\_polarity} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheLimitZpolarity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheLimitZpolarity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{encoder\_resolution} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheEncoderZresolution}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheEncoderZresolution\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{deadband\_size} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheDeadbandZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheDeadbandZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{hunt\_velocity} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheHuntZvelocity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheHuntZvelocity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{hunt\_resolution} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheHuntZresolution}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheHuntZresolution\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stall\_factor} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheStallZfactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheStallZfactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stall\_sample\_rate} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheStallZsampleZrate}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheStallZsampleZrate\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{max\_stall\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPantherZheMaxZstallZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPantherZheMaxZstallZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{pdi40\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEAZmotorPdiEAZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEAZmotorPdiEAZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{stepper\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEAZmotorStepperZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEAZmotorStepperZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmcDCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{gpib\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCGpibZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCGpibZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{multiplication\_factor} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCMultiplicationZfactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCMultiplicationZfactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{start\_velocity} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCStartZvelocity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCStartZvelocity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{peak\_velocity} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCPeakZvelocity}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCPeakZvelocity\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{acceleration\_steps} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmcDCAccelerationZsteps}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmcDCAccelerationZsteps\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmDAEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmDAERsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmDAERsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmDAEAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmDAEAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_encoder\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmDAEAxisZencoderZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmDAEAxisZencoderZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{minimum\_event\_interval} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmDAEMinimumZeventZinterval}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmDAEMinimumZeventZinterval\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMclennanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_encoder\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMclennanAxisZencoderZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMclennanAxisZencoderZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMdriveDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMdriveAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMdriveAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSmartmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorMotorZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorMotorZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{smartmotor\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSmartmotorSmartmotorZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSmartmotorSmartmotorZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmotorPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmotorPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmotorCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmotorCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmotorMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmotorMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZcsZaxisDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{coordinate\_system} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisCoordinateZsystem}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisCoordinateZsystem\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{move\_program\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisMoveZprogramZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisMoveZprogramZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{position\_variable} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisPositionZvariable}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisPositionZvariable\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{destination\_variable} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisDestinationZvariable}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisDestinationZvariable\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{feedrate\_variable} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisFeedrateZvariable}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisFeedrateZvariable\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{acceleration\_time\_variable} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisAccelerationZtimeZvariable}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisAccelerationZtimeZvariable\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{s\_curve\_acceleration\_time\_var} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZcsZaxisSZcurveZaccelerationZtimeZvar}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZcsZaxisSZcurveZaccelerationZtimeZvar\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCompumotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{compumotor\_interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorCompumotorZinterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorCompumotorZinterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorControllerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorControllerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorFlags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorFlags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZmotorServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmotorServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZmotorRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmotorRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDIZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{d8\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDIZmotorDIZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDIZmotorDIZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{drive\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDIZmotorDriveZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDIZmotorDriveZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{d8\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDIZmotorDIZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDIZmotorDIZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVpJAAAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorInterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorInterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{controller\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorControllerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorControllerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{vp9000\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorVpJAAAZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorVpJAAAZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{vp9000\_acceleration} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorVpJAAAZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorVpJAAAZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{vp9000\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVpJAAAZmotorVpJAAAZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVpJAAAZmotorVpJAAAZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEGGCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEGGCRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEGGCRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxHscBZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{hsc1\_interface\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHscBZmotorHscBZinterfaceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBZmotorHscBZinterfaceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHscBZmotorModuleZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBZmotorModuleZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHscBZmotorMotorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHscBZmotorMotorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxStpBAAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{board\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorBoardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorBoardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{positive\_limit\_switch\_pin} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorPositiveZlimitZswitchZpin}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorPositiveZlimitZswitchZpin\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{negative\_limit\_switch\_pin} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorNegativeZlimitZswitchZpin}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorNegativeZlimitZswitchZpin\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{home\_switch\_pin} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorHomeZswitchZpin}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorHomeZswitchZpin\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration\_time} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldStpBAAZmotorDefaultZaccelerationZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldStpBAAZmotorDefaultZaccelerationZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVmeFIZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{vme58\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorVmeFIZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorVmeFIZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorFlags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorFlags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVmeFIZmotorDefaultZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVmeFIZmotorDefaultZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPcstepZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_id} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorAxisZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorAxisZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorDefaultZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorDefaultZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration\_factor} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorDefaultZaccelerationZfactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorDefaultZaccelerationZfactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{lines\_per\_revolution} & ushort & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorLinesZperZrevolution}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorLinesZperZrevolution\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{steps\_per\_revolution} & ushort & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPcstepZmotorStepsZperZrevolution}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPcstepZmotorStepsZperZrevolution\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZmotorScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZmotorScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_motor\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZmotorScipeZmotorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZmotorScipeZmotorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmDAAAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{newport\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmDAAAZmotorNewportZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmDAAAZmotorNewportZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmDAAAZmotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmDAAAZmotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMmEAAAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{newport\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmEAAAZmotorNewportZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmEAAAZmotorNewportZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMmEAAAZmotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMmEAAAZmotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEspZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{newport\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEspZmotorNewportZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEspZmotorNewportZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEspZmotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEspZmotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDacZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDacZmotorDacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDacZmotorDacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLsDDAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{port\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLsDDAZmotorPortZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLsDDAZmotorPortZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLsDDAZmotorBusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLsDDAZmotorBusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{databox\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZmotorDataboxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZmotorDataboxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZmotorAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZmotorAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{steps\_per\_degree} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZmotorStepsZperZdegree}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZmotorStepsZperZdegree\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDisabledZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMardtbZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{mardtb\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZmotorMardtbZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZmotorMardtbZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZmotorMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZmotorMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZmotorDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZmotorDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZmotorDefaultZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZmotorDefaultZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUglideZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{uglide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldUglideZmotorUglideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUglideZmotorUglideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldUglideZmotorAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUglideZmotorAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPhidgetZoldZstepperDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperDefaultZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperDefaultZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_base\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperDefaultZbaseZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperDefaultZbaseZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_acceleration} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPhidgetZoldZstepperDefaultZacceleration}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPhidgetZoldZstepperDefaultZacceleration\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZmotorSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZmotorSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_motor\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldSpecZmotorRemoteZmotorZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZmotorRemoteZmotorZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{spec\_motor\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZmotorSpecZmotorZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZmotorSpecZmotorZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKohzuZscZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{kohzu\_sc\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKohzuZscZmotorKohzuZscZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKohzuZscZmotorKohzuZscZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKohzuZscZmotorAxisZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKohzuZscZmotorAxisZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{kohzu\_sc\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKohzuZscZmotorKohzuZscZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKohzuZscZmotorKohzuZscZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPicomotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{picomotor\_controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorPicomotorZcontrollerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorPicomotorZcontrollerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{driver\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldPicomotorDriverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorDriverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorMotorZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorMotorZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPicomotorFlags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPicomotorFlags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcuCDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcuCRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcuCRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcuCAxisZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcuCAxisZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mcu2\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcuCMcuCZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcuCMcuCZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZmotorBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZmotorBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZmotorBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZmotorBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_acceleration\_time} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZaccelerationZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZaccelerationZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_backlash} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmotorBluiceZbacklash}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmotorBluiceZbacklash\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPtzZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{ptz\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPtzZmotorPtzZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPtzZmotorPtzZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ptz\_motor\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPtzZmotorPtzZmotorZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPtzZmotorPtzZmotorZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSrcZmonoDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrcZmonoRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrcZmonoRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinkamZtJxZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{linkam\_t9x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZmotorLinkamZtJxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZmotorLinkamZtJxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_name} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZmotorAxisZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZmotorAxisZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZmotorInitialZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZmotorInitialZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinkamZtJxZtempDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{linkam\_t9x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZtempLinkamZtJxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZtempLinkamZtJxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_speed} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinkamZtJxZtempInitialZspeed}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinkamZtJxZtempInitialZspeed\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSimJGADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{port\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJGAPortZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJGAPortZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sim960\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJGASimJGAZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJGASimJGAZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJGABusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJGABusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEnergyZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dependent\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEnergyZmotorDependentZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEnergyZmotorDependentZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{d\_spacing\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEnergyZmotorDZspacingZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEnergyZmotorDZspacingZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldEnergyZmotorAngleZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldEnergyZmotorAngleZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWavelengthZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dependent\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavelengthZmotorDependentZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavelengthZmotorDependentZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{d\_spacing\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavelengthZmotorDZspacingZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavelengthZmotorDZspacingZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavelengthZmotorAngleZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavelengthZmotorAngleZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWavenumberZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dependent\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavenumberZmotorDependentZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavenumberZmotorDependentZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{d\_spacing\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavenumberZmotorDZspacingZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavenumberZmotorDZspacingZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWavenumberZmotorAngleZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWavenumberZmotorAngleZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSlitZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{slit\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSlitZmotorSlitZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSlitZmotorSlitZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slit\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSlitZmotorSlitZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSlitZmotorSlitZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{negative\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSlitZmotorNegativeZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSlitZmotorNegativeZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{positive\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSlitZmotorPositiveZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSlitZmotorPositiveZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTranslationZmtrDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{tranlation\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTranslationZmtrTranlationZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTranslationZmtrTranlationZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_motors} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTranslationZmtrNumZmotors}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTranslationZmtrNumZmotors\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_record\_array} & record & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldTranslationZmtrMotorZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTranslationZmtrMotorZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxXafsZwavenumberDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{energy\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldXafsZwavenumberEnergyZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldXafsZwavenumberEnergyZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDeltaZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{moving\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDeltaZmotorMovingZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDeltaZmotorMovingZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{fixed\_position\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDeltaZmotorFixedZpositionZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDeltaZmotorFixedZpositionZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxElapsedZtimeDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{time\_of\_last\_reset} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldElapsedZtimeTimeZofZlastZreset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldElapsedZtimeTimeZofZlastZreset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMonochromatorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{num\_dependencies} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMonochromatorNumZdependencies}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMonochromatorNumZdependencies\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{list\_array} & record & 1 & \textit{num\_dependencies} & $\ifthenelse{\isundefined{\MxFieldMonochromatorListZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMonochromatorListZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLinearZfunctionDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{linear\_function\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionLinearZfunctionZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionLinearZfunctionZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_records} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionNumZrecords}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionNumZrecords\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{record\_array} & record & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionRecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionRecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_scale} & double & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionRealZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionRealZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_offset} & double & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionRealZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionRealZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{move\_fraction} & double & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldLinearZfunctionMoveZfraction}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLinearZfunctionMoveZfraction\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTableZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{table\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTableZmotorTableZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTableZmotorTableZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{axis\_id} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTableZmotorAxisZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTableZmotorAxisZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxThetaZCthetaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{theta\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldThetaZCthetaThetaZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldThetaZCthetaThetaZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{two\_theta\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldThetaZCthetaTwoZthetaZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldThetaZCthetaTwoZthetaZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{theta\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQZmotorThetaZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQZmotorThetaZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{wavelength\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQZmotorWavelengthZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQZmotorWavelengthZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQZmotorAngleZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQZmotorAngleZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSegmentedZmoveDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{real\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSegmentedZmoveRealZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSegmentedZmoveRealZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{segment\_length} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSegmentedZmoveSegmentZlength}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSegmentedZmoveSegmentZlength\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTangentZarmDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{moving\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTangentZarmMovingZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTangentZarmMovingZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_offset\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTangentZarmAngleZoffsetZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTangentZarmAngleZoffsetZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{arm\_length} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTangentZarmArmZlength}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTangentZarmArmZlength\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{tangent\_arm\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTangentZarmTangentZarmZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTangentZarmTangentZarmZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSineZarmDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{moving\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSineZarmMovingZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSineZarmMovingZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{angle\_offset\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSineZarmAngleZoffsetZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSineZarmAngleZoffsetZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{arm\_length} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSineZarmArmZlength}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSineZarmArmZlength\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{tangent\_arm\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSineZarmTangentZarmZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSineZarmTangentZarmZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAframeZdetZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{pseudomotor\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorPseudomotorZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorPseudomotorZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{A\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorAZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorAZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{B\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorBZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorBZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{C\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dv\_downstream\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorDvZdownstreamZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorDvZdownstreamZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dv\_upstream\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorDvZupstreamZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorDvZupstreamZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dh\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAframeZdetZmotorDhZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAframeZdetZmotorDhZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAdscZtwoZthetaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{height\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdscZtwoZthetaHeightZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdscZtwoZthetaHeightZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxRecordZfieldZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{record\_field\_motor\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorRecordZfieldZmotorZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorRecordZfieldZmotorZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{disable\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorDisableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorDisableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command\_in\_progress\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorCommandZinZprogressZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorCommandZinZprogressZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorBusyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorBusyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{move\_absolute\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorMoveZabsoluteZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorMoveZabsoluteZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{get\_position\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorGetZpositionZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorGetZpositionZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{set\_position\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorSetZpositionZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorSetZpositionZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{soft\_abort\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorSoftZabortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorSoftZabortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{immediate\_abort\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorImmediateZabortZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorImmediateZabortZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{positive\_limit\_hit\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorPositiveZlimitZhitZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorPositiveZlimitZhitZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{negative\_limit\_hit\_name} & string & 1 & 81 & $\ifthenelse{\isundefined{\MxFieldRecordZfieldZmotorNegativeZlimitZhitZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRecordZfieldZmotorNegativeZlimitZhitZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxGatedZbacklashDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{real\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGatedZbacklashRealZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGatedZbacklashRealZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gate\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGatedZbacklashGateZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGatedZbacklashGateZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gate\_on} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGatedZbacklashGateZon}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGatedZbacklashGateZon\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gate\_off} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGatedZbacklashGateZoff}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGatedZbacklashGateZoff\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPolynomialZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dependent\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPolynomialZmotorDependentZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPolynomialZmotorDependentZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{polynomial\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPolynomialZmotorPolynomialZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPolynomialZmotorPolynomialZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCubicZsplineZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dependent\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCubicZsplineZmotorDependentZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCubicZsplineZmotorDependentZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{x\_array\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCubicZsplineZmotorXZarrayZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCubicZsplineZmotorXZarrayZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{y\_array\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCubicZsplineZmotorYZarrayZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCubicZsplineZmotorYZarrayZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLimitedZmoveDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{real\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLimitedZmoveRealZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLimitedZmoveRealZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{relative\_negative\_limit} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLimitedZmoveRelativeZnegativeZlimit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLimitedZmoveRelativeZnegativeZlimit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{relative\_positive\_limit} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldLimitedZmoveRelativeZpositiveZlimit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldLimitedZmoveRelativeZpositiveZlimit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAlsZdewarZpositionerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{dewar\_rot\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerDewarZrotZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerDewarZrotZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dewar\_x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerDewarZxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerDewarZxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{vertical\_slide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerVerticalZslideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerVerticalZslideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{small\_slide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerSmallZslideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerSmallZslideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{als\_dewar\_positioner\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerAlsZdewarZpositionerZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerAlsZdewarZpositionerZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dewar\_x\_offset} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerDewarZxZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerDewarZxZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dewar\_rot\_offset} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerDewarZrotZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerDewarZrotZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{puck\_center\_radius} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerPuckZcenterZradius}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerPuckZcenterZradius\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{outer\_sample\_radius} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerOuterZsampleZradius}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerOuterZsampleZradius\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{inner\_sample\_radius} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerInnerZsampleZradius}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerInnerZsampleZradius\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{puck\_orientation\_offset} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAlsZdewarZpositionerPuckZorientationZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAlsZdewarZpositionerPuckZorientationZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBiocatZmirrorZpositionerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{num\_motors} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBiocatZmirrorZpositionerNumZmotors}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBiocatZmirrorZpositionerNumZmotors\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_record\_array} & record & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldBiocatZmirrorZpositionerMotorZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBiocatZmirrorZpositionerMotorZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_scale\_array} & double & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldBiocatZmirrorZpositionerMotorZscaleZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBiocatZmirrorZpositionerMotorZscaleZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCompumotorZlinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinFlags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinFlags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_motors} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinNumZmotors}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinNumZmotors\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_record\_array} & record & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinMotorZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinMotorZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_motor\_scale} & double & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinRealZmotorZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinRealZmotorZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_motor\_offset} & double & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinRealZmotorZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinRealZmotorZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{motor\_move\_fraction} & double & 1 & \textit{num\_motors} & $\ifthenelse{\isundefined{\MxFieldCompumotorZlinMotorZmoveZfraction}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCompumotorZlinMotorZmoveZfraction\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDGEADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkEncoderFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGEACamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGEACamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGEASlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGEASlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGEASubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGEASubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{use\_32bit\_mod} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGEAUseZDCbitZmod}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGEAUseZDCbitZmod\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZscalerMotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZscalerMotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_datapoints} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZscalerNumZdatapoints}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZscalerNumZdatapoints\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{datafile\_name} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldSoftZscalerDatafileZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZscalerDatafileZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_intensity\_modifiers} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZscalerNumZintensityZmodifiers}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZscalerNumZintensityZmodifiers\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{intensity\_modifier\_array} & record & 1 & \textit{num\_intensity\_modifiers} & $\ifthenelse{\isundefined{\MxFieldSoftZscalerIntensityZmodifierZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZscalerIntensityZmodifierZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZscalerServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZscalerServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZscalerRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZscalerRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAutoscaleZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{autoscale\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZscalerAutoscaleZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZscalerAutoscaleZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{autoscale\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZscalerAutoscaleZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZscalerAutoscaleZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{factor} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZscalerFactor}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZscalerFactor\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxGainZtrackingDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{real\_scaler\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGainZtrackingRealZscalerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGainZtrackingRealZscalerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{amplifier\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGainZtrackingAmplifierZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGainZtrackingAmplifierZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gain\_tracking\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGainZtrackingGainZtrackingZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGainZtrackingGainZtrackingZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScalerZfunctionDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{scaler\_function\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionScalerZfunctionZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionScalerZfunctionZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{master\_scaler\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionMasterZscalerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionMasterZscalerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_records} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionNumZrecords}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionNumZrecords\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{record\_array} & record & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionRecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionRecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_scale} & double & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionRealZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionRealZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{real\_offset} & double & 1 & \textit{num\_records} & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionRealZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionRealZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQsEFADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQsEFACamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQsEFACamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQsEFASlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQsEFASlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQsEFASubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQsEFASubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKsDGBADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGBACamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGBACamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGBASlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGBASlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{subaddress} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKsDGBASubaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKsDGBASubaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxOrtecJHEZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{ortec974\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldOrtecJHEZscalerOrtecJHEZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldOrtecJHEZscalerOrtecJHEZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldOrtecJHEZscalerChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldOrtecJHEZscalerChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxOrtecJHEZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{ortec974\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldOrtecJHEZtimerOrtecJHEZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldOrtecJHEZtimerOrtecJHEZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVscBGZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{vsc16\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGZscalerVscBGZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGZscalerVscBGZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{counter\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGZscalerCounterZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGZscalerCounterZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxVscBGZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{vsc16\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGZtimerVscBGZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGZtimerVscBGZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{counter\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGZtimerCounterZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGZtimerCounterZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{clock\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldVscBGZtimerClockZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldVscBGZtimerClockZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZscalerPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZscalerPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZscalerLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZscalerLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZtimerPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZtimerPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZtimerLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZtimerLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZscalerScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZscalerScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_scaler\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZscalerScipeZscalerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZscalerScipeZscalerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZtimerScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZtimerScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_timer\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZtimerScipeZtimerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZtimerScipeZtimerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{clock\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZtimerClockZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZtimerClockZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZchannelDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{mca\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZchannelMcaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZchannelMcaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZchannelChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZchannelChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZroiZintegralDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{mca\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZroiZintegralMcaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZroiZintegralMcaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{roi\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZroiZintegralRoiZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZroiZintegralRoiZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZaltZtimeDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{time\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZaltZtimeTimeZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZaltZtimeTimeZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{timer\_scale} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZaltZtimeTimerZscale}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZaltZtimeTimerZscale\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcsZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZscalerMcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZscalerMcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scaler\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZscalerScalerZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZscalerScalerZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{databox\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZscalerDataboxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZscalerDataboxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZscalerSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZscalerSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_scaler\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldSpecZscalerRemoteZscalerZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZscalerRemoteZscalerZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxGmBAZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGmBAZscalerRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGmBAZscalerRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFunctionZgeneratorZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{amplitude} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldFunctionZgeneratorZscalerAmplitude}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFunctionZgeneratorZscalerAmplitude\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldFunctionZgeneratorZscalerFrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFunctionZgeneratorZscalerFrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{function} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldFunctionZgeneratorZscalerFunction}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFunctionZgeneratorZscalerFunction\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcsZencoderDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMceFields} \\
    \hline
    \textit{associated\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZencoderAssociatedZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZencoderAssociatedZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZencoderMcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZencoderMcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{down\_channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZencoderDownZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZencoderDownZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{up\_channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZencoderUpZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZencoderUpZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxZencoderDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMceFields} \\
    \hline
    \textit{associated\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZencoderAssociatedZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZencoderAssociatedZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{databox\_mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZencoderDataboxZmcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZencoderDataboxZmcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZmceDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMceFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZmceServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmceServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZmceRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmceRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcsZtimeZmceDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMceFields} \\
    \hline
    \textit{associated\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZtimeZmceAssociatedZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZtimeZmceAssociatedZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZtimeZmceMcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZtimeZmceMcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZmceDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMceFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmcePmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmcePmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmceCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmceCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmceMcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmceMcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{down\_channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmceDownZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmceDownZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{up\_channel} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmceUpZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmceUpZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{plc\_program\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZmcePlcZprogramZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZmcePlcZprogramZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZtimerServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZtimerServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZtimerRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZtimerRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTimerZfanoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{num\_timers} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTimerZfanoutNumZtimers}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTimerZfanoutNumZtimers\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{timer\_record\_array} & record & 1 & \textit{num\_timers} & $\ifthenelse{\isundefined{\MxFieldTimerZfanoutTimerZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTimerZfanoutTimerZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxRtcABIDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{camac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRtcABICamacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRtcABICamacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{slot} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRtcABISlot}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRtcABISlot\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcaZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{mca\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZtimerMcaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZtimerMcaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{use\_real\_time} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcaZtimerUseZrealZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcaZtimerUseZrealZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcsZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{mcs\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMcsZtimerMcsZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMcsZtimerMcsZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{databox\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZtimerDataboxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZtimerDataboxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPfcuZshutterZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{pfcu\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZshutterZtimerPfcuZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZshutterZtimerPfcuZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZshutterZtimerModuleZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZshutterZtimerModuleZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZtimerSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZtimerSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxGmBAZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{num\_scalers} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGmBAZtimerNumZscalers}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGmBAZtimerNumZscalers\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scaler\_record\_array} & record & 1 & \textit{num\_scalers} & $\ifthenelse{\isundefined{\MxFieldGmBAZtimerScalerZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGmBAZtimerScalerZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIntervalZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZtimerBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZtimerBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZtimerBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZtimerBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dhs\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZtimerDhsZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZtimerDhsZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZtimerBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZtimerBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZtimerBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZtimerBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dhs\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZtimerDhsZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZtimerDhsZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAreaZdetectorZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{area\_detector\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAreaZdetectorZtimerAreaZdetectorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAreaZdetectorZtimerAreaZdetectorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZamplifierServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZamplifierServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZamplifierRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZamplifierRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetZamplifierServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetZamplifierServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetZamplifierRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetZamplifierRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyECIDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{gpib\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyECIGpibZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyECIGpibZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSrFHADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHARsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHARsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bias\_voltage} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHABiasZvoltage}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHABiasZvoltage\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{filter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHAFilterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHAFilterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{lowpass\_filter\_3db\_point} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHALowpassZfilterZDdbZpoint}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHALowpassZfilterZDdbZpoint\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{highpass\_filter\_3db\_point} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHAHighpassZfilterZDdbZpoint}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHAHighpassZfilterZDdbZpoint\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gain\_mode} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHAGainZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHAGainZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{invert\_signal} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSrFHAInvertZsignal}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSrFHAInvertZsignal\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUdtZtrampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{doutput\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldUdtZtrampDoutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUdtZtrampDoutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCHAAZampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCHAAZampControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCHAAZampControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{system\_channel} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCHAAZampSystemZchannel}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCHAAZampSystemZchannel\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxKeithleyCEAAZampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZampControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZampControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{io\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldKeithleyCEAAZampIoZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldKeithleyCEAAZampIoZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSimJIDDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{port\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSimJIDPortZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSimJIDPortZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIEAEZampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{i404\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIEAEZampIEAEZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIEAEZampIEAEZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScipeZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{scipe\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScipeZamplifierScipeZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZamplifierScipeZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{scipe\_amplifier\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldScipeZamplifierScipeZamplifierZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScipeZamplifierScipeZamplifierZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZadcmodCZamplifierDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{aps\_adcmod2\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCZamplifierApsZadcmodCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCZamplifierApsZadcmodCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{amplifier\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCZamplifierAmplifierZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCZamplifierAmplifierZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxApsZadcmodCZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{aps\_adcmod2\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCZainputApsZadcmodCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCZainputApsZadcmodCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ainput\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldApsZadcmodCZainputAinputZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldApsZadcmodCZainputAinputZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIcplusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIcplusZcurrentDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZcurrentIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZcurrentIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_name} & string & 1 & 10 & $\ifthenelse{\isundefined{\MxFieldIcplusZcurrentValueZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZcurrentValueZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIcplusZvoltageDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZvoltageIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZvoltageIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_name} & string & 1 & 10 & $\ifthenelse{\isundefined{\MxFieldIcplusZvoltageValueZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZvoltageValueZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIcplusZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZdinIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZdinIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZdinPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZdinPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIcplusZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZdoutIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZdoutIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIcplusZdoutPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIcplusZdoutPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAmplifierFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{default\_averaging} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmDefaultZaveraging}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmDefaultZaveraging\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{qbpm\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmQbpmZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmQbpmZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmZainDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZainIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZainIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_name} & string & 1 & 10 & $\ifthenelse{\isundefined{\MxFieldQbpmZainValueZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZainValueZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZaoutIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZaoutIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{value\_name} & string & 1 & 10 & $\ifthenelse{\isundefined{\MxFieldQbpmZaoutValueZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZaoutValueZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmZdinDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZinputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZdinIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZdinIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZdinPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZdinPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmZdoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZdoutIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZdoutIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZdoutPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZdoutPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxQbpmZmcaiDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaiFields} \\
    \hline
    \textit{icplus\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldQbpmZmcaiIcplusZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldQbpmZmcaiIcplusZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZmcaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaFields} \\
    \hline
    \textit{filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldSoftZmcaFilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmcaFilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMonteZcarloZmcaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaFields} \\
    \hline
    \textit{time\_step\_size} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMonteZcarloZmcaTimeZstepZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMonteZcarloZmcaTimeZstepZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_sources} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMonteZcarloZmcaNumZsources}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMonteZcarloZmcaNumZsources\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{source\_string\_array} & string & 2 & ( \textit{num\_sources}, 80 ) & $\ifthenelse{\isundefined{\MxFieldMonteZcarloZmcaSourceZstringZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMonteZcarloZmcaSourceZstringZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZmcaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcaServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcaServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcaRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcaRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxRoentecZrclZmcaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldRoentecZrclZmcaRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldRoentecZrclZmcaRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZmcsDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{starting\_position} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZmcsStartingZposition}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmcsStartingZposition\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{delta\_position} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZmcsDeltaZposition}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmcsDeltaZposition\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{soft\_scaler\_record\_array} & record & 1 & \textit{maximum\_num\_scalers} & $\ifthenelse{\isundefined{\MxFieldSoftZmcsSoftZscalerZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZmcsSoftZscalerZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZmcsDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcsServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcsServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcsRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcsRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxScalerZfunctionZmcsDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{scaler\_function\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldScalerZfunctionZmcsScalerZfunctionZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldScalerZfunctionZmcsScalerZfunctionZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDataboxZmcsDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{databox\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDataboxZmcsDataboxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDataboxZmcsDataboxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSisDIABDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcsFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldSisDIABAddressZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABAddressZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sis3801\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABSisDIABZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABSisDIABZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{control\_input\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABControlZinputZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABControlZinputZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZrelayDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZrelayServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZrelayServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZrelayRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZrelayRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxGenericZrelayDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{grelay\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayGrelayZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayGrelayZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{settling\_time} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelaySettlingZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelaySettlingZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayInputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayInputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayInputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayInputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_input\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayNumZinputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayNumZinputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{closed\_input\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayClosedZinputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayClosedZinputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_input\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayOpenZinputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayOpenZinputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayOutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayOutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayOutputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayOutputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_output\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayNumZoutputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayNumZoutputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{close\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayCloseZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayCloseZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldGenericZrelayOpenZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldGenericZrelayOpenZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBlindZrelayDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{settling\_time} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelaySettlingZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelaySettlingZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelayOutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelayOutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelayOutputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelayOutputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_output\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelayNumZoutputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelayNumZoutputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{close\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelayCloseZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelayCloseZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBlindZrelayOpenZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBlindZrelayOpenZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPulsedZrelayDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{prelay\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayPrelayZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayPrelayZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{settling\_time} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelaySettlingZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelaySettlingZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayInputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayInputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{input\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayInputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayInputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_input\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayNumZinputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayNumZinputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{closed\_input\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayClosedZinputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayClosedZinputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_input\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayOpenZinputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayOpenZinputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayOutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayOutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_bit\_offset} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayOutputZbitZoffset}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayOutputZbitZoffset\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_output\_bits} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayNumZoutputZbits}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayNumZoutputZbits\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{close\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayCloseZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayCloseZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{close\_idle\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayCloseZidleZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayCloseZidleZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_output\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayOpenZoutputZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayOpenZoutputZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{open\_idle\_value} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayOpenZidleZvalue}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayOpenZidleZvalue\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pulse\_time} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPulsedZrelayPulseZtime}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPulsedZrelayPulseZtime\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPfcuZfilterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{pfcu\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZfilterPfcuZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZfilterPfcuZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZfilterModuleZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZfilterModuleZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{filter\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZfilterFilterZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZfilterFilterZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPfcuZshutterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{pfcu\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZshutterPfcuZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZshutterPfcuZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{module\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPfcuZshutterModuleZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPfcuZshutterModuleZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMarccdZshutterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{marccd\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMarccdZshutterMarccdZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdZshutterMarccdZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMardtbZshutterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{mardtb\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMardtbZshutterMardtbZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMardtbZshutterMardtbZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZshutterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZshutterBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZshutterBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZshutterBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZshutterBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZshutterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkRelayFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZshutterBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZshutterBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZshutterBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZshutterBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAdcZtableDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTableFields} \\
    \hline
    \textit{motor\_record\_array} & record & 1 & 6 & $\ifthenelse{\isundefined{\MxFieldAdcZtableMotorZrecordZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableMotorZrecordZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{m1} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableMB}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableMB\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{m2} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableMC}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableMC\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{m3} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableMD}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableMD\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{rx} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableRx}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableRx\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ry} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableRy}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableRy\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{rz} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAdcZtableRz}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAdcZtableRz\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAutoscaleZfilterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAutoscaleFields} \\
    \hline
    \textit{minimum\_filter\_setting} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZfilterMinimumZfilterZsetting}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZfilterMinimumZfilterZsetting\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_filter\_setting} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZfilterMaximumZfilterZsetting}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZfilterMaximumZfilterZsetting\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAutoscaleZampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAutoscaleFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAutoscaleZnetDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAutoscaleFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZnetServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZnetServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldAutoscaleZnetRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoscaleZnetRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAutoZfilterZampDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAutoscaleFields} \\
    \hline
    \textit{minimum\_filter\_setting} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoZfilterZampMinimumZfilterZsetting}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoZfilterZampMinimumZfilterZsetting\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_filter\_setting} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoZfilterZampMaximumZfilterZsetting}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoZfilterZampMaximumZfilterZsetting\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{amplifier\_autoscale\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAutoZfilterZampAmplifierZautoscaleZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAutoZfilterZampAmplifierZautoscaleZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZpulserDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZpulserServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZpulserServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZpulserRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZpulserRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSisDIAHZpulserDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{sis3807\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHZpulserSisDIAHZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHZpulserSisDIAHZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{channel\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHZpulserChannelZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHZpulserChannelZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{invert\_output} & bool & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHZpulserInvertZoutput}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHZpulserInvertZoutput\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sis3807\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIAHZpulserSisDIAHZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIAHZpulserSisDIAHZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSisDIABZpulserDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{vme\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserVmeZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserVmeZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address\_mode\_name} & string & 1 & 4 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserAddressZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserAddressZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{crate\_number} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserCrateZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserCrateZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{base\_address} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserBaseZaddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserBaseZaddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sis3801\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserSisDIABZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserSisDIABZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{control\_input\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSisDIABZpulserControlZinputZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSisDIABZpulserControlZinputZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPdiEFZpulserDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{pdi45\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZpulserPdiEFZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZpulserPdiEFZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{line\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPdiEFZpulserLineZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPdiEFZpulserLineZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDigitalZoutputZpulserDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPulseZgeneratorFields} \\
    \hline
    \textit{digital\_output\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDigitalZoutputZpulserDigitalZoutputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDigitalZoutputZpulserDigitalZoutputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{digital\_output\_pulser\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldDigitalZoutputZpulserDigitalZoutputZpulserZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldDigitalZoutputZpulserDigitalZoutputZpulserZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZscaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScaFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZscaDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScaFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZscaServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZscaServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZscaRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZscaRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCyberstarZxBAAADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScaFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCyberstarZxBAAARsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCyberstarZxBAAARsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{address} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCyberstarZxBAAAAddress}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCyberstarZxBAAAAddress\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{forced\_remote\_control} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCyberstarZxBAAAForcedZremoteZcontrol}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCyberstarZxBAAAForcedZremoteZcontrol\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCyberstarZxBAAAZaoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{cyberstar\_x1000\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCyberstarZxBAAAZaoutCyberstarZxBAAAZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCyberstarZxBAAAZaoutCyberstarZxBAAAZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{output\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCyberstarZxBAAAZaoutOutputZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCyberstarZxBAAAZaoutOutputZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZsampleZchangerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSampleZchangerFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZsampleZchangerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSampleZchangerFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZsampleZchangerServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZsampleZchangerServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZsampleZchangerRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZsampleZchangerRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSercatZalsZrobotDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSampleZchangerFields} \\
    \hline
    \textit{dewar\_positioner\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotDewarZpositionerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotDewarZpositionerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{horizontal\_slide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotHorizontalZslideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotHorizontalZslideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{vertical\_slide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotVerticalZslideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotVerticalZslideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{sample\_rotation\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotSampleZrotationZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotSampleZrotationZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{small\_slide\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotSmallZslideZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotSmallZslideZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gripper\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotGripperZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotGripperZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{cooldown\_delay\_ms} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotCooldownZdelayZms}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotCooldownZdelayZms\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{relay\_delay\_ms} & ulong & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSercatZalsZrobotRelayZdelayZms}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSercatZalsZrobotRelayZdelayZms\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZmcaiDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaiFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcaiServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcaiServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZmcaiRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZmcaiRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIEAEZmcaiDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMcaiFields} \\
    \hline
    \textit{i404\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIEAEZmcaiIEAEZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIEAEZmcaiIEAEZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mcai\_type\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldIEAEZmcaiMcaiZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIEAEZmcaiMcaiZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZptzDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPtzFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZptzDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPtzFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZptzServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZptzServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZptzRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZptzRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSonyZviscaZptzDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPtzFields} \\
    \hline
    \textit{visca\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSonyZviscaZptzViscaZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSonyZviscaZptzViscaZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSonyZviscaZptzCameraZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSonyZviscaZptzCameraZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxHitachiZkpZdCADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPtzFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldHitachiZkpZdCARsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldHitachiZkpZdCARsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPanasonicZkxZdpHACZptzDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPtzFields} \\
    \hline
    \textit{kx\_dp702\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPanasonicZkxZdpHACZptzKxZdpHACZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPanasonicZkxZdpHACZptzKxZdpHACZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPanasonicZkxZdpHACZptzCameraZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPanasonicZkxZdpHACZptzCameraZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZvinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkVideoZinputFields} \\
    \hline
    \textit{image\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZvinputImageZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZvinputImageZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{image\_parameters} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldSoftZvinputImageZparameters}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZvinputImageZparameters\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZvinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkVideoZinputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZvinputServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZvinputServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZvinputRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZvinputRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZvinputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkVideoZinputFields} \\
    \hline
    \textit{file\_format\_name} & string & 1 & 10 & $\ifthenelse{\isundefined{\MxFieldFileZvinputFileZformatZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFileZvinputFileZformatZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{directory\_name} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldFileZvinputDirectoryZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFileZvinputDirectoryZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSoftZareaZdetectorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{video\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZareaZdetectorVideoZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZareaZdetectorVideoZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_trigger\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSoftZareaZdetectorInitialZtriggerZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSoftZareaZdetectorInitialZtriggerZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZareaZdetectorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZareaZdetectorServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZareaZdetectorServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZareaZdetectorRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZareaZdetectorRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPccdZBHABHADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{video\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAVideoZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAVideoZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_link\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHACameraZlinkZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHACameraZlinkZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_head\_trigger\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHACameraZheadZtriggerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHACameraZheadZtriggerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{external\_arm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAExternalZarmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAExternalZarmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_trigger\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAInitialZtriggerZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAInitialZtriggerZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{aviex\_pccd\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAAviexZpccdZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAAviexZpccdZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_spline\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAGeometricalZsplineZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAGeometricalZsplineZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_mask\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHAGeometricalZmaskZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHAGeometricalZmaskZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{linearity\_lookup\_table\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBHABHALinearityZlookupZtableZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBHABHALinearityZlookupZtableZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPccdZEICEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{video\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEVideoZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEVideoZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_link\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICECameraZlinkZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICECameraZlinkZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_head\_trigger\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICECameraZheadZtriggerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICECameraZheadZtriggerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{external\_arm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEExternalZarmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEExternalZarmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_trigger\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEInitialZtriggerZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEInitialZtriggerZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{aviex\_pccd\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEAviexZpccdZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEAviexZpccdZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_spline\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEGeometricalZsplineZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEGeometricalZsplineZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_mask\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZEICEGeometricalZmaskZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICEGeometricalZmaskZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{linearity\_lookup\_table\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZEICELinearityZlookupZtableZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZEICELinearityZlookupZtableZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPccdZBGAIADriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{video\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAVideoZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAVideoZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_link\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIACameraZlinkZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIACameraZlinkZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_head\_trigger\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIACameraZheadZtriggerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIACameraZheadZtriggerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{external\_arm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAExternalZarmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAExternalZarmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_trigger\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAInitialZtriggerZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAInitialZtriggerZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{aviex\_pccd\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAAviexZpccdZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAAviexZpccdZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_spline\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAGeometricalZsplineZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAGeometricalZsplineZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_mask\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIAGeometricalZmaskZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIAGeometricalZmaskZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{linearity\_lookup\_table\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZBGAIALinearityZlookupZtableZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZBGAIALinearityZlookupZtableZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPccdZJHIFDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{video\_input\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFVideoZinputZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFVideoZinputZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_link\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFCameraZlinkZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFCameraZlinkZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{camera\_head\_trigger\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFCameraZheadZtriggerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFCameraZheadZtriggerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{external\_arm\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFExternalZarmZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFExternalZarmZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{initial\_trigger\_mode} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFInitialZtriggerZmode}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFInitialZtriggerZmode\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{aviex\_pccd\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFAviexZpccdZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFAviexZpccdZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_spline\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFGeometricalZsplineZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFGeometricalZsplineZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{geometrical\_mask\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFGeometricalZmaskZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFGeometricalZmaskZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{linearity\_lookup\_table\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldPccdZJHIFLinearityZlookupZtableZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPccdZJHIFLinearityZlookupZtableZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMarccdDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{marccd\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMarccdMarccdZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdMarccdZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pulse\_generator\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMarccdPulseZgeneratorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdPulseZgeneratorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMarccdZserverZsocketDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{marccd\_host} & string & 1 & 101 & $\ifthenelse{\isundefined{\MxFieldMarccdZserverZsocketMarccdZhost}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdZserverZsocketMarccdZhost\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{marccd\_port} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMarccdZserverZsocketMarccdZport}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdZserverZsocketMarccdZport\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_filename\_prefix} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMarccdZserverZsocketRemoteZfilenameZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdZserverZsocketRemoteZfilenameZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{local\_filename\_prefix} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMarccdZserverZsocketLocalZfilenameZprefix}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarccdZserverZsocketLocalZfilenameZprefix\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZareaZdetectorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZareaZdetectorBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZareaZdetectorBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_dhs\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZareaZdetectorBluiceZdhsZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZareaZdetectorBluiceZdhsZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZareaZdetectorBluiceZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZareaZdetectorBluiceZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZareaZdetectorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_dhs\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorBluiceZdhsZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorBluiceZdhsZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorBluiceZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorBluiceZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{detector\_distance\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorDetectorZdistanceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorDetectorZdistanceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{wavelength\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorWavelengthZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorWavelengthZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{detector\_x\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorDetectorZxZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorDetectorZxZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{detector\_y\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZareaZdetectorDetectorZyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZareaZdetectorDetectorZyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMlfsomDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{energy\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMlfsomEnergyZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomEnergyZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{phi\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMlfsomPhiZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomPhiZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{detector\_distance\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMlfsomDetectorZdistanceZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomDetectorZdistanceZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{work\_directory} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMlfsomWorkZdirectory}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomWorkZdirectory\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pdb\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMlfsomPdbZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomPdbZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ano\_sfall\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMlfsomAnoZsfallZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomAnoZsfallZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mlfsom\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMlfsomMlfsomZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMlfsomMlfsomZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMarDEFDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAreaZdetectorFields} \\
    \hline
    \textit{port\_type\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldMarDEFPortZtypeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarDEFPortZtypeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_args\_1} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldMarDEFPortZargsZB}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarDEFPortZargsZB\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_args\_2} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMarDEFPortZargsZC}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarDEFPortZargsZC\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_args\_3} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldMarDEFPortZargsZD}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMarDEFPortZargsZD\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryostreamGAAZstatusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{cryostream600\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryostreamGAAZstatusCryostreamGAAZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryostreamGAAZstatusCryostreamGAAZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryostreamGAAZstatusParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryostreamGAAZstatusParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryostreamGAAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{rs232\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryostreamGAAZmotorRsCDCZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryostreamGAAZmotorRsCDCZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{ramp\_rate} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryostreamGAAZmotorRampZrate}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryostreamGAAZmotorRampZrate\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryostreamGAAZmotorBusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryostreamGAAZmotorBusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSiJGFAZstatusDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{si9650\_motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSiJGFAZstatusSiJGFAZmotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSiJGFAZstatusSiJGFAZmotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSiJGFAZstatusParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSiJGFAZstatusParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSiJGFAZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{controller\_interface} & interface & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSiJGFAZmotorControllerZinterface}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSiJGFAZmotorControllerZinterface\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{maximum\_ramp\_rate} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSiJGFAZmotorMaximumZrampZrate}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSiJGFAZmotorMaximumZrampZrate\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSiJGFAZmotorBusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSiJGFAZmotorBusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxItcFADZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZainputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZainputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxItcFADZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZaoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZaoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZaoutputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZaoutputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxItcFADZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZdoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZdoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZdoutputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZdoutputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxItcFADZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZmotorControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZmotorControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldItcFADZmotorBusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldItcFADZmotorBusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryojetZainputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZinputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZainputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZainputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZainputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZainputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryojetZaoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAnalogZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZaoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZaoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZaoutputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZaoutputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryojetZdoutputDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkDigitalZoutputFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZdoutputControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZdoutputControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{parameter\_type} & char & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZdoutputParameterZtype}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZdoutputParameterZtype\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCryojetZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{controller\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZmotorControllerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZmotorControllerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_deadband} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldCryojetZmotorBusyZdeadband}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldCryojetZmotorBusyZdeadband\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAmJFBDZmotorDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkMotorFields} \\
    \hline
    \textit{num\_counters} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorNumZcounters}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorNumZcounters\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{am9513\_interface\_array} & interface & 1 & \textit{num\_counters} & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorAmJFBDZinterfaceZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorAmJFBDZinterfaceZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{direction\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorDirectionZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorDirectionZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{direction\_bit} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorDirectionZbit}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorDirectionZbit\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{clock\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorClockZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorClockZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{step\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorStepZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorStepZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{busy\_retries} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZmotorBusyZretries}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZmotorBusyZretries\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAmJFBDZscalerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkScalerFields} \\
    \hline
    \textit{num\_counters} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZscalerNumZcounters}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZscalerNumZcounters\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{am9513\_interface\_array} & interface & 1 & \textit{num\_counters} & $\ifthenelse{\isundefined{\MxFieldAmJFBDZscalerAmJFBDZinterfaceZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZscalerAmJFBDZinterfaceZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{gating\_control} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZscalerGatingZcontrol}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZscalerGatingZcontrol\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{count\_source} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZscalerCountZsource}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZscalerCountZsource\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxAmJFBDZtimerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkTimerFields} \\
    \hline
    \textit{num\_counters} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZtimerNumZcounters}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZtimerNumZcounters\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{am9513\_interface\_array} & interface & 1 & \textit{num\_counters} & $\ifthenelse{\isundefined{\MxFieldAmJFBDZtimerAmJFBDZinterfaceZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZtimerAmJFBDZinterfaceZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{clock\_frequency} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldAmJFBDZtimerClockZfrequency}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldAmJFBDZtimerClockZfrequency\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetworkZwvoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkWaveformZoutputFields} \\
    \hline
    \textit{server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldNetworkZwvoutServerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZwvoutServerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{remote\_record\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldNetworkZwvoutRemoteZrecordZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldNetworkZwvoutRemoteZrecordZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBkprecisionZJBCxZwvoutDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkWaveformZoutputFields} \\
    \hline
    \textit{bkprecision\_912x\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZwvoutBkprecisionZJBCxZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZwvoutBkprecisionZJBCxZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{list\_mode\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZwvoutListZmodeZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZwvoutListZmodeZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{list\_unit\_name} & string & 1 & 20 & $\ifthenelse{\isundefined{\MxFieldBkprecisionZJBCxZwvoutListZunitZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBkprecisionZJBCxZwvoutListZunitZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxInputZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkLinearZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMotorZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkLinearZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCthetaZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkLinearZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSlitZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkLinearZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPseudomotorZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkLinearZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZlistZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkListZscanFields} \\
    \hline
    \textit{position\_filename} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldFileZlistZscanPositionZfilename}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldFileZlistZscanPositionZfilename\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxXafsZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkXafsZscanZclassFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMcsZqscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkQuickZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxEnergyZmcsZqscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkQuickZscanFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxWedgeZscanDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkAdZscanZclassFields} \\
    \hline
    \textit{wedge\_size} & double & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldWedgeZscanWedgeZsize}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldWedgeZscanWedgeZsize\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxStringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxCharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUcharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxShortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUshortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBoolDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxLongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIntGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUintGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFloatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxDoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxRecordDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkInlineFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZcharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZucharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZshortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZushortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZboolDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZulongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZintGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZuintGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZfloatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxNetZrecordDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetZvariableFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxMathopDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCalcFields} \\
    \hline
    \textit{num\_items} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMathopNumZitems}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMathopNumZitems\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{item\_to\_change} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMathopItemZtoZchange}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMathopItemZtoZchange\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{mathop\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldMathopMathopZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMathopMathopZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{operation\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldMathopOperationZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMathopOperationZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{item\_array} & string & 2 & ( \textit{num\_items}, 40 ) & $\ifthenelse{\isundefined{\MxFieldMathopItemZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldMathopItemZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPositionZselectDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCalcFields} \\
    \hline
    \textit{motor\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPositionZselectMotorZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPositionZselectMotorZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_positions} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPositionZselectNumZpositions}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPositionZselectNumZpositions\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{position\_array} & double & 1 & \textit{num\_positions} & $\ifthenelse{\isundefined{\MxFieldPositionZselectPositionZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPositionZselectPositionZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxIndirectZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkCalcFields} \\
    \hline
    \textit{format} & string & 1 & 250 & $\ifthenelse{\isundefined{\MxFieldIndirectZstringFormat}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIndirectZstringFormat\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{num\_fields} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldIndirectZstringNumZfields}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIndirectZstringNumZfields\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{record\_field\_array} & record\_field & 1 & \textit{num\_fields} & $\ifthenelse{\isundefined{\MxFieldIndirectZstringRecordZfieldZarray}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldIndirectZstringRecordZfieldZarray\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPmacFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZlongPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZlongPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZlongCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZlongCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZlongPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZlongPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZulongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPmacFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZulongPmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZulongPmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZulongCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZulongCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZulongPmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZulongPmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxPmacZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkPmacFields} \\
    \hline
    \textit{pmac\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdoublePmacZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoublePmacZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{card\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldPmacZdoubleCardZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoubleCardZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{pmac\_variable\_name} & string & 1 & 8 & $\ifthenelse{\isundefined{\MxFieldPmacZdoublePmacZvariableZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldPmacZdoublePmacZvariableZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZstringSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZstringSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZstringPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZstringPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZcharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZcharSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZcharSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZcharPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZcharPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZucharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZucharSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZucharSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZucharPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZucharPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZshortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZshortSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZshortSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZshortPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZshortPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZushortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZushortSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZushortSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZushortPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZushortPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZlongSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZlongSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZlongPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZlongPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZulongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZulongSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZulongSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZulongPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZulongPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZfloatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZfloatSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZfloatSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZfloatPropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZfloatPropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecZpropertyFields} \\
    \hline
    \textit{spec\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldSpecZdoubleSpecZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZdoubleSpecZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{property\_name} & string & 1 & 80 & $\ifthenelse{\isundefined{\MxFieldSpecZdoublePropertyZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZdoublePropertyZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZmasterDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZmasterBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZmasterBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZcommandDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZcommandBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZcommandBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZstringBluiceZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZstringBluiceZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZstringBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZstringBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZstringBluiceZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZstringBluiceZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZstringBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZstringBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZselfZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZselfZstringBluiceZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZselfZstringBluiceZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZselfZstringBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZselfZstringBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZoperationDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZoperationBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZoperationBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZoperationBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZoperationBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZoperationDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZoperationBluiceZserverZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZoperationBluiceZserverZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZoperationBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZoperationBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZselfZoperationDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceZvariableFields} \\
    \hline
    \textit{bluice\_server\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZselfZoperationBluiceZserverZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZselfZoperationBluiceZserverZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZselfZoperationBluiceZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZselfZoperationBluiceZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFileFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFileFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZulongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFileFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFileZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFileFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZstringDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZcharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZucharDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZshortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZushortDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZboolDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZlongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZulongDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZintGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZuintGEDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZfloatDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZdoubleDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxFieldZrecordDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkFieldFields} \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTcpZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetworkFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldTcpZserverHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpZserverHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTcpZserverPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpZserverPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxTcpipZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetworkFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldTcpipZserverHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpipZserverHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldTcpipZserverPort}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldTcpipZserverPort\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxUnixZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkNetworkFields} \\
    \hline
    \textit{pathname} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldUnixZserverPathname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldUnixZserverPathname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxSpecZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkSpecFields} \\
    \hline
    \textit{server\_id} & string & 1 & 120 & $\ifthenelse{\isundefined{\MxFieldSpecZserverServerZid}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldSpecZserverServerZid\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdcssZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceFields} \\
    \hline
    \textit{hostname} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZserverHostname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZserverHostname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZserverPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZserverPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{appname} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZserverAppname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZserverAppname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{authentication\_data} & string & 1 & 100 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZserverAuthenticationZdata}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZserverAuthenticationZdata\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_dcss\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdcssZserverBluiceZdcssZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdcssZserverBluiceZdcssZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZserverDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkBluiceFields} \\
    \hline
    \textit{dhs\_manager\_record} & record & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZserverDhsZmanagerZrecord}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZserverDhsZmanagerZrecord\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{dhs\_name} & string & 1 & 40 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZserverDhsZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZserverDhsZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_dhs\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZserverBluiceZdhsZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZserverBluiceZdhsZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxBluiceZdhsZmanagerDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkControllerFields} \\
    \hline
    \textit{port\_number} & long & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmanagerPortZnumber}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmanagerPortZnumber\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{bluice\_dhs\_manager\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldBluiceZdhsZmanagerBluiceZdhsZmanagerZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldBluiceZdhsZmanagerBluiceZdhsZmanagerZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \newcommand{\MxExternalZcommandDriverFields}{
    \begin{tabularx}{1.0\textwidth}{@{\extracolsep{\fill}} |c|c|c|c|X|}
    \hline
    \MxTextFieldName & \MxTextFieldType & \MxTextNumDimensions
            & \MxTextSizes & \MxTextDescription \\
    \hline
    \multicolumn{5}{|c|}{\MxLinkProgramFields} \\
    \hline
    \textit{external\_command\_flags} & hex & 0 & 0 & $\ifthenelse{\isundefined{\MxFieldExternalZcommandExternalZcommandZflags}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldExternalZcommandExternalZcommandZflags\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command\_name} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldExternalZcommandCommandZname}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldExternalZcommandCommandZname\vspace*{3mm}\end{varwidth}}$ \\
    \hline
    \textit{command\_arguments} & string & 1 & 4096 & $\ifthenelse{\isundefined{\MxFieldExternalZcommandCommandZarguments}}{\relax}{\begin{varwidth}{1.0\linewidth}\raggedright\vspace*{1mm}\MxFieldExternalZcommandCommandZarguments\vspace*{3mm}\end{varwidth}}$ \\
    \hline
  \end{tabularx}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
