\hypertarget{rssi__list_8c}{}\section{/home/junicode/\+Documents/\+L\+O53\+\_\+\+Project/\+L\+O53\+\_\+\+A\+P\+\_\+\+Development/rssi\+\_\+list.c File Reference}
\label{rssi__list_8c}\index{/home/junicode/\+Documents/\+L\+O53\+\_\+\+Project/\+L\+O53\+\_\+\+A\+P\+\_\+\+Development/rssi\+\_\+list.\+c@{/home/junicode/\+Documents/\+L\+O53\+\_\+\+Project/\+L\+O53\+\_\+\+A\+P\+\_\+\+Development/rssi\+\_\+list.\+c}}


This file contain the diffeerent functions necessay for the management of the linked-\/lists used by the program.  


{\ttfamily \#include \char`\"{}rssi\+\_\+list.\+h\char`\"{}}\\*
Include dependency graph for rssi\+\_\+list.\+c\+:
% FIG 0
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{rssi__list_8c_ae44fbcd3fb8dd7a4a9015cf282b16406}{add\+\_\+value} (\hyperlink{struct_deque}{Deque} $\ast$list, double value)
\begin{DoxyCompactList}\small\item\em add\+\_\+value adds a new R\+S\+S\+I value at the end of the deque. \end{DoxyCompactList}\item 
\hyperlink{struct_element}{Element} $\ast$ \hyperlink{rssi__list_8c_a24453a17eaee3f01419138bd3350031e}{add\+\_\+element} (\hyperlink{struct_element}{Element} $\ast$$\ast$list, u\+\_\+char $\ast$mac\+\_\+value)
\begin{DoxyCompactList}\small\item\em add\+\_\+element adds an element (a new device node) to the list. Elements shall be ordered. \end{DoxyCompactList}\item 
unsigned int \hyperlink{rssi__list_8c_a24da2773bae32fa61d7575b189c3cbed}{mac\+\_\+maching} (u\+\_\+char $\ast$mac1, u\+\_\+char $\ast$mac2)
\begin{DoxyCompactList}\small\item\em This function makes the comparison of two mac addresses to check if they are equals. \end{DoxyCompactList}\item 
\hyperlink{struct_element}{Element} $\ast$ \hyperlink{rssi__list_8c_a6c7015cd077f7305b2733eb8b9817f97}{find\+\_\+mac} (\hyperlink{struct_element}{Element} $\ast$list, u\+\_\+char $\ast$mac\+\_\+value)
\begin{DoxyCompactList}\small\item\em find\+\_\+mac looks up for a M\+A\+C address in the list. \end{DoxyCompactList}\item 
\hyperlink{struct_element}{Element} $\ast$ \hyperlink{rssi__list_8c_a215f49fa181cccf9bac2400da4215bb2}{find\+\_\+deque} (\hyperlink{struct_element}{Element} $\ast$list, \hyperlink{struct_deque}{Deque} $\ast$deq)
\begin{DoxyCompactList}\small\item\em This function find a specific \hyperlink{struct_deque}{Deque} in the \hyperlink{struct_element}{Element} List. \end{DoxyCompactList}\item 
void \hyperlink{rssi__list_8c_af2c0c85c2a2a3efefa7c5dc3c03c3e4a}{calculate\+\_\+avg} (\hyperlink{struct_element}{Element} $\ast$$\ast$list, u\+\_\+char $\ast$mac\+\_\+value, u\+\_\+char $\ast$nb\+\_\+samples, u\+\_\+char $\ast$avg\+\_\+value)
\begin{DoxyCompactList}\small\item\em Calculate avg ss values from a given string mac address. \end{DoxyCompactList}\item 
void \hyperlink{rssi__list_8c_a535cd027bf00cf939326973eb2af2a37}{clear\+\_\+outdated\+\_\+values} (\hyperlink{struct_deque}{Deque} $\ast$list)
\begin{DoxyCompactList}\small\item\em clear\+\_\+outdated\+\_\+values removes all outdated R\+S\+S\+I in a R\+S\+S\+I deque. \end{DoxyCompactList}\item 
void \hyperlink{rssi__list_8c_a12d58f846d9ea5a76d657991fc0bb6ab}{clear\+\_\+outdated\+\_\+\+Elements} (\hyperlink{struct_element}{Element} $\ast$$\ast$list)
\begin{DoxyCompactList}\small\item\em clear\+\_\+outdated\+\_\+\+Elements removes all outdated Elements in the linked-\/list. \end{DoxyCompactList}\item 
void \hyperlink{rssi__list_8c_a41893db8a4089cb1c64fe72069044637}{decrement\+\_\+all\+\_\+deadlines} (\hyperlink{struct_element}{Element} $\ast$list)
\begin{DoxyCompactList}\small\item\em This function decrement every second the deadline value of all the samples included in an element list. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This file contain the diffeerent functions necessay for the management of the linked-\/lists used by the program. 

This header file belongs to the \hyperlink{rssi__list_8c}{rssi\+\_\+list.\+c} file.

\begin{DoxyAuthor}{Author}
Zeufack Arnel -\/ Member of an L\+O53 group-\/project (Other Members\+: T\+O\+N\+Y D\+U\+O\+N\+G -\/ Y\+V\+O\+N M\+B\+O\+U\+G\+U\+E\+M -\/ J\+O\+E\+L W\+A\+B\+O) 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
15 Juin 2016
\end{DoxyDate}
This file contain the diffeerent functions necessay for the management of the linked-\/lists used by the program It contain many important functions such as add\+\_\+deque, add\+\_\+element, find\+\_\+mac, calculate\+\_\+avg, and some others..

\begin{DoxyAuthor}{Author}
Zeufack Arnel -\/ Member of an L\+O53 group-\/project (Other Members\+: T\+O\+N\+Y D\+U\+O\+N\+G -\/ Y\+V\+O\+N M\+B\+O\+U\+G\+U\+E\+M -\/ J\+O\+E\+L W\+A\+B\+O) 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
15 Juin 2016
\end{DoxyDate}
It describes the prototypes of the functions used in \hyperlink{rssi__list_8c}{rssi\+\_\+list.\+c} 

\subsection{Function Documentation}
\hypertarget{rssi__list_8c_a24453a17eaee3f01419138bd3350031e}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!add\+\_\+element@{add\+\_\+element}}
\index{add\+\_\+element@{add\+\_\+element}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{add\+\_\+element}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Element}$\ast$ add\+\_\+element (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$$\ast$}]{list, }
\item[{u\+\_\+char $\ast$}]{mac\+\_\+value}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a24453a17eaee3f01419138bd3350031e}


add\+\_\+element adds an element (a new device node) to the list. Elements shall be ordered. 

\begin{DoxyReturn}{Returns}
the added element pointer. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em list} & a pointer to the list head pointer. \\
\hline
{\em mac\+\_\+value} & the M\+A\+C address of the new node to be added. \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_ae44fbcd3fb8dd7a4a9015cf282b16406}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!add\+\_\+value@{add\+\_\+value}}
\index{add\+\_\+value@{add\+\_\+value}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{add\+\_\+value}]{\setlength{\rightskip}{0pt plus 5cm}void add\+\_\+value (
\begin{DoxyParamCaption}
\item[{{\bf Deque} $\ast$}]{list, }
\item[{double}]{value}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_ae44fbcd3fb8dd7a4a9015cf282b16406}


add\+\_\+value adds a new R\+S\+S\+I value at the end of the deque. 


\begin{DoxyParams}{Parameters}
{\em the} & deque to append the element to. \\
\hline
{\em value} & the R\+S\+S\+I value (d\+Bm, do not forget to convert when inserting!) \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_af2c0c85c2a2a3efefa7c5dc3c03c3e4a}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!calculate\+\_\+avg@{calculate\+\_\+avg}}
\index{calculate\+\_\+avg@{calculate\+\_\+avg}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{calculate\+\_\+avg}]{\setlength{\rightskip}{0pt plus 5cm}void calculate\+\_\+avg (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$$\ast$}]{list, }
\item[{u\+\_\+char $\ast$}]{mac\+\_\+value, }
\item[{u\+\_\+char $\ast$}]{nb\+\_\+samples, }
\item[{u\+\_\+char $\ast$}]{avg\+\_\+value}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_af2c0c85c2a2a3efefa7c5dc3c03c3e4a}


Calculate avg ss values from a given string mac address. 


\begin{DoxyParams}{Parameters}
{\em mac\+\_\+value} & the string M\+A\+C address necessary to identify the device to which calculation is needed. \\
\hline
{\em list} & a pointer to the list head pointer. \\
\hline
{\em nb\+\_\+samples} & is a pointer that will contain the number of sample we need to know. \\
\hline
{\em avg\+\_\+value} & is a pointer that will contain the average rssi\+\_\+value based on the captured samples. \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a12d58f846d9ea5a76d657991fc0bb6ab}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!clear\+\_\+outdated\+\_\+\+Elements@{clear\+\_\+outdated\+\_\+\+Elements}}
\index{clear\+\_\+outdated\+\_\+\+Elements@{clear\+\_\+outdated\+\_\+\+Elements}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{clear\+\_\+outdated\+\_\+\+Elements}]{\setlength{\rightskip}{0pt plus 5cm}void clear\+\_\+outdated\+\_\+\+Elements (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$$\ast$}]{list}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a12d58f846d9ea5a76d657991fc0bb6ab}


clear\+\_\+outdated\+\_\+\+Elements removes all outdated Elements in the linked-\/list. 


\begin{DoxyParams}{Parameters}
{\em list} & the \hyperlink{struct_element}{Element} (devices) list in which the outdated devices need to be removed \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a535cd027bf00cf939326973eb2af2a37}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!clear\+\_\+outdated\+\_\+values@{clear\+\_\+outdated\+\_\+values}}
\index{clear\+\_\+outdated\+\_\+values@{clear\+\_\+outdated\+\_\+values}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{clear\+\_\+outdated\+\_\+values}]{\setlength{\rightskip}{0pt plus 5cm}void clear\+\_\+outdated\+\_\+values (
\begin{DoxyParamCaption}
\item[{{\bf Deque} $\ast$}]{list}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a535cd027bf00cf939326973eb2af2a37}


clear\+\_\+outdated\+\_\+values removes all outdated R\+S\+S\+I in a R\+S\+S\+I deque. 


\begin{DoxyParams}{Parameters}
{\em list} & the deque from which to filter the outdated values. \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a41893db8a4089cb1c64fe72069044637}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!decrement\+\_\+all\+\_\+deadlines@{decrement\+\_\+all\+\_\+deadlines}}
\index{decrement\+\_\+all\+\_\+deadlines@{decrement\+\_\+all\+\_\+deadlines}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{decrement\+\_\+all\+\_\+deadlines}]{\setlength{\rightskip}{0pt plus 5cm}void decrement\+\_\+all\+\_\+deadlines (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$}]{list}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a41893db8a4089cb1c64fe72069044637}


This function decrement every second the deadline value of all the samples included in an element list. 


\begin{DoxyParams}{Parameters}
{\em list} & The \hyperlink{struct_element}{Element} list head pointer \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a215f49fa181cccf9bac2400da4215bb2}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!find\+\_\+deque@{find\+\_\+deque}}
\index{find\+\_\+deque@{find\+\_\+deque}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{find\+\_\+deque}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Element}$\ast$ find\+\_\+deque (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$}]{list, }
\item[{{\bf Deque} $\ast$}]{deq}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a215f49fa181cccf9bac2400da4215bb2}


This function find a specific \hyperlink{struct_deque}{Deque} in the \hyperlink{struct_element}{Element} List. 

\begin{DoxyReturn}{Returns}
it return a pointer to the \hyperlink{struct_element}{Element} in which the deque is located 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em list} & the \hyperlink{struct_element}{Element} list head pointer \\
\hline
{\em deq} & the address of the \hyperlink{struct_deque}{Deque} to find \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a6c7015cd077f7305b2733eb8b9817f97}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!find\+\_\+mac@{find\+\_\+mac}}
\index{find\+\_\+mac@{find\+\_\+mac}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{find\+\_\+mac}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Element}$\ast$ find\+\_\+mac (
\begin{DoxyParamCaption}
\item[{{\bf Element} $\ast$}]{list, }
\item[{u\+\_\+char $\ast$}]{mac\+\_\+value}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a6c7015cd077f7305b2733eb8b9817f97}


find\+\_\+mac looks up for a M\+A\+C address in the list. 

\begin{DoxyReturn}{Returns}
a pointer to the corresponding element, N\+U\+L\+L if not found. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em list} & the list head pointer. \\
\hline
{\em mac\+\_\+value} & the M\+A\+C address to search. \\
\hline
\end{DoxyParams}
\hypertarget{rssi__list_8c_a24da2773bae32fa61d7575b189c3cbed}{}\index{rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}!mac\+\_\+maching@{mac\+\_\+maching}}
\index{mac\+\_\+maching@{mac\+\_\+maching}!rssi\+\_\+list.\+c@{rssi\+\_\+list.\+c}}
\subsubsection[{mac\+\_\+maching}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int mac\+\_\+maching (
\begin{DoxyParamCaption}
\item[{u\+\_\+char $\ast$}]{mac1, }
\item[{u\+\_\+char $\ast$}]{mac2}
\end{DoxyParamCaption}
)}\label{rssi__list_8c_a24da2773bae32fa61d7575b189c3cbed}


This function makes the comparison of two mac addresses to check if they are equals. 

\begin{DoxyReturn}{Returns}
it return 0 if they are not equal and 1 if they are equal 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em mac1} & the first string mac address \\
\hline
{\em mac2} & the second string mac address \\
\hline
\end{DoxyParams}
