\doxysection{x\+CH over DC12 channel coding}
\label{group__xch__dc12}\index{xCH over DC12 channel coding@{xCH over DC12 channel coding}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ xch\+\_\+dc12.\+h}
\begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 x\+CH over DC12 channel coding header. \end{DoxyCompactList}\item 
file \textbf{ xch\+\_\+dc12.\+c}
\begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 x\+CH over DC12 channel coding implementation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ gmr1\+\_\+xch\+\_\+dc12\+\_\+encode} (\textbf{ ubit\+\_\+t} $\ast$bits\+\_\+e, const uint8\+\_\+t $\ast$l2)
\begin{DoxyCompactList}\small\item\em Stateless GMR-\/1 x\+CH over DC12 channel coder. \end{DoxyCompactList}\item 
int \textbf{ gmr1\+\_\+xch\+\_\+dc12\+\_\+decode} (uint8\+\_\+t $\ast$l2, const \textbf{ sbit\+\_\+t} $\ast$bits\+\_\+e, int $\ast$conv\+\_\+rv)
\begin{DoxyCompactList}\small\item\em Stateless GMR-\/1 x\+CH over DC12 channel decoder. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Function Documentation}
\mbox{\label{group__xch__dc12_ga581b9670f04f4a6bf6be69dc78ad2389}} 
\index{xCH over DC12 channel coding@{xCH over DC12 channel coding}!gmr1\_xch\_dc12\_decode@{gmr1\_xch\_dc12\_decode}}
\index{gmr1\_xch\_dc12\_decode@{gmr1\_xch\_dc12\_decode}!xCH over DC12 channel coding@{xCH over DC12 channel coding}}
\doxysubsubsection{gmr1\_xch\_dc12\_decode()}
{\footnotesize\ttfamily int gmr1\+\_\+xch\+\_\+dc12\+\_\+decode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{l2,  }\item[{const \textbf{ sbit\+\_\+t} $\ast$}]{bits\+\_\+e,  }\item[{int $\ast$}]{conv\+\_\+rv }\end{DoxyParamCaption})}



Stateless GMR-\/1 x\+CH over DC12 channel decoder. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em l2} & L2 packet data \\
\hline
\mbox{\texttt{ in}}  & {\em bits\+\_\+e} & Data bits of a burst \\
\hline
\mbox{\texttt{ out}}  & {\em conv\+\_\+rv} & Return of the convolutional decode (can be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if CRC check pass, any other value for fail.
\end{DoxyReturn}
L2 data is 24 byte long, and bits\+\_\+e is a 432 soft bit array unmapped from a burst. 

References \textbf{ gmr1\+\_\+deinterleave\+\_\+intra()}, \textbf{ gmr1\+\_\+scramble\+\_\+sbit()}, and \textbf{ osmo\+\_\+conv\+\_\+decode()}.

\mbox{\label{group__xch__dc12_ga65507f2a3c6d9b8e681a082ffba157a9}} 
\index{xCH over DC12 channel coding@{xCH over DC12 channel coding}!gmr1\_xch\_dc12\_encode@{gmr1\_xch\_dc12\_encode}}
\index{gmr1\_xch\_dc12\_encode@{gmr1\_xch\_dc12\_encode}!xCH over DC12 channel coding@{xCH over DC12 channel coding}}
\doxysubsubsection{gmr1\_xch\_dc12\_encode()}
{\footnotesize\ttfamily void gmr1\+\_\+xch\+\_\+dc12\+\_\+encode (\begin{DoxyParamCaption}\item[{\textbf{ ubit\+\_\+t} $\ast$}]{bits\+\_\+e,  }\item[{const uint8\+\_\+t $\ast$}]{l2 }\end{DoxyParamCaption})}



Stateless GMR-\/1 x\+CH over DC12 channel coder. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em bits\+\_\+e} & Data bits of a burst \\
\hline
\mbox{\texttt{ in}}  & {\em l2} & L2 packet data\\
\hline
\end{DoxyParams}
L2 data is 24 byte long, and bits\+\_\+e is a 432 hard bit array to be mapped on a burst. 

References \textbf{ gmr1\+\_\+crc16}, \textbf{ osmo\+\_\+conv\+\_\+encode()}, \textbf{ osmo\+\_\+crc16gen\+\_\+set\+\_\+bits()}, and \textbf{ osmo\+\_\+pbit2ubit\+\_\+ext()}.

