\hypertarget{class_b_n_o08x}{}\doxysection{BNO08x Class Reference}
\label{class_b_n_o08x}\index{BNO08x@{BNO08x}}


\mbox{\hyperlink{class_b_n_o08x}{BNO08x}} IMU driver class.  




{\ttfamily \#include $<$BNO08x.\+hpp$>$}



Collaboration diagram for BNO08x\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{bno08x\+\_\+reports\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Contains report implementations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{BNO08x\+::bno08x\+\_\+reports\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_ae08bdaff01ecacf0f399ab289fdf0b99}{bno08x\+\_\+reports\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Contains report implementations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_b_n_o08x_ad12fb6cf310ad7a04a4e53809833bd61}{BNO08x}} (\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}} imu\+\_\+config=\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}}())
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} imu constructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_b_n_o08x_a687eee44d68e1bcabce04780d7eb5fb9}{$\sim$\+BNO08x}} ()
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} imu deconstructor. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aea8e2c6dd7a2c9899479a7f39fe94798}{initialize}} ()
\begin{DoxyCompactList}\small\item\em Initializes \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} sensor. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503}{hard\+\_\+reset}} ()
\begin{DoxyCompactList}\small\item\em Hard resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a973a1b1785f3302ee1b2702c6a27646e}{soft\+\_\+reset}} ()
\begin{DoxyCompactList}\small\item\em Soft resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device by sending RESET (1) command on \char`\"{}device\char`\"{} channel. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aebacbe092615cd083cf996b14402bba6}{disable\+\_\+all\+\_\+reports}} ()
\begin{DoxyCompactList}\small\item\em Disables all currently enabled reports. \end{DoxyCompactList}\item 
\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_afed71c9ed8a8563767f26282408ccee2}{BNO08x\+Reset\+Reason}} \mbox{\hyperlink{class_b_n_o08x_a96d47dd0f9aedfbe3f731f8ae76b2e85}{get\+\_\+reset\+\_\+reason}} ()
\begin{DoxyCompactList}\small\item\em Returns reason for previous reset via product ID report. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aaaa15b21ad98a3b161065c3d03ff62b5}{on}} ()
\begin{DoxyCompactList}\small\item\em Places \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device in on state by sending ON (2) command on \char`\"{}device\char`\"{} channel. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c}{sleep}} ()
\begin{DoxyCompactList}\small\item\em Places \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device in sleep state by sending SLEEP (3) command on \char`\"{}device\char`\"{} channel. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5}{dynamic\+\_\+calibration\+\_\+enable}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a25947bbe6bc4a7c9edd7067fdce0e9cc}{BNO08x\+Cal\+Sel}} sensor)
\begin{DoxyCompactList}\small\item\em Starts simple calibration, see ref. manual 6.\+4.\+10.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95}{dynamic\+\_\+calibration\+\_\+disable}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a25947bbe6bc4a7c9edd7067fdce0e9cc}{BNO08x\+Cal\+Sel}} sensor)
\begin{DoxyCompactList}\small\item\em Disables dynamic/motion engine calibration for specified sensor(s), see ref. manual 6.\+4.\+6.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b}{dynamic\+\_\+calibration\+\_\+autosave\+\_\+enable}} ()
\begin{DoxyCompactList}\small\item\em Enables the automatic saving of dynamic/\+ME calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash See ref manual 6.\+4.\+7.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a9387728c276734da27388dbea38b6b32}{dynamic\+\_\+calibration\+\_\+autosave\+\_\+disable}} ()
\begin{DoxyCompactList}\small\item\em Disables the automatic saving of dynamic/\+ME calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash See ref manual 6.\+4.\+7.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a85f1eca475ea0e6fbaff75c8a297d671}{dynamic\+\_\+calibration\+\_\+save}} ()
\begin{DoxyCompactList}\small\item\em Saves dynamic/motion engine calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash immediately. See ref manual 6.\+4.\+5.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a441681a5133b1a125b534925c9bc10f9}{dynamic\+\_\+calibration\+\_\+data\+\_\+clear\+\_\+ram}} ()
\begin{DoxyCompactList}\small\item\em Clears dynamic/motion engine calibration data from ram and resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device. See ref manual 6.\+4.\+9.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a65a7175b6f6ad6ce687e4fd4cd4bc396}{dynamic\+\_\+calibration\+\_\+data\+\_\+delete}} ()
\begin{DoxyCompactList}\small\item\em Deletes dynamic calibration data from \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash and resets the device. Follows the steps outlined in ref. manual 6.\+4.\+9. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_abcdba0d0e82db480d20ea4564511a276}{dynamic\+\_\+calibration\+\_\+run\+\_\+routine}} ()
\begin{DoxyCompactList}\small\item\em Example calibration routine using dynamic/\+ME calibration commands. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_abba85271f3333b7f395ec55915c1d5f9}{set\+\_\+system\+\_\+orientation}} (float w, float x, float y, float z)
\begin{DoxyCompactList}\small\item\em Sets the system orientation of the \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device and persist it in flash (FRS). \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_ad42c335827c7b09cd2e4ff303a0d3520}{get\+\_\+system\+\_\+orientation}} (float \&w, float \&x, float \&y, float \&z)
\begin{DoxyCompactList}\small\item\em Retrieves the system orientation of the \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device and converts to float. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a138577792350b8d5cc48cbf46b34c4f3}{get\+\_\+frs}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a8ac8ee2d5f81f6102ed94866f2bdcc8e}{BNO08x\+Frs\+ID}} frs\+\_\+\+ID, uint32\+\_\+t(\&data)\mbox{[}16\mbox{]}, uint16\+\_\+t \&rx\+\_\+data\+\_\+sz)
\begin{DoxyCompactList}\small\item\em Retrieves a record from flash record system (if your goal is to retrieve sensor specific meta data use the \mbox{\hyperlink{class_b_n_o08x_rpt}{BNO08x\+Rpt}}\+:get\+\_\+meta\+\_\+data() method instead) \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aa616a645a4fc9054194fdbf76ec9c5b5}{write\+\_\+frs}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a8ac8ee2d5f81f6102ed94866f2bdcc8e}{BNO08x\+Frs\+ID}} frs\+\_\+\+ID, uint32\+\_\+t $\ast$data, const uint16\+\_\+t tx\+\_\+data\+\_\+sz)
\begin{DoxyCompactList}\small\item\em Writes a record to flash record system. \end{DoxyCompactList}\item 
sh2\+\_\+\+Product\+Ids\+\_\+t \mbox{\hyperlink{class_b_n_o08x_aa8fd64f60de86ff6b8562f90f3b09690}{get\+\_\+product\+\_\+\+IDs}} ()
\begin{DoxyCompactList}\small\item\em Returns product ID info sent by IMU at initialization. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc}{data\+\_\+available}} ()
\begin{DoxyCompactList}\small\item\em Polls for new data/report to become available. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3}{register\+\_\+cb}} (std\+::function$<$ void(void)$>$ cb\+\_\+fxn)
\begin{DoxyCompactList}\small\item\em Registers a callback to execute when new data from a report is received. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a082c79d9951ac32ea5fa25de90255a41}{register\+\_\+cb}} (std\+::function$<$ void(uint8\+\_\+t report\+\_\+\+ID)$>$ cb\+\_\+fxn)
\begin{DoxyCompactList}\small\item\em Registers a callback to execute when new data from a report is received, overloaded with callback param for most recent report ID. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6}{print\+\_\+product\+\_\+ids}} ()
\begin{DoxyCompactList}\small\item\em Prints product IDs received at initialization. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_aae4512fa4768becf0e3919a0e0ec34d8}{print\+\_\+system\+\_\+orientation}} ()
\begin{DoxyCompactList}\small\item\em Retrieves and prints system orientation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{bno08x\+\_\+reports\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_ae1db7422ee9c2cac77382cc0a7aa430e}{rpt}}
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static constexpr float \mbox{\hyperlink{class_b_n_o08x_ab8d5ebfc080838870e320494da3fa64d}{SQRT2\+OVER2}} = 0.\+7071067811865476f
\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{class_b_n_o08x_a6dd0081dc9eb0cfb019bfdca3aa31802}{BNO08x\+SH2\+HAL}}
\item 
class \mbox{\hyperlink{class_b_n_o08x_a190775b71c35d8007faae7dd6a9f1030}{BNO08x\+Test\+Helper}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{class_b_n_o08x}{BNO08x}} IMU driver class. 

\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_b_n_o08x_ae08bdaff01ecacf0f399ab289fdf0b99}\label{class_b_n_o08x_ae08bdaff01ecacf0f399ab289fdf0b99}} 
\index{BNO08x@{BNO08x}!bno08x\_reports\_t@{bno08x\_reports\_t}}
\index{bno08x\_reports\_t@{bno08x\_reports\_t}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{bno08x\_reports\_t}{bno08x\_reports\_t}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{BNO08x\+::bno08x\+\_\+reports\+\_\+t}} \mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{BNO08x\+::bno08x\+\_\+reports\+\_\+t}}}



Contains report implementations. 



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_b_n_o08x_ad12fb6cf310ad7a04a4e53809833bd61}\label{class_b_n_o08x_ad12fb6cf310ad7a04a4e53809833bd61}} 
\index{BNO08x@{BNO08x}!BNO08x@{BNO08x}}
\index{BNO08x@{BNO08x}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{BNO08x()}{BNO08x()}}
{\footnotesize\ttfamily BNO08x\+::\+BNO08x (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}}}]{imu\+\_\+config = {\ttfamily \mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}}()} }\end{DoxyParamCaption})}



\mbox{\hyperlink{class_b_n_o08x}{BNO08x}} imu constructor. 

Construct a \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} object for managing a \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} sensor.


\begin{DoxyParams}{Parameters}
{\em imu\+\_\+config} & Configuration settings (optional), default settings can be seen in \mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a687eee44d68e1bcabce04780d7eb5fb9}\label{class_b_n_o08x_a687eee44d68e1bcabce04780d7eb5fb9}} 
\index{BNO08x@{BNO08x}!````~BNO08x@{$\sim$BNO08x}}
\index{````~BNO08x@{$\sim$BNO08x}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{$\sim$BNO08x()}{~BNO08x()}}
{\footnotesize\ttfamily BNO08x\+::$\sim$\+BNO08x (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\mbox{\hyperlink{class_b_n_o08x}{BNO08x}} imu deconstructor. 

Deconstructs a \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} object and releases any utilized resources.

\begin{DoxyReturn}{Returns}
void, nothing to return. 
\end{DoxyReturn}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc}\label{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc}} 
\index{BNO08x@{BNO08x}!data\_available@{data\_available}}
\index{data\_available@{data\_available}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{data\_available()}{data\_available()}}
{\footnotesize\ttfamily bool BNO08x\+::data\+\_\+available (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Polls for new data/report to become available. 

\begin{DoxyReturn}{Returns}
True if new data/report became available before DATA\+\_\+\+AVAILABLE\+\_\+\+TIMEOUT\+\_\+\+MS. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_aebacbe092615cd083cf996b14402bba6}\label{class_b_n_o08x_aebacbe092615cd083cf996b14402bba6}} 
\index{BNO08x@{BNO08x}!disable\_all\_reports@{disable\_all\_reports}}
\index{disable\_all\_reports@{disable\_all\_reports}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{disable\_all\_reports()}{disable\_all\_reports()}}
{\footnotesize\ttfamily bool BNO08x\+::disable\+\_\+all\+\_\+reports (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Disables all currently enabled reports. 

\begin{DoxyReturn}{Returns}
True if all currently enabled reports were disabled successfully. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_aebacbe092615cd083cf996b14402bba6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a9387728c276734da27388dbea38b6b32}\label{class_b_n_o08x_a9387728c276734da27388dbea38b6b32}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_autosave\_disable@{dynamic\_calibration\_autosave\_disable}}
\index{dynamic\_calibration\_autosave\_disable@{dynamic\_calibration\_autosave\_disable}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_autosave\_disable()}{dynamic\_calibration\_autosave\_disable()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+autosave\+\_\+disable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Disables the automatic saving of dynamic/\+ME calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash See ref manual 6.\+4.\+7.\+1. 

\begin{DoxyReturn}{Returns}
True if dynamic/\+ME calibration autosave data enable succeeded. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b}\label{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_autosave\_enable@{dynamic\_calibration\_autosave\_enable}}
\index{dynamic\_calibration\_autosave\_enable@{dynamic\_calibration\_autosave\_enable}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_autosave\_enable()}{dynamic\_calibration\_autosave\_enable()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+autosave\+\_\+enable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Enables the automatic saving of dynamic/\+ME calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash See ref manual 6.\+4.\+7.\+1. 

\begin{DoxyReturn}{Returns}
True if dynamic/\+ME calibration autosave data enable succeeded. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a441681a5133b1a125b534925c9bc10f9}\label{class_b_n_o08x_a441681a5133b1a125b534925c9bc10f9}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_data\_clear\_ram@{dynamic\_calibration\_data\_clear\_ram}}
\index{dynamic\_calibration\_data\_clear\_ram@{dynamic\_calibration\_data\_clear\_ram}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_data\_clear\_ram()}{dynamic\_calibration\_data\_clear\_ram()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+data\+\_\+clear\+\_\+ram (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Clears dynamic/motion engine calibration data from ram and resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device. See ref manual 6.\+4.\+9.\+1. 

\begin{DoxyReturn}{Returns}
True if save dynamic/\+ME calibration data succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a441681a5133b1a125b534925c9bc10f9_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a441681a5133b1a125b534925c9bc10f9_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a65a7175b6f6ad6ce687e4fd4cd4bc396}\label{class_b_n_o08x_a65a7175b6f6ad6ce687e4fd4cd4bc396}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_data\_delete@{dynamic\_calibration\_data\_delete}}
\index{dynamic\_calibration\_data\_delete@{dynamic\_calibration\_data\_delete}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_data\_delete()}{dynamic\_calibration\_data\_delete()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+data\+\_\+delete (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Deletes dynamic calibration data from \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash and resets the device. Follows the steps outlined in ref. manual 6.\+4.\+9. 

\begin{DoxyReturn}{Returns}
True if delete dynamic calibration data operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a65a7175b6f6ad6ce687e4fd4cd4bc396_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95}\label{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_disable@{dynamic\_calibration\_disable}}
\index{dynamic\_calibration\_disable@{dynamic\_calibration\_disable}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_disable()}{dynamic\_calibration\_disable()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+disable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a25947bbe6bc4a7c9edd7067fdce0e9cc}{BNO08x\+Cal\+Sel}}}]{sensor }\end{DoxyParamCaption})}



Disables dynamic/motion engine calibration for specified sensor(s), see ref. manual 6.\+4.\+6.\+1. 


\begin{DoxyParams}{Parameters}
{\em sensor} & The sensor(s) to disable dynamic/\+ME calibration for.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if disable dynamic/\+ME calibration succeeded. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5}\label{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_enable@{dynamic\_calibration\_enable}}
\index{dynamic\_calibration\_enable@{dynamic\_calibration\_enable}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_enable()}{dynamic\_calibration\_enable()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+enable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a25947bbe6bc4a7c9edd7067fdce0e9cc}{BNO08x\+Cal\+Sel}}}]{sensor }\end{DoxyParamCaption})}



Starts simple calibration, see ref. manual 6.\+4.\+10.\+1. 


\begin{DoxyParams}{Parameters}
{\em period\+\_\+us} & This interval should be set to whatever rate the sensor hub is expected to run at after calibration.\\
\hline
\end{DoxyParams}
After the calibration is started, the IMU should be rotated 180 degrees. After the IMU has been rotated call calibration\+\_\+end(). See ref. manual 6.\+4.\+10 for more detailed instructions.

\begin{DoxyReturn}{Returns}
True if start simple calibration operation succeeded.
\end{DoxyReturn}
Ends turn-\/table calibration, see ref. manual 6.\+4.\+10.\+2


\begin{DoxyParams}{Parameters}
{\em status} & Returned status bits indicating result of turntable calibration.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if enable start turn-\/table calibration operation succeeded.
\end{DoxyReturn}
Enables dynamic/motion engine calibration for specified sensor(s), see ref. manual 6.\+4.\+6.\+1


\begin{DoxyParams}{Parameters}
{\em sensor} & The sensor(s) to enable dynamic/\+ME calibration for.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if enable dynamic/\+ME calibration succeeded. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_abcdba0d0e82db480d20ea4564511a276}\label{class_b_n_o08x_abcdba0d0e82db480d20ea4564511a276}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_run\_routine@{dynamic\_calibration\_run\_routine}}
\index{dynamic\_calibration\_run\_routine@{dynamic\_calibration\_run\_routine}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_run\_routine()}{dynamic\_calibration\_run\_routine()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+run\+\_\+routine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Example calibration routine using dynamic/\+ME calibration commands. 

Routine does the following\+:alignas

1) disables all enabled reports 2) sends a command to enable dynamic/motion engine calibration for all possible options (SH2\+\_\+\+CAL\+\_\+\+ACCEL $\vert$ SH2\+\_\+\+CAL\+\_\+\+GYRO $\vert$ SH2\+\_\+\+CAL\+\_\+\+MAG $\vert$ SH2\+\_\+\+CAL\+\_\+\+PLANAR) 3) enables game rotation vector reports and calibrated magnetic field reports 4) moving window average for accuracy received through reports 5) deems calibration accuracy threshold met when magf accuracy avg is \texorpdfstring{$>$}{>}=2 (MED) and quat accuracy avg \texorpdfstring{$>$}{>}=3 (HIGH) for longer than 5 seconds 6) sends command to save dynamic calibration data 7) disables all enabled reports

Note the DCD commands don\textquotesingle{}t have to be used this way, this is just an example, but the \mbox{\hyperlink{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b}{dynamic\+\_\+calibration\+\_\+autosave\+\_\+enable()}} allows calibration to be run and saved constantly even while data is used for other operations.

\begin{DoxyReturn}{Returns}
True if calibration routine succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_abcdba0d0e82db480d20ea4564511a276_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a85f1eca475ea0e6fbaff75c8a297d671}\label{class_b_n_o08x_a85f1eca475ea0e6fbaff75c8a297d671}} 
\index{BNO08x@{BNO08x}!dynamic\_calibration\_save@{dynamic\_calibration\_save}}
\index{dynamic\_calibration\_save@{dynamic\_calibration\_save}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{dynamic\_calibration\_save()}{dynamic\_calibration\_save()}}
{\footnotesize\ttfamily bool BNO08x\+::dynamic\+\_\+calibration\+\_\+save (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Saves dynamic/motion engine calibration data to \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} internal flash immediately. See ref manual 6.\+4.\+5.\+1. 

\begin{DoxyReturn}{Returns}
True if save dynamic/\+ME calibration data succeeded. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a85f1eca475ea0e6fbaff75c8a297d671_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a138577792350b8d5cc48cbf46b34c4f3}\label{class_b_n_o08x_a138577792350b8d5cc48cbf46b34c4f3}} 
\index{BNO08x@{BNO08x}!get\_frs@{get\_frs}}
\index{get\_frs@{get\_frs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{get\_frs()}{get\_frs()}}
{\footnotesize\ttfamily bool BNO08x\+::get\+\_\+frs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a8ac8ee2d5f81f6102ed94866f2bdcc8e}{BNO08x\+Frs\+ID}}}]{frs\+\_\+\+ID,  }\item[{uint32\+\_\+t(\&)}]{data\mbox{[}16\mbox{]},  }\item[{uint16\+\_\+t \&}]{rx\+\_\+data\+\_\+sz }\end{DoxyParamCaption})}



Retrieves a record from flash record system (if your goal is to retrieve sensor specific meta data use the \mbox{\hyperlink{class_b_n_o08x_rpt}{BNO08x\+Rpt}}\+:get\+\_\+meta\+\_\+data() method instead) 

For more details on returned and data and frs\+\_\+\+IDs see ref. manual 6.\+3.\+7 \& 4.\+3


\begin{DoxyParams}{Parameters}
{\em frs\+\_\+\+ID} & The ID of the desired record to retrieve from flash. \\
\hline
{\em data} & Buffer of 16 uint32\+\_\+t to store retrieved data. \\
\hline
{\em rx\+\_\+data\+\_\+sz} & Reference to store number of 32 bit words retrieved from flash.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if get flash record system operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{class_b_n_o08x_a138577792350b8d5cc48cbf46b34c4f3_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a138577792350b8d5cc48cbf46b34c4f3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_aa8fd64f60de86ff6b8562f90f3b09690}\label{class_b_n_o08x_aa8fd64f60de86ff6b8562f90f3b09690}} 
\index{BNO08x@{BNO08x}!get\_product\_IDs@{get\_product\_IDs}}
\index{get\_product\_IDs@{get\_product\_IDs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{get\_product\_IDs()}{get\_product\_IDs()}}
{\footnotesize\ttfamily sh2\+\_\+\+Product\+Ids\+\_\+t BNO08x\+::get\+\_\+product\+\_\+\+IDs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns product ID info sent by IMU at initialization. 

\begin{DoxyReturn}{Returns}
The product ID info returned at initialization. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a96d47dd0f9aedfbe3f731f8ae76b2e85}\label{class_b_n_o08x_a96d47dd0f9aedfbe3f731f8ae76b2e85}} 
\index{BNO08x@{BNO08x}!get\_reset\_reason@{get\_reset\_reason}}
\index{get\_reset\_reason@{get\_reset\_reason}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{get\_reset\_reason()}{get\_reset\_reason()}}
{\footnotesize\ttfamily \mbox{\hyperlink{_b_n_o08x_global_types_8hpp_afed71c9ed8a8563767f26282408ccee2}{BNO08x\+Reset\+Reason}} BNO08x\+::get\+\_\+reset\+\_\+reason (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns reason for previous reset via product ID report. 

\begin{DoxyReturn}{Returns}
Enum object containing reset reason, \mbox{\hyperlink{_b_n_o08x_global_types_8hpp_afed71c9ed8a8563767f26282408ccee2a0db45d2a4141101bdfe48e3314cfbca3}{BNO08x\+Reset\+Reason\+::\+UNDEFINED}} if failure. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a96d47dd0f9aedfbe3f731f8ae76b2e85_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_ad42c335827c7b09cd2e4ff303a0d3520}\label{class_b_n_o08x_ad42c335827c7b09cd2e4ff303a0d3520}} 
\index{BNO08x@{BNO08x}!get\_system\_orientation@{get\_system\_orientation}}
\index{get\_system\_orientation@{get\_system\_orientation}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{get\_system\_orientation()}{get\_system\_orientation()}}
{\footnotesize\ttfamily bool BNO08x\+::get\+\_\+system\+\_\+orientation (\begin{DoxyParamCaption}\item[{float \&}]{Qw,  }\item[{float \&}]{Qx,  }\item[{float \&}]{Qy,  }\item[{float \&}]{Qz }\end{DoxyParamCaption})}



Retrieves the system orientation of the \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device and converts to float. 


\begin{DoxyParams}{Parameters}
{\em Qw} & Reference to save real component of mapping quaternion. \\
\hline
{\em Qx} & Reference to save X (i) component of mapping quaternion. \\
\hline
{\em Qy} & Reference to save Y (j) component of mapping quaternion. \\
\hline
{\em Qz} & Reference to save Z (k) component of mapping quaternion. \\
\hline
\end{DoxyParams}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_ad42c335827c7b09cd2e4ff303a0d3520_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_ad42c335827c7b09cd2e4ff303a0d3520_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503}\label{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503}} 
\index{BNO08x@{BNO08x}!hard\_reset@{hard\_reset}}
\index{hard\_reset@{hard\_reset}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{hard\_reset()}{hard\_reset()}}
{\footnotesize\ttfamily bool BNO08x\+::hard\+\_\+reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Hard resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device. 

\begin{DoxyReturn}{Returns}
True if reset was success. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_aea8e2c6dd7a2c9899479a7f39fe94798}\label{class_b_n_o08x_aea8e2c6dd7a2c9899479a7f39fe94798}} 
\index{BNO08x@{BNO08x}!initialize@{initialize}}
\index{initialize@{initialize}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{initialize()}{initialize()}}
{\footnotesize\ttfamily bool BNO08x\+::initialize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Initializes \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} sensor. 

Resets sensor and goes through initialization process. Configures GPIO, required ISRs, and launches two tasks, one to manage SPI transactions, another to process any received data.

\begin{DoxyReturn}{Returns}
True if initialization was success, false if otherwise. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_aaaa15b21ad98a3b161065c3d03ff62b5}\label{class_b_n_o08x_aaaa15b21ad98a3b161065c3d03ff62b5}} 
\index{BNO08x@{BNO08x}!on@{on}}
\index{on@{on}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{on()}{on()}}
{\footnotesize\ttfamily bool BNO08x\+::on (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Places \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device in on state by sending ON (2) command on \char`\"{}device\char`\"{} channel. 

\begin{DoxyReturn}{Returns}
True if on operation succeeded. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6}\label{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6}} 
\index{BNO08x@{BNO08x}!print\_product\_ids@{print\_product\_ids}}
\index{print\_product\_ids@{print\_product\_ids}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{print\_product\_ids()}{print\_product\_ids()}}
{\footnotesize\ttfamily void BNO08x\+::print\+\_\+product\+\_\+ids (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Prints product IDs received at initialization. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_aae4512fa4768becf0e3919a0e0ec34d8}\label{class_b_n_o08x_aae4512fa4768becf0e3919a0e0ec34d8}} 
\index{BNO08x@{BNO08x}!print\_system\_orientation@{print\_system\_orientation}}
\index{print\_system\_orientation@{print\_system\_orientation}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{print\_system\_orientation()}{print\_system\_orientation()}}
{\footnotesize\ttfamily void BNO08x\+::print\+\_\+system\+\_\+orientation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Retrieves and prints system orientation. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_aae4512fa4768becf0e3919a0e0ec34d8_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_a082c79d9951ac32ea5fa25de90255a41}\label{class_b_n_o08x_a082c79d9951ac32ea5fa25de90255a41}} 
\index{BNO08x@{BNO08x}!register\_cb@{register\_cb}}
\index{register\_cb@{register\_cb}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{register\_cb()}{register\_cb()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool BNO08x\+::register\+\_\+cb (\begin{DoxyParamCaption}\item[{std\+::function$<$ void(uint8\+\_\+t report\+\_\+\+ID)$>$}]{cb\+\_\+fxn }\end{DoxyParamCaption})}



Registers a callback to execute when new data from a report is received, overloaded with callback param for most recent report ID. 


\begin{DoxyParams}{Parameters}
{\em cb\+\_\+fxn} & Pointer to the call-\/back function should be of void return type with single input param of uint8\+\_\+t for most recent report ID.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3}\label{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3}} 
\index{BNO08x@{BNO08x}!register\_cb@{register\_cb}}
\index{register\_cb@{register\_cb}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{register\_cb()}{register\_cb()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool BNO08x\+::register\+\_\+cb (\begin{DoxyParamCaption}\item[{std\+::function$<$ void(void)$>$}]{cb\+\_\+fxn }\end{DoxyParamCaption})}



Registers a callback to execute when new data from a report is received. 


\begin{DoxyParams}{Parameters}
{\em cb\+\_\+fxn} & Pointer to the call-\/back function should be of void return type void input param.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_abba85271f3333b7f395ec55915c1d5f9}\label{class_b_n_o08x_abba85271f3333b7f395ec55915c1d5f9}} 
\index{BNO08x@{BNO08x}!set\_system\_orientation@{set\_system\_orientation}}
\index{set\_system\_orientation@{set\_system\_orientation}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{set\_system\_orientation()}{set\_system\_orientation()}}
{\footnotesize\ttfamily bool BNO08x\+::set\+\_\+system\+\_\+orientation (\begin{DoxyParamCaption}\item[{float}]{Qw,  }\item[{float}]{Qx,  }\item[{float}]{Qy,  }\item[{float}]{Qz }\end{DoxyParamCaption})}



Sets the system orientation of the \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device and persist it in flash (FRS). 

\begin{DoxyNote}{Note}
Datasheet Figure 4.\+3 for reference of physical mounting position relative to mapping quaternion. 

Use SQRT2\+OVER2 as a constant for sqrt(2)/2 

that a reset is required to apply changes. 

This configuration seems only to work if reports are already enabled. e.\+g. set .rpt.\+rv.\+enable(\+PERIOD) prior this call
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em Qw} & Real component of mapping quaternion. \\
\hline
{\em Qx} & X (i) component of mapping quaternion. \\
\hline
{\em Qy} & Y (j) component of mapping quaternion. \\
\hline
{\em Qz} & Z (k) component of mapping quaternion. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c}\label{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c}} 
\index{BNO08x@{BNO08x}!sleep@{sleep}}
\index{sleep@{sleep}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sleep()}{sleep()}}
{\footnotesize\ttfamily bool BNO08x\+::sleep (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Places \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device in sleep state by sending SLEEP (3) command on \char`\"{}device\char`\"{} channel. 

\begin{DoxyReturn}{Returns}
True if sleep operation succeeded. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_b_n_o08x_a973a1b1785f3302ee1b2702c6a27646e}\label{class_b_n_o08x_a973a1b1785f3302ee1b2702c6a27646e}} 
\index{BNO08x@{BNO08x}!soft\_reset@{soft\_reset}}
\index{soft\_reset@{soft\_reset}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{soft\_reset()}{soft\_reset()}}
{\footnotesize\ttfamily bool BNO08x\+::soft\+\_\+reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Soft resets \mbox{\hyperlink{class_b_n_o08x}{BNO08x}} device by sending RESET (1) command on \char`\"{}device\char`\"{} channel. 

\begin{DoxyReturn}{Returns}
True if soft reset operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a973a1b1785f3302ee1b2702c6a27646e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{class_b_n_o08x_aa616a645a4fc9054194fdbf76ec9c5b5}\label{class_b_n_o08x_aa616a645a4fc9054194fdbf76ec9c5b5}} 
\index{BNO08x@{BNO08x}!write\_frs@{write\_frs}}
\index{write\_frs@{write\_frs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{write\_frs()}{write\_frs()}}
{\footnotesize\ttfamily bool BNO08x\+::write\+\_\+frs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a8ac8ee2d5f81f6102ed94866f2bdcc8e}{BNO08x\+Frs\+ID}}}]{frs\+\_\+\+ID,  }\item[{uint32\+\_\+t $\ast$}]{data,  }\item[{const uint16\+\_\+t}]{tx\+\_\+data\+\_\+sz }\end{DoxyParamCaption})}



Writes a record to flash record system. 

For more details on flash records and frs\+\_\+\+IDs see ref. manual 6.\+3.\+6 \& 4.\+3


\begin{DoxyParams}{Parameters}
{\em frs\+\_\+\+ID} & The ID of the desired to write to flash. \\
\hline
{\em data} & Buffer of 16 uint32\+\_\+t to store data to send. \\
\hline
{\em tx\+\_\+data\+\_\+sz} & Length of data, amount of 32 bit words to write to flash.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if get flash record system operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=335pt]{class_b_n_o08x_aa616a645a4fc9054194fdbf76ec9c5b5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_aa616a645a4fc9054194fdbf76ec9c5b5_icgraph}
\end{center}
\end{figure}


\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_b_n_o08x_a6dd0081dc9eb0cfb019bfdca3aa31802}\label{class_b_n_o08x_a6dd0081dc9eb0cfb019bfdca3aa31802}} 
\index{BNO08x@{BNO08x}!BNO08xSH2HAL@{BNO08xSH2HAL}}
\index{BNO08xSH2HAL@{BNO08xSH2HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{BNO08xSH2HAL}{BNO08xSH2HAL}}
{\footnotesize\ttfamily friend class \mbox{\hyperlink{class_b_n_o08x_s_h2_h_a_l}{BNO08x\+SH2\+HAL}}\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{class_b_n_o08x_a190775b71c35d8007faae7dd6a9f1030}\label{class_b_n_o08x_a190775b71c35d8007faae7dd6a9f1030}} 
\index{BNO08x@{BNO08x}!BNO08xTestHelper@{BNO08xTestHelper}}
\index{BNO08xTestHelper@{BNO08xTestHelper}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{BNO08xTestHelper}{BNO08xTestHelper}}
{\footnotesize\ttfamily friend class \mbox{\hyperlink{class_b_n_o08x_test_helper}{BNO08x\+Test\+Helper}}\hspace{0.3cm}{\ttfamily [friend]}}



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_b_n_o08x_ae1db7422ee9c2cac77382cc0a7aa430e}\label{class_b_n_o08x_ae1db7422ee9c2cac77382cc0a7aa430e}} 
\index{BNO08x@{BNO08x}!rpt@{rpt}}
\index{rpt@{rpt}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{rpt}{rpt}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct_b_n_o08x_1_1bno08x__reports__t}{bno08x\+\_\+reports\+\_\+t}} BNO08x\+::rpt}

\mbox{\Hypertarget{class_b_n_o08x_ab8d5ebfc080838870e320494da3fa64d}\label{class_b_n_o08x_ab8d5ebfc080838870e320494da3fa64d}} 
\index{BNO08x@{BNO08x}!SQRT2OVER2@{SQRT2OVER2}}
\index{SQRT2OVER2@{SQRT2OVER2}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{SQRT2OVER2}{SQRT2OVER2}}
{\footnotesize\ttfamily constexpr float BNO08x\+::\+SQRT2\+OVER2 = 0.\+7071067811865476f\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}}



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
/media/develop/git/imu\+\_\+pr\+\_\+cleanup/components/esp32\+\_\+\+BNO08x/include/\mbox{\hyperlink{_b_n_o08x_8hpp}{BNO08x.\+hpp}}\item 
\mbox{\hyperlink{_b_n_o08x_8cpp}{BNO08x.\+cpp}}\end{DoxyCompactItemize}
