\hypertarget{classutl_1_1spi__i}{}\section{utl\+:\+:spi\+\_\+i$<$ impl\+\_\+t $>$ Class Template Reference} \label{classutl_1_1spi__i}\index{utl\+::spi\+\_\+i$<$ impl\+\_\+t $>$@{utl\+::spi\+\_\+i$<$ impl\+\_\+t $>$}} {\ttfamily \#include $<$spi.\+h$>$} Inheritance diagram for utl\+:\+:spi\+\_\+i$<$ impl\+\_\+t $>$\+:\begin{figure}[H] \begin{center} \leavevmode \includegraphics[height=2.000000cm]{classutl_1_1spi__i} \end{center} \end{figure} \subsection*{Public Types} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} = \mbox{\hyperlink{classutl_1_1spi__i}{spi\+\_\+i}}$<$ impl\+\_\+t $>$ \begin{DoxyCompactList}\small\item\em Export type as identity meta-\/function. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Public Member Functions} \begin{Indent}\textbf{ Get/\+Set functions provided by the interface}\par \begin{DoxyCompactItemize} \item uint32\+\_\+t \mbox{\hyperlink{classutl_1_1spi__i_a24cdd0c5ce4ed45a6c1b88ea43328634}{clock}} () const \item void \mbox{\hyperlink{classutl_1_1spi__i_a0ebb46a523ace45fd69950f90f9b3af4}{clock}} (uint32\+\_\+t c) \begin{DoxyCompactList}\small\item\em set clock frequency of the bus \end{DoxyCompactList}\end{DoxyCompactItemize} \end{Indent} \begin{Indent}\textbf{ I/O functions provided by the interface}\par \begin{DoxyCompactItemize} \item \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i_ac8376d88480a992ac47699637e1a29a5}{tx\+\_\+data}} (\mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} out) \item \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i_af3e303c2982202261700044d31596248}{tx\+\_\+data}} (const \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$out, \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$in, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n) \begin{DoxyCompactList}\small\item\em Transmit a number of bytes to the spi bus and read the response. \end{DoxyCompactList}\item \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i_a846dead32b91efcb48eed614daf68e8f}{rx\+\_\+data}} () \item \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i_a2053009da5364ead720aebd7cc537c21}{rx\+\_\+data}} (\mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$in, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n) \begin{DoxyCompactList}\small\item\em Receive a number of bytes from the spi bus while transmitting 0x\+F\+Fs. \end{DoxyCompactList}\end{DoxyCompactItemize} \end{Indent} \subsection*{Protected Member Functions} \begin{Indent}\textbf{ Object lifetime}\par \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classutl_1_1spi__i_ad66605cdf90f6d24cad3dc5ecda94b77}{spi\+\_\+i}} ()=default \begin{DoxyCompactList}\small\item\em Allow constructor from derived only. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1spi__i_ae77cb8be7d648a62a1ad252d829eccfb}{$\sim$spi\+\_\+i}} ()=default \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1spi__i_a1d6facb9b9adf91a6589fe029325bd55}{spi\+\_\+i}} (const \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} \&)=delete \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} \& \mbox{\hyperlink{classutl_1_1spi__i_aa5cf05ce005cb23e6317b3eef70bf4b0}{operator=}} (const \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} \&)=delete \end{DoxyCompactItemize} \end{Indent} \subsection{Detailed Description} \subsubsection*{template$<$typename impl\+\_\+t$>$\newline class utl\+::spi\+\_\+i$<$ impl\+\_\+t $>$} Template base class for S\+PI communication interface using C\+R\+TP This class force a common interface for S\+PI communication protocol implementations. \begin{DoxyParams}{Parameters} {\em impl\+\_\+t} & The C\+R\+TP type (the derived/implementation class typename). \\ \hline \end{DoxyParams} Definition at line 67 of file spi.\+h. \subsection{Member Typedef Documentation} \mbox{\Hypertarget{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}\label{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!type@{type}} \index{type@{type}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{type}{type}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ using \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} = \mbox{\hyperlink{classutl_1_1spi__i}{spi\+\_\+i}}$<$impl\+\_\+t$>$} Export type as identity meta-\/function. Definition at line 71 of file spi.\+h. \subsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classutl_1_1spi__i_ad66605cdf90f6d24cad3dc5ecda94b77}\label{classutl_1_1spi__i_ad66605cdf90f6d24cad3dc5ecda94b77}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!spi\+\_\+i@{spi\+\_\+i}} \index{spi\+\_\+i@{spi\+\_\+i}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{spi\+\_\+i()}{spi\_i()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1spi__i}{spi\+\_\+i}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}} Allow constructor from derived only. \mbox{\Hypertarget{classutl_1_1spi__i_ae77cb8be7d648a62a1ad252d829eccfb}\label{classutl_1_1spi__i_ae77cb8be7d648a62a1ad252d829eccfb}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!````~spi\+\_\+i@{$\sim$spi\+\_\+i}} \index{````~spi\+\_\+i@{$\sim$spi\+\_\+i}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{$\sim$spi\+\_\+i()}{~spi\_i()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1spi__i}{spi\+\_\+i}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}} Allow destructor from derived only. \mbox{\Hypertarget{classutl_1_1spi__i_a1d6facb9b9adf91a6589fe029325bd55}\label{classutl_1_1spi__i_a1d6facb9b9adf91a6589fe029325bd55}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!spi\+\_\+i@{spi\+\_\+i}} \index{spi\+\_\+i@{spi\+\_\+i}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{spi\+\_\+i()}{spi\_i()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1spi__i}{spi\+\_\+i}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}} No copies. \subsection{Member Function Documentation} \mbox{\Hypertarget{classutl_1_1spi__i_a24cdd0c5ce4ed45a6c1b88ea43328634}\label{classutl_1_1spi__i_a24cdd0c5ce4ed45a6c1b88ea43328634}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!clock@{clock}} \index{clock@{clock}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{clock()}{clock()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ uint32\+\_\+t \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::clock (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}} \begin{DoxyReturn}{Returns} clock frequency of the bus \end{DoxyReturn} Definition at line 102 of file spi.\+h. \mbox{\Hypertarget{classutl_1_1spi__i_a0ebb46a523ace45fd69950f90f9b3af4}\label{classutl_1_1spi__i_a0ebb46a523ace45fd69950f90f9b3af4}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!clock@{clock}} \index{clock@{clock}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{clock()}{clock()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ void \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::clock (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{c }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} set clock frequency of the bus Definition at line 103 of file spi.\+h. \mbox{\Hypertarget{classutl_1_1spi__i_aa5cf05ce005cb23e6317b3eef70bf4b0}\label{classutl_1_1spi__i_aa5cf05ce005cb23e6317b3eef70bf4b0}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!operator=@{operator=}} \index{operator=@{operator=}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{operator=()}{operator=()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}}\& \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1spi__i_aff8ee0a2160cddbb52fce46611a6108f}{type}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}} \mbox{\Hypertarget{classutl_1_1spi__i_a846dead32b91efcb48eed614daf68e8f}\label{classutl_1_1spi__i_a846dead32b91efcb48eed614daf68e8f}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!rx\+\_\+data@{rx\+\_\+data}} \index{rx\+\_\+data@{rx\+\_\+data}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{rx\+\_\+data()}{rx\_data()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::rx\+\_\+data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Receive a byte from spi bus while transmitting 0x\+FF Definition at line 129 of file spi.\+h. \mbox{\Hypertarget{classutl_1_1spi__i_a2053009da5364ead720aebd7cc537c21}\label{classutl_1_1spi__i_a2053009da5364ead720aebd7cc537c21}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!rx\+\_\+data@{rx\+\_\+data}} \index{rx\+\_\+data@{rx\+\_\+data}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{rx\+\_\+data()}{rx\_data()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename \+\_\+I $>$ \\ \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ \+\_\+I $>$\+::rx\+\_\+data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$}]{in, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})} Receive a number of bytes from the spi bus while transmitting 0x\+F\+Fs. \begin{DoxyParams}{Parameters} {\em in} & Pointer to buffer to store the data \\ \hline {\em n} & The number of bytes to read \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The number of received bytes. \end{DoxyReturn} Definition at line 165 of file spi.\+h. \mbox{\Hypertarget{classutl_1_1spi__i_ac8376d88480a992ac47699637e1a29a5}\label{classutl_1_1spi__i_ac8376d88480a992ac47699637e1a29a5}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!tx\+\_\+data@{tx\+\_\+data}} \index{tx\+\_\+data@{tx\+\_\+data}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{tx\+\_\+data()}{tx\_data()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t$>$ \\ \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ impl\+\_\+t $>$\+::tx\+\_\+data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}}}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Transmit a byte to spi bus and return the response Definition at line 114 of file spi.\+h. \mbox{\Hypertarget{classutl_1_1spi__i_af3e303c2982202261700044d31596248}\label{classutl_1_1spi__i_af3e303c2982202261700044d31596248}} \index{utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}!tx\+\_\+data@{tx\+\_\+data}} \index{tx\+\_\+data@{tx\+\_\+data}!utl\+::spi\+\_\+i@{utl\+::spi\+\_\+i}} \subsubsection{\texorpdfstring{tx\+\_\+data()}{tx\_data()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename \+\_\+I $>$ \\ \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1spi__i}{utl\+::spi\+\_\+i}}$<$ \+\_\+I $>$\+::tx\+\_\+data (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$}]{out, }\item[{\mbox{\hyperlink{namespaceutl_a1427cb5a2b13313147a902173b91e3c1}{byte\+\_\+t}} $\ast$}]{in, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})} Transmit a number of bytes to the spi bus and read the response. \begin{DoxyParams}{Parameters} {\em out} & Pointer to data to send to the bus \\ \hline {\em in} & Pointer to buffer to store the data from the bus \\ \hline {\em n} & The number of bytes to transmit/receive \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The number of bytes. \end{DoxyReturn} Definition at line 152 of file spi.\+h. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item include/utl/com/\mbox{\hyperlink{spi_8h}{spi.\+h}}\end{DoxyCompactItemize}