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


\doxylink{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}
\doxysubsubsection*{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}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef struct 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}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_b_n_o08x_ad12fb6cf310ad7a04a4e53809833bd61}{BNO08x}} (\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_aeda443e9f608fccfec0e6770edc90c82}{imu\+\_\+config}}=\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}}())
\begin{DoxyCompactList}\small\item\em \doxylink{class_b_n_o08x}{BNO08x} imu constructor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_b_n_o08x_a687eee44d68e1bcabce04780d7eb5fb9}{\texorpdfstring{$\sim$}{\string~}\+BNO08x}} ()
\begin{DoxyCompactList}\small\item\em \doxylink{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 \doxylink{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 \doxylink{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 \doxylink{class_b_n_o08x}{BNO08x} device by sending RESET (1) command on "{}device"{} 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_ab2a2ace42f7f438d6a799dfcbc243147}{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 \doxylink{class_b_n_o08x}{BNO08x} device in on state by sending ON (2) command on "{}device"{} channel. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c}{sleep}} ()
\begin{DoxyCompactList}\small\item\em Places \doxylink{class_b_n_o08x}{BNO08x} device in sleep state by sending SLEEP (3) command on "{}device"{} channel. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_af0dd28db9e331312e45937b12295ca94}{calibration\+\_\+start}} (uint32\+\_\+t period\+\_\+us)
\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_a817ec9ad9d51a1515f658374de48f483}{calibration\+\_\+end}} (sh2\+\_\+\+Cal\+Status\+\_\+t \&status)
\begin{DoxyCompactList}\small\item\em Ends turn-\/table calibration, see ref. manual 6.\+4.\+10.\+2. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5}{dynamic\+\_\+calibration\+\_\+enable}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_aeeb4f49593c062357c3b7037bc2de850}{BNO08x\+Cal\+Sel}} sensor)
\begin{DoxyCompactList}\small\item\em Enables 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_a5c7498f6fa4bd43280dff1d322233b95}{dynamic\+\_\+calibration\+\_\+disable}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_aeeb4f49593c062357c3b7037bc2de850}{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 \doxylink{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 \doxylink{class_b_n_o08x}{BNO08x} internal flash See ref manual 6.\+4.\+7.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_a1c703a1fb79ce777dc73a83f02bfdb85}{save\+\_\+dynamic\+\_\+calibration}} ()
\begin{DoxyCompactList}\small\item\em Saves dynamic/motion engine calibration data to \doxylink{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_a84a19cd1564f8d427394f137df54477d}{clear\+\_\+dynamic\+\_\+calibration}} ()
\begin{DoxyCompactList}\small\item\em Clears dynamic/motion engine calibration data and resets \doxylink{class_b_n_o08x}{BNO08x} device. See ref manual 6.\+4.\+9.\+1. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_b_n_o08x_aee6ce74b95c1e1651cb93a60d723c16c}{get\+\_\+frs}} (uint16\+\_\+t 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 meta data use the \doxylink{class_b_n_o08x_rpt}{BNO08x\+Rpt}\+:get\+\_\+meta\+\_\+data() method instead) \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}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{class_b_n_o08x_a0559c3f2f49d287e7c400a780975f850}{activity\+\_\+to\+\_\+str}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_abcc5d57e21ea6ed79e792deafcb62187}{BNO08x\+Activity}} activity)
\begin{DoxyCompactList}\small\item\em Converts a BNO08x\+Activity enum to string. \end{DoxyCompactList}\item 
static const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{class_b_n_o08x_aa8347555e37a185bef4a834b04231123}{stability\+\_\+to\+\_\+str}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a498b35f9e00b24e51f8f60b029751ab5}{BNO08x\+Stability}} stability)
\begin{DoxyCompactList}\small\item\em Converts a BNO08x\+Stability enum to string. \end{DoxyCompactList}\item 
static const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{class_b_n_o08x_a41d65567bb316971f68718ca69039ace}{accuracy\+\_\+to\+\_\+str}} (\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_aed7bab8e55be415938e078ebe72562a0}{BNO08x\+Accuracy}} accuracy)
\end{DoxyCompactItemize}
\doxysubsubsection*{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}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task}} ()
\begin{DoxyCompactList}\small\item\em Task responsible for parsing/handling sensor events sent by SH2 HAL and updating data that is returned to user. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task}} ()
\begin{DoxyCompactList}\small\item\em Task responsible for calling shtp\+\_\+service() when HINT is asserted to dispatch any sh2 HAL lib callbacks. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7}{cb\+\_\+task}} ()
\begin{DoxyCompactList}\small\item\em Task responsible for executing callbacks registered with \doxylink{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3}{register\+\_\+cb()}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a8e43dd50140f326cfb58e00399923e8c}{lock\+\_\+sh2\+\_\+\+HAL}} ()
\begin{DoxyCompactList}\small\item\em Locks sh2 HAL lib to only allow the calling task to call its APIs. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a2dbce689245a1b9968e3ea627d2b9a42}{unlock\+\_\+sh2\+\_\+\+HAL}} ()
\begin{DoxyCompactList}\small\item\em Unlocks sh2 HAL lib to allow other tasks to call its APIs. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a37e7c18232f47694d5e55bacc109189c}{lock\+\_\+user\+\_\+data}} ()
\begin{DoxyCompactList}\small\item\em Locks locks user data to only allow the calling task to read/modify it. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a171b4f380b145e295a11219a8e2a961a}{unlock\+\_\+user\+\_\+data}} ()
\begin{DoxyCompactList}\small\item\em Unlocks user data to allow other tasks to read/modify it. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a7d5250a6017f9e76e3c2ddb00d7103a1}{handle\+\_\+sensor\+\_\+report}} (sh2\+\_\+\+Sensor\+Value\+\_\+t \texorpdfstring{$\ast$}{*}sensor\+\_\+val)
\begin{DoxyCompactList}\small\item\em Parses receieved report and updates uer data with it. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a86275a93706656dae6af421bc15a4e59}{handle\+\_\+cb}} (uint8\+\_\+t rpt\+\_\+\+ID, \mbox{\hyperlink{class_b_n_o08x_cb_generic}{BNO08x\+Cb\+Generic}} \texorpdfstring{$\ast$}{*}cb\+\_\+entry)
\begin{DoxyCompactList}\small\item\em Determines the flavor of a passed callback and executes it appropriately. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a589eb9780f5bf613bbd447ef5b9ade3d}{init\+\_\+config\+\_\+args}} ()
\begin{DoxyCompactList}\small\item\em Initializes required esp-\/idf SPI data structures with values from user passed \doxylink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t} struct. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ae0dab25557befcf62bf384fdc241ef10}{init\+\_\+gpio}} ()
\begin{DoxyCompactList}\small\item\em Initializes required gpio. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a8f34d5475474f00ae6a92f73c1fe14e4}{init\+\_\+gpio\+\_\+inputs}} ()
\begin{DoxyCompactList}\small\item\em Initializes required gpio inputs. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ad0b9e8f8d051798bb1da9b19598dbd64}{init\+\_\+gpio\+\_\+outputs}} ()
\begin{DoxyCompactList}\small\item\em Initializes required gpio outputs. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_aa27026da2c52b4aca49b78863f10ec61}{init\+\_\+hint\+\_\+isr}} ()
\begin{DoxyCompactList}\small\item\em Initializes host interrupt ISR. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a58f43c8bb1e7fe8560ce442d46240e81}{init\+\_\+spi}} ()
\begin{DoxyCompactList}\small\item\em Initializes SPI. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a90d959312e6f7f8151b8a38218492ead}{init\+\_\+tasks}} ()
\begin{DoxyCompactList}\small\item\em Initializes data\+\_\+proc\+\_\+task. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ae2fc9a0fe63a927c015a267621316a80}{init\+\_\+sh2\+\_\+\+HAL}} ()
\begin{DoxyCompactList}\small\item\em Initializes sh2 HAL. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a4f007dd431f10e741414d197bb4926c3}{deinit\+\_\+gpio}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes GPIO, called from deconstructor. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a1f0f4cd8dc7d38448e2198ea47d0018c}{deinit\+\_\+gpio\+\_\+inputs}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes GPIO inputs, called from deconstructor. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ab132a061bd437fd109225446aa1f6010}{deinit\+\_\+gpio\+\_\+outputs}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes GPIO outputs, called from deconstructor. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a9d96108b0f5b1e1e1ac431bc993ca758}{deinit\+\_\+hint\+\_\+isr}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes host interrupt ISR, called from deconstructor. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a233920ce97f685fbdabecccacf471d85}{deinit\+\_\+spi}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes SPI. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a968144efd5100ccce0e453c40a63592b}{deinit\+\_\+tasks}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes tasks used by \doxylink{class_b_n_o08x}{BNO08x} driver. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a75c7226ea4626862a5039aa053116861}{deinit\+\_\+sh2\+\_\+\+HAL}} ()
\begin{DoxyCompactList}\small\item\em Deinitializes sh2 HAL. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a69cf0da11a71f5ea40f9fddd598d06fc}{wait\+\_\+for\+\_\+hint}} ()
\begin{DoxyCompactList}\small\item\em Waits for HINT pin assertion or HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS to elapse. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a6602374314c07e9f707c0a6d2234bf7e}{wait\+\_\+for\+\_\+reset}} ()
\begin{DoxyCompactList}\small\item\em Waits for SH2 HAL lib to detect reset or HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS to elapse. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_b_n_o08x_a6711a624f7229f2eee51ee0a5bc87e67}{toggle\+\_\+reset}} ()
\begin{DoxyCompactList}\small\item\em Toggles reset gpio pin for hard reset of \doxylink{class_b_n_o08x}{BNO08x} device. \end{DoxyCompactList}\item 
esp\+\_\+err\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ac732c968f8d639c81f5d423aad004e95}{re\+\_\+enable\+\_\+reports}} ()
\begin{DoxyCompactList}\small\item\em Re-\/enables all reports enabled by user (called when \doxylink{class_b_n_o08x}{BNO08x} reset is detected by sh2 HAL lib). \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Private Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \mbox{\hyperlink{class_b_n_o08x_a0ae135d7bf7a5f047a1d1aa5cc07e520}{data\+\_\+proc\+\_\+task\+\_\+trampoline}} (void \texorpdfstring{$\ast$}{*}arg)
\begin{DoxyCompactList}\small\item\em Static function used to launch data processing task. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{class_b_n_o08x_a888eaf810d6140e2e771c44f5857b7c1}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task\+\_\+trampoline}} (void \texorpdfstring{$\ast$}{*}arg)
\begin{DoxyCompactList}\small\item\em Static function used to launch sh2 HAL service task. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{class_b_n_o08x_addf01190119091237ad7a9a1aaea4dcc}{cb\+\_\+task\+\_\+trampoline}} (void \texorpdfstring{$\ast$}{*}arg)
\begin{DoxyCompactList}\small\item\em Static function used to launch cb\+\_\+task task. \end{DoxyCompactList}\item 
static void IRAM\+\_\+\+ATTR \mbox{\hyperlink{class_b_n_o08x_a804b95c58c30d36933fd251626b85bf7}{hint\+\_\+handler}} (void \texorpdfstring{$\ast$}{*}arg)
\begin{DoxyCompactList}\small\item\em HINT interrupt service routine, handles falling edge of \doxylink{class_b_n_o08x}{BNO08x} HINT pin. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
Task\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_af9b6fbf35e7cd55d517d30c6429a21a4}{data\+\_\+proc\+\_\+task\+\_\+hdl}}
\begin{DoxyCompactList}\small\item\em \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} task handle \end{DoxyCompactList}\item 
Task\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_afb288b912294ac6a568c1aab8bb382f6}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task\+\_\+hdl}}
\begin{DoxyCompactList}\small\item\em \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} task handle \end{DoxyCompactList}\item 
Task\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a6931b6544788f268a9441a9f9d4a5e33}{cb\+\_\+task\+\_\+hdl}}
\begin{DoxyCompactList}\small\item\em \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} task handle \end{DoxyCompactList}\item 
Semaphore\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_aa92ff86d82a097a565ed2a2b9000b571}{sem\+\_\+kill\+\_\+tasks}}
\begin{DoxyCompactList}\small\item\em Counting Semaphore to count amount of killed tasks. \end{DoxyCompactList}\item 
sh2\+\_\+\+Hal\+\_\+t \mbox{\hyperlink{class_b_n_o08x_abae123678dc62f139749f13a3b6d1baa}{sh2\+\_\+\+HAL}}
\begin{DoxyCompactList}\small\item\em sh2 hardware abstraction layer struct for use with sh2 HAL lib. \end{DoxyCompactList}\item 
Queue\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_aefd6d59af9f8cf73be017db55f8b2e6a}{queue\+\_\+rx\+\_\+sensor\+\_\+event}}
\begin{DoxyCompactList}\small\item\em Queue to send sensor events from sh2 HAL sensor event callback (\doxylink{class_b_n_o08x_s_h2_h_a_l_a19c041ef614d7eda85b94b10202a3997}{BNO08x\+SH2\+HAL\+::sensor\+\_\+event\+\_\+cb()}) to \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} \end{DoxyCompactList}\item 
Queue\+Handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a8b45106ee35e8d2ddc9709b7f788212e}{queue\+\_\+cb\+\_\+report\+\_\+id}}
\begin{DoxyCompactList}\small\item\em Queue to send report ID of most recent report to \doxylink{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7}{cb\+\_\+task()} \end{DoxyCompactList}\item 
\mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_aeda443e9f608fccfec0e6770edc90c82}{imu\+\_\+config}} \{\}
\begin{DoxyCompactList}\small\item\em IMU configuration settings. \end{DoxyCompactList}\item 
spi\+\_\+bus\+\_\+config\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a982f065df42f00e53fd87c840efdb0f1}{bus\+\_\+config}} \{\}
\begin{DoxyCompactList}\small\item\em SPI bus GPIO configuration settings. \end{DoxyCompactList}\item 
spi\+\_\+device\+\_\+interface\+\_\+config\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a425a1f5a9f3232aadc685caaf4c2f82e}{imu\+\_\+spi\+\_\+config}} \{\}
\begin{DoxyCompactList}\small\item\em SPI slave device settings. \end{DoxyCompactList}\item 
spi\+\_\+device\+\_\+handle\+\_\+t \mbox{\hyperlink{class_b_n_o08x_acc0ea091465fc9a5736f5e0c6a0ce8ef}{spi\+\_\+hdl}} \{\}
\begin{DoxyCompactList}\small\item\em SPI device handle. \end{DoxyCompactList}\item 
spi\+\_\+transaction\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ac16adc5f00b0039c98a4921f13895026}{spi\+\_\+transaction}} \{\}
\begin{DoxyCompactList}\small\item\em SPI transaction handle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct_b_n_o08x_private_types_1_1bno08x__init__status__t}{BNO08x\+Private\+Types\+::bno08x\+\_\+init\+\_\+status\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_a0a2d157afc0da144536d8d6927cc63f1}{init\+\_\+status}}
\begin{DoxyCompactList}\small\item\em Initialization status of various functionality, used by deconstructor during cleanup, set during initialization. \end{DoxyCompactList}\item 
\mbox{\hyperlink{struct_b_n_o08x_private_types_1_1bno08x__sync__ctx__t}{BNO08x\+Private\+Types\+::bno08x\+\_\+sync\+\_\+ctx\+\_\+t}} \mbox{\hyperlink{class_b_n_o08x_a22bb1bdc1153a455ec8f549d9389406e}{sync\+\_\+ctx}}
\begin{DoxyCompactList}\small\item\em Holds context used to synchronize tasks and callback execution. \end{DoxyCompactList}\item 
sh2\+\_\+\+Product\+Ids\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ac8f6fc515923ffc820a7cfafc0c2830f}{product\+\_\+\+IDs}}
\begin{DoxyCompactList}\small\item\em Product ID info returned IMU at initialization, can be viewed with \doxylink{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6}{print\+\_\+product\+\_\+ids()} \end{DoxyCompactList}\item 
etl\+::map$<$ uint8\+\_\+t, \mbox{\hyperlink{class_b_n_o08x_rpt}{BNO08x\+Rpt}} \texorpdfstring{$\ast$}{*}, \mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a9808babb45af9b32fc51cef8d50341be}{TOTAL\+\_\+\+RPT\+\_\+\+COUNT}}, etl\+::less$<$ uint8\+\_\+t $>$ $>$ \mbox{\hyperlink{class_b_n_o08x_a58b4949a61a784d09df3e7ecda175b39}{usr\+\_\+reports}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
static const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE \mbox{\hyperlink{class_b_n_o08x_a876ef3f899989de83ee6a9d6b218f8e1}{DATA\+\_\+\+PROC\+\_\+\+TASK\+\_\+\+SZ}}
\begin{DoxyCompactList}\small\item\em Size of \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} stack in bytes. \end{DoxyCompactList}\item 
static const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE \mbox{\hyperlink{class_b_n_o08x_aac1f772772db2d5fd14d51e44649d8eb}{SH2\+\_\+\+HAL\+\_\+\+SERVICE\+\_\+\+TASK\+\_\+\+SZ}}
\begin{DoxyCompactList}\small\item\em Size of \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} stack in bytes. \end{DoxyCompactList}\item 
static const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE \mbox{\hyperlink{class_b_n_o08x_a63002547e309412846c3967c9d068ee3}{CB\+\_\+\+TASK\+\_\+\+SZ}}
\begin{DoxyCompactList}\small\item\em Size of \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} stack in bytes. \end{DoxyCompactList}\item 
static const constexpr uint16\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a1a037bda37493cde56732cc6fdc7884b}{RX\+\_\+\+DATA\+\_\+\+LENGTH}} = 300U
\begin{DoxyCompactList}\small\item\em length buffer containing data received over spi \end{DoxyCompactList}\item 
static const constexpr Tick\+Type\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ae51d4e3228a91ee407d5866e604804c4}{HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS}}
\begin{DoxyCompactList}\small\item\em Max wait between HINT being asserted by \doxylink{class_b_n_o08x}{BNO08x} before transaction is considered failed (in miliseconds). \end{DoxyCompactList}\item 
static const constexpr Tick\+Type\+\_\+t \mbox{\hyperlink{class_b_n_o08x_ae32ce16c51a93b9d53058bf3b6f0d94b}{DATA\+\_\+\+AVAILABLE\+\_\+\+TIMEOUT\+\_\+\+MS}}
\begin{DoxyCompactList}\small\item\em Max wait between \doxylink{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc}{data\+\_\+available()} being called and no new data/report being detected. \end{DoxyCompactList}\item 
static const constexpr Tick\+Type\+\_\+t \mbox{\hyperlink{class_b_n_o08x_aa07e329d693eb8d9270a7f9ad6f1d94b}{HARD\+\_\+\+RESET\+\_\+\+DELAY\+\_\+\+MS}}
\begin{DoxyCompactList}\small\item\em How long RST pin is held low during hard reset (min 10ns according to datasheet, but should be longer for stable operation) \end{DoxyCompactList}\item 
static const constexpr uint32\+\_\+t \mbox{\hyperlink{class_b_n_o08x_a031976dacd97917d9d72edccb607160c}{SCLK\+\_\+\+MAX\+\_\+\+SPEED}} = 3000000\+UL
\begin{DoxyCompactList}\small\item\em Max SPI SCLK speed \doxylink{class_b_n_o08x}{BNO08x} is capable of. \end{DoxyCompactList}\item 
static const constexpr char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{class_b_n_o08x_a2c98d5f2c406a3efd0b48c5666fa8c46}{TAG}} = "{}BNO08x"{}
\begin{DoxyCompactList}\small\item\em Class tag used for serial print statements. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{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}
\doxylink{class_b_n_o08x}{BNO08x} IMU driver class. 

\doxysubsection{Member Typedef Documentation}
\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 BNO08x\+::bno08x\+\_\+reports\+\_\+t BNO08x\+::bno08x\+\_\+reports\+\_\+t}



Contains report implementations. 



\doxysubsection{Constructor \& Destructor Documentation}
\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})}



\doxylink{class_b_n_o08x}{BNO08x} imu constructor. 

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


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



\doxylink{class_b_n_o08x}{BNO08x} imu deconstructor. 

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

\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_a687eee44d68e1bcabce04780d7eb5fb9_cgraph}
\end{center}
\end{figure}


\doxysubsection{Member Function Documentation}
\Hypertarget{class_b_n_o08x_a41d65567bb316971f68718ca69039ace}\label{class_b_n_o08x_a41d65567bb316971f68718ca69039ace} 
\index{BNO08x@{BNO08x}!accuracy\_to\_str@{accuracy\_to\_str}}
\index{accuracy\_to\_str@{accuracy\_to\_str}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{accuracy\_to\_str()}{accuracy\_to\_str()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} BNO08x\+::accuracy\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_aed7bab8e55be415938e078ebe72562a0}{BNO08x\+Accuracy}}}]{accuracy }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{class_b_n_o08x_a41d65567bb316971f68718ca69039ace_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a0559c3f2f49d287e7c400a780975f850}\label{class_b_n_o08x_a0559c3f2f49d287e7c400a780975f850} 
\index{BNO08x@{BNO08x}!activity\_to\_str@{activity\_to\_str}}
\index{activity\_to\_str@{activity\_to\_str}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{activity\_to\_str()}{activity\_to\_str()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} BNO08x\+::activity\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_abcc5d57e21ea6ed79e792deafcb62187}{BNO08x\+Activity}}}]{activity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Converts a BNO08x\+Activity enum to string. 

\begin{DoxyReturn}{Returns}
The resulting string conversion of the enum. 
\end{DoxyReturn}
\Hypertarget{class_b_n_o08x_a817ec9ad9d51a1515f658374de48f483}\label{class_b_n_o08x_a817ec9ad9d51a1515f658374de48f483} 
\index{BNO08x@{BNO08x}!calibration\_end@{calibration\_end}}
\index{calibration\_end@{calibration\_end}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{calibration\_end()}{calibration\_end()}}
{\footnotesize\ttfamily bool BNO08x\+::calibration\+\_\+end (\begin{DoxyParamCaption}\item[{sh2\+\_\+\+Cal\+Status\+\_\+t \&}]{status }\end{DoxyParamCaption})}



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}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a817ec9ad9d51a1515f658374de48f483_cgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_af0dd28db9e331312e45937b12295ca94}\label{class_b_n_o08x_af0dd28db9e331312e45937b12295ca94} 
\index{BNO08x@{BNO08x}!calibration\_start@{calibration\_start}}
\index{calibration\_start@{calibration\_start}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{calibration\_start()}{calibration\_start()}}
{\footnotesize\ttfamily bool BNO08x\+::calibration\+\_\+start (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{period\+\_\+us }\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 \doxylink{class_b_n_o08x_a817ec9ad9d51a1515f658374de48f483}{calibration\+\_\+end()}. See ref. manual 6.\+4.\+10 for more detailed instructions.

\begin{DoxyReturn}{Returns}
True if start simple calibration 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_af0dd28db9e331312e45937b12295ca94_cgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7}\label{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7} 
\index{BNO08x@{BNO08x}!cb\_task@{cb\_task}}
\index{cb\_task@{cb\_task}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{cb\_task()}{cb\_task()}}
{\footnotesize\ttfamily void BNO08x\+::cb\+\_\+task (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Task responsible for executing callbacks registered with \doxylink{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3}{register\+\_\+cb()}. 

\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_a5fb7f6c3e5d1b3478f529644a0f175b7_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_a5fb7f6c3e5d1b3478f529644a0f175b7_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_addf01190119091237ad7a9a1aaea4dcc}\label{class_b_n_o08x_addf01190119091237ad7a9a1aaea4dcc} 
\index{BNO08x@{BNO08x}!cb\_task\_trampoline@{cb\_task\_trampoline}}
\index{cb\_task\_trampoline@{cb\_task\_trampoline}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{cb\_task\_trampoline()}{cb\_task\_trampoline()}}
{\footnotesize\ttfamily void BNO08x\+::cb\+\_\+task\+\_\+trampoline (\begin{DoxyParamCaption}\item[{void \texorpdfstring{$\ast$}{*}}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}}



Static function used to launch cb\+\_\+task task. 

Used such that \doxylink{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7}{cb\+\_\+task()} can be non-\/static class member.


\begin{DoxyParams}{Parameters}
{\em arg} & void pointer to \doxylink{class_b_n_o08x}{BNO08x} imu object \\
\hline
\end{DoxyParams}
\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_addf01190119091237ad7a9a1aaea4dcc_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_addf01190119091237ad7a9a1aaea4dcc_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a84a19cd1564f8d427394f137df54477d}\label{class_b_n_o08x_a84a19cd1564f8d427394f137df54477d} 
\index{BNO08x@{BNO08x}!clear\_dynamic\_calibration@{clear\_dynamic\_calibration}}
\index{clear\_dynamic\_calibration@{clear\_dynamic\_calibration}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{clear\_dynamic\_calibration()}{clear\_dynamic\_calibration()}}
{\footnotesize\ttfamily bool BNO08x\+::clear\+\_\+dynamic\+\_\+calibration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Clears dynamic/motion engine calibration data and resets \doxylink{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_a84a19cd1564f8d427394f137df54477d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=310pt]{class_b_n_o08x_a84a19cd1564f8d427394f137df54477d_icgraph}
\end{center}
\end{figure}
\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[height=550pt]{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}\label{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8} 
\index{BNO08x@{BNO08x}!data\_proc\_task@{data\_proc\_task}}
\index{data\_proc\_task@{data\_proc\_task}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{data\_proc\_task()}{data\_proc\_task()}}
{\footnotesize\ttfamily void BNO08x\+::data\+\_\+proc\+\_\+task (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Task responsible for parsing/handling sensor events sent by SH2 HAL and updating data that is returned to user. 

\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_ab4373e9b87837ea9fcbc0b536338c7b8_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_ab4373e9b87837ea9fcbc0b536338c7b8_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a0ae135d7bf7a5f047a1d1aa5cc07e520}\label{class_b_n_o08x_a0ae135d7bf7a5f047a1d1aa5cc07e520} 
\index{BNO08x@{BNO08x}!data\_proc\_task\_trampoline@{data\_proc\_task\_trampoline}}
\index{data\_proc\_task\_trampoline@{data\_proc\_task\_trampoline}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{data\_proc\_task\_trampoline()}{data\_proc\_task\_trampoline()}}
{\footnotesize\ttfamily void BNO08x\+::data\+\_\+proc\+\_\+task\+\_\+trampoline (\begin{DoxyParamCaption}\item[{void \texorpdfstring{$\ast$}{*}}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}}



Static function used to launch data processing task. 

Used such that \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} can be non-\/static class member.


\begin{DoxyParams}{Parameters}
{\em arg} & void pointer to \doxylink{class_b_n_o08x}{BNO08x} imu object \\
\hline
\end{DoxyParams}
\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_a0ae135d7bf7a5f047a1d1aa5cc07e520_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_a0ae135d7bf7a5f047a1d1aa5cc07e520_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a4f007dd431f10e741414d197bb4926c3}\label{class_b_n_o08x_a4f007dd431f10e741414d197bb4926c3} 
\index{BNO08x@{BNO08x}!deinit\_gpio@{deinit\_gpio}}
\index{deinit\_gpio@{deinit\_gpio}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_gpio()}{deinit\_gpio()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+gpio (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes GPIO, called from deconstructor. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=327pt]{class_b_n_o08x_a4f007dd431f10e741414d197bb4926c3_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_a4f007dd431f10e741414d197bb4926c3_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a1f0f4cd8dc7d38448e2198ea47d0018c}\label{class_b_n_o08x_a1f0f4cd8dc7d38448e2198ea47d0018c} 
\index{BNO08x@{BNO08x}!deinit\_gpio\_inputs@{deinit\_gpio\_inputs}}
\index{deinit\_gpio\_inputs@{deinit\_gpio\_inputs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_gpio\_inputs()}{deinit\_gpio\_inputs()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+gpio\+\_\+inputs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes GPIO inputs, called from deconstructor. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a1f0f4cd8dc7d38448e2198ea47d0018c_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ab132a061bd437fd109225446aa1f6010}\label{class_b_n_o08x_ab132a061bd437fd109225446aa1f6010} 
\index{BNO08x@{BNO08x}!deinit\_gpio\_outputs@{deinit\_gpio\_outputs}}
\index{deinit\_gpio\_outputs@{deinit\_gpio\_outputs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_gpio\_outputs()}{deinit\_gpio\_outputs()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+gpio\+\_\+outputs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes GPIO outputs, called from deconstructor. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_ab132a061bd437fd109225446aa1f6010_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a9d96108b0f5b1e1e1ac431bc993ca758}\label{class_b_n_o08x_a9d96108b0f5b1e1e1ac431bc993ca758} 
\index{BNO08x@{BNO08x}!deinit\_hint\_isr@{deinit\_hint\_isr}}
\index{deinit\_hint\_isr@{deinit\_hint\_isr}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_hint\_isr()}{deinit\_hint\_isr()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+hint\+\_\+isr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes host interrupt ISR, called from deconstructor. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a9d96108b0f5b1e1e1ac431bc993ca758_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a75c7226ea4626862a5039aa053116861}\label{class_b_n_o08x_a75c7226ea4626862a5039aa053116861} 
\index{BNO08x@{BNO08x}!deinit\_sh2\_HAL@{deinit\_sh2\_HAL}}
\index{deinit\_sh2\_HAL@{deinit\_sh2\_HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_sh2\_HAL()}{deinit\_sh2\_HAL()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+sh2\+\_\+\+HAL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes sh2 HAL. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a75c7226ea4626862a5039aa053116861_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a233920ce97f685fbdabecccacf471d85}\label{class_b_n_o08x_a233920ce97f685fbdabecccacf471d85} 
\index{BNO08x@{BNO08x}!deinit\_spi@{deinit\_spi}}
\index{deinit\_spi@{deinit\_spi}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_spi()}{deinit\_spi()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+spi (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes SPI. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a233920ce97f685fbdabecccacf471d85_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a968144efd5100ccce0e453c40a63592b}\label{class_b_n_o08x_a968144efd5100ccce0e453c40a63592b} 
\index{BNO08x@{BNO08x}!deinit\_tasks@{deinit\_tasks}}
\index{deinit\_tasks@{deinit\_tasks}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{deinit\_tasks()}{deinit\_tasks()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::deinit\+\_\+tasks (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Deinitializes tasks used by \doxylink{class_b_n_o08x}{BNO08x} driver. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if deinitialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a968144efd5100ccce0e453c40a63592b_icgraph}
\end{center}
\end{figure}
\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=293pt]{class_b_n_o08x_aebacbe092615cd083cf996b14402bba6_icgraph}
\end{center}
\end{figure}
\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 \doxylink{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}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a9387728c276734da27388dbea38b6b32_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{class_b_n_o08x_a9387728c276734da27388dbea38b6b32_icgraph}
\end{center}
\end{figure}
\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 \doxylink{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}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{class_b_n_o08x_a4e8b49abd33e6e11f23b2ae345058b9b_icgraph}
\end{center}
\end{figure}
\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_aeeb4f49593c062357c3b7037bc2de850}{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 call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{class_b_n_o08x_a5c7498f6fa4bd43280dff1d322233b95_icgraph}
\end{center}
\end{figure}
\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_aeeb4f49593c062357c3b7037bc2de850}{BNO08x\+Cal\+Sel}}}]{sensor }\end{DoxyParamCaption})}



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 call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{class_b_n_o08x_a90ea8e811d4bea28a356290d6f5caac5_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_aee6ce74b95c1e1651cb93a60d723c16c}\label{class_b_n_o08x_aee6ce74b95c1e1651cb93a60d723c16c} 
\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[{uint16\+\_\+t}]{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 meta data use the \doxylink{class_b_n_o08x_rpt}{BNO08x\+Rpt}\+:get\+\_\+meta\+\_\+data() method instead) 

For more details on returned and data and frs\+\_\+\+ID 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=336pt]{class_b_n_o08x_aee6ce74b95c1e1651cb93a60d723c16c_cgraph}
\end{center}
\end{figure}
\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}
\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_ab2a2ace42f7f438d6a799dfcbc243147}{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, \doxylink{_b_n_o08x_global_types_8hpp_ab2a2ace42f7f438d6a799dfcbc243147a0db45d2a4141101bdfe48e3314cfbca3}{BNO08x\+Reset\+Reason\+::\+UNDEFINED} if failure. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a96d47dd0f9aedfbe3f731f8ae76b2e85_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_a96d47dd0f9aedfbe3f731f8ae76b2e85_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a86275a93706656dae6af421bc15a4e59}\label{class_b_n_o08x_a86275a93706656dae6af421bc15a4e59} 
\index{BNO08x@{BNO08x}!handle\_cb@{handle\_cb}}
\index{handle\_cb@{handle\_cb}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{handle\_cb()}{handle\_cb()}}
{\footnotesize\ttfamily void BNO08x\+::handle\+\_\+cb (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{rpt\+\_\+\+ID,  }\item[{\mbox{\hyperlink{class_b_n_o08x_cb_generic}{BNO08x\+Cb\+Generic}} \texorpdfstring{$\ast$}{*}}]{cb\+\_\+entry }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Determines the flavor of a passed callback and executes it appropriately. 

\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_a86275a93706656dae6af421bc15a4e59_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_a86275a93706656dae6af421bc15a4e59_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a7d5250a6017f9e76e3c2ddb00d7103a1}\label{class_b_n_o08x_a7d5250a6017f9e76e3c2ddb00d7103a1} 
\index{BNO08x@{BNO08x}!handle\_sensor\_report@{handle\_sensor\_report}}
\index{handle\_sensor\_report@{handle\_sensor\_report}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{handle\_sensor\_report()}{handle\_sensor\_report()}}
{\footnotesize\ttfamily void BNO08x\+::handle\+\_\+sensor\+\_\+report (\begin{DoxyParamCaption}\item[{sh2\+\_\+\+Sensor\+Value\+\_\+t \texorpdfstring{$\ast$}{*}}]{sensor\+\_\+val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Parses receieved report and updates uer data with it. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a7d5250a6017f9e76e3c2ddb00d7103a1_icgraph}
\end{center}
\end{figure}
\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 \doxylink{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=293pt]{class_b_n_o08x_a28cd1c0b3477571d87133234e6358503_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a804b95c58c30d36933fd251626b85bf7}\label{class_b_n_o08x_a804b95c58c30d36933fd251626b85bf7} 
\index{BNO08x@{BNO08x}!hint\_handler@{hint\_handler}}
\index{hint\_handler@{hint\_handler}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{hint\_handler()}{hint\_handler()}}
{\footnotesize\ttfamily void IRAM\+\_\+\+ATTR BNO08x\+::hint\+\_\+handler (\begin{DoxyParamCaption}\item[{void \texorpdfstring{$\ast$}{*}}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}}



HINT interrupt service routine, handles falling edge of \doxylink{class_b_n_o08x}{BNO08x} HINT pin. 

ISR that launches SPI task to perform transaction upon assertion of \doxylink{class_b_n_o08x}{BNO08x} interrupt pin.

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a804b95c58c30d36933fd251626b85bf7_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a589eb9780f5bf613bbd447ef5b9ade3d}\label{class_b_n_o08x_a589eb9780f5bf613bbd447ef5b9ade3d} 
\index{BNO08x@{BNO08x}!init\_config\_args@{init\_config\_args}}
\index{init\_config\_args@{init\_config\_args}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_config\_args()}{init\_config\_args()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+config\+\_\+args (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes required esp-\/idf SPI data structures with values from user passed \doxylink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t} struct. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a589eb9780f5bf613bbd447ef5b9ade3d_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ae0dab25557befcf62bf384fdc241ef10}\label{class_b_n_o08x_ae0dab25557befcf62bf384fdc241ef10} 
\index{BNO08x@{BNO08x}!init\_gpio@{init\_gpio}}
\index{init\_gpio@{init\_gpio}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_gpio()}{init\_gpio()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+gpio (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes required gpio. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=343pt]{class_b_n_o08x_ae0dab25557befcf62bf384fdc241ef10_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_ae0dab25557befcf62bf384fdc241ef10_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a8f34d5475474f00ae6a92f73c1fe14e4}\label{class_b_n_o08x_a8f34d5475474f00ae6a92f73c1fe14e4} 
\index{BNO08x@{BNO08x}!init\_gpio\_inputs@{init\_gpio\_inputs}}
\index{init\_gpio\_inputs@{init\_gpio\_inputs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_gpio\_inputs()}{init\_gpio\_inputs()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+gpio\+\_\+inputs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes required gpio inputs. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a8f34d5475474f00ae6a92f73c1fe14e4_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ad0b9e8f8d051798bb1da9b19598dbd64}\label{class_b_n_o08x_ad0b9e8f8d051798bb1da9b19598dbd64} 
\index{BNO08x@{BNO08x}!init\_gpio\_outputs@{init\_gpio\_outputs}}
\index{init\_gpio\_outputs@{init\_gpio\_outputs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_gpio\_outputs()}{init\_gpio\_outputs()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+gpio\+\_\+outputs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes required gpio outputs. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_ad0b9e8f8d051798bb1da9b19598dbd64_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_aa27026da2c52b4aca49b78863f10ec61}\label{class_b_n_o08x_aa27026da2c52b4aca49b78863f10ec61} 
\index{BNO08x@{BNO08x}!init\_hint\_isr@{init\_hint\_isr}}
\index{init\_hint\_isr@{init\_hint\_isr}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_hint\_isr()}{init\_hint\_isr()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+hint\+\_\+isr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes host interrupt ISR. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=336pt]{class_b_n_o08x_aa27026da2c52b4aca49b78863f10ec61_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_aa27026da2c52b4aca49b78863f10ec61_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ae2fc9a0fe63a927c015a267621316a80}\label{class_b_n_o08x_ae2fc9a0fe63a927c015a267621316a80} 
\index{BNO08x@{BNO08x}!init\_sh2\_HAL@{init\_sh2\_HAL}}
\index{init\_sh2\_HAL@{init\_sh2\_HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_sh2\_HAL()}{init\_sh2\_HAL()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+sh2\+\_\+\+HAL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes sh2 HAL. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization 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_ae2fc9a0fe63a927c015a267621316a80_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_ae2fc9a0fe63a927c015a267621316a80_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a58f43c8bb1e7fe8560ce442d46240e81}\label{class_b_n_o08x_a58f43c8bb1e7fe8560ce442d46240e81} 
\index{BNO08x@{BNO08x}!init\_spi@{init\_spi}}
\index{init\_spi@{init\_spi}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_spi()}{init\_spi()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+spi (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes SPI. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization was success. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a58f43c8bb1e7fe8560ce442d46240e81_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a90d959312e6f7f8151b8a38218492ead}\label{class_b_n_o08x_a90d959312e6f7f8151b8a38218492ead} 
\index{BNO08x@{BNO08x}!init\_tasks@{init\_tasks}}
\index{init\_tasks@{init\_tasks}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_tasks()}{init\_tasks()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::init\+\_\+tasks (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes data\+\_\+proc\+\_\+task. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if initialization 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_a90d959312e6f7f8151b8a38218492ead_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_a90d959312e6f7f8151b8a38218492ead_icgraph}
\end{center}
\end{figure}
\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 \doxylink{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}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_aea8e2c6dd7a2c9899479a7f39fe94798_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=282pt]{class_b_n_o08x_aea8e2c6dd7a2c9899479a7f39fe94798_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a8e43dd50140f326cfb58e00399923e8c}\label{class_b_n_o08x_a8e43dd50140f326cfb58e00399923e8c} 
\index{BNO08x@{BNO08x}!lock\_sh2\_HAL@{lock\_sh2\_HAL}}
\index{lock\_sh2\_HAL@{lock\_sh2\_HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{lock\_sh2\_HAL()}{lock\_sh2\_HAL()}}
{\footnotesize\ttfamily void BNO08x\+::lock\+\_\+sh2\+\_\+\+HAL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Locks sh2 HAL lib to only allow the calling task to call its APIs. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a8e43dd50140f326cfb58e00399923e8c_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a37e7c18232f47694d5e55bacc109189c}\label{class_b_n_o08x_a37e7c18232f47694d5e55bacc109189c} 
\index{BNO08x@{BNO08x}!lock\_user\_data@{lock\_user\_data}}
\index{lock\_user\_data@{lock\_user\_data}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{lock\_user\_data()}{lock\_user\_data()}}
{\footnotesize\ttfamily void BNO08x\+::lock\+\_\+user\+\_\+data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Locks locks user data to only allow the calling task to read/modify it. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\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 \doxylink{class_b_n_o08x}{BNO08x} device in on state by sending ON (2) command on "{}device"{} channel. 

\begin{DoxyReturn}{Returns}
True if on operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=318pt]{class_b_n_o08x_aaaa15b21ad98a3b161065c3d03ff62b5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=258pt]{class_b_n_o08x_aaaa15b21ad98a3b161065c3d03ff62b5_icgraph}
\end{center}
\end{figure}
\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}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_ac732c968f8d639c81f5d423aad004e95}\label{class_b_n_o08x_ac732c968f8d639c81f5d423aad004e95} 
\index{BNO08x@{BNO08x}!re\_enable\_reports@{re\_enable\_reports}}
\index{re\_enable\_reports@{re\_enable\_reports}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{re\_enable\_reports()}{re\_enable\_reports()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::re\+\_\+enable\+\_\+reports (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Re-\/enables all reports enabled by user (called when \doxylink{class_b_n_o08x}{BNO08x} reset is detected by sh2 HAL lib). 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if enabled reports were successfuly re-\/enabled. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_ac732c968f8d639c81f5d423aad004e95_icgraph}
\end{center}
\end{figure}
\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}
\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}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=295pt]{class_b_n_o08x_aadd44524e6d22c48916acd9518b63ec3_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a1c703a1fb79ce777dc73a83f02bfdb85}\label{class_b_n_o08x_a1c703a1fb79ce777dc73a83f02bfdb85} 
\index{BNO08x@{BNO08x}!save\_dynamic\_calibration@{save\_dynamic\_calibration}}
\index{save\_dynamic\_calibration@{save\_dynamic\_calibration}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{save\_dynamic\_calibration()}{save\_dynamic\_calibration()}}
{\footnotesize\ttfamily bool BNO08x\+::save\+\_\+dynamic\+\_\+calibration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Saves dynamic/motion engine calibration data to \doxylink{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 call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a1c703a1fb79ce777dc73a83f02bfdb85_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=309pt]{class_b_n_o08x_a1c703a1fb79ce777dc73a83f02bfdb85_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}\label{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23} 
\index{BNO08x@{BNO08x}!sh2\_HAL\_service\_task@{sh2\_HAL\_service\_task}}
\index{sh2\_HAL\_service\_task@{sh2\_HAL\_service\_task}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sh2\_HAL\_service\_task()}{sh2\_HAL\_service\_task()}}
{\footnotesize\ttfamily void BNO08x\+::sh2\+\_\+\+HAL\+\_\+service\+\_\+task (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Task responsible for calling shtp\+\_\+service() when HINT is asserted to dispatch any sh2 HAL lib callbacks. 

\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_a7c7a9a0b81f9c8762fc927efea68bf23_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_a7c7a9a0b81f9c8762fc927efea68bf23_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a888eaf810d6140e2e771c44f5857b7c1}\label{class_b_n_o08x_a888eaf810d6140e2e771c44f5857b7c1} 
\index{BNO08x@{BNO08x}!sh2\_HAL\_service\_task\_trampoline@{sh2\_HAL\_service\_task\_trampoline}}
\index{sh2\_HAL\_service\_task\_trampoline@{sh2\_HAL\_service\_task\_trampoline}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sh2\_HAL\_service\_task\_trampoline()}{sh2\_HAL\_service\_task\_trampoline()}}
{\footnotesize\ttfamily void BNO08x\+::sh2\+\_\+\+HAL\+\_\+service\+\_\+task\+\_\+trampoline (\begin{DoxyParamCaption}\item[{void \texorpdfstring{$\ast$}{*}}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}}



Static function used to launch sh2 HAL service task. 

Used such that \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} can be non-\/static class member.


\begin{DoxyParams}{Parameters}
{\em arg} & void pointer to \doxylink{class_b_n_o08x}{BNO08x} imu object \\
\hline
\end{DoxyParams}
\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_a888eaf810d6140e2e771c44f5857b7c1_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_a888eaf810d6140e2e771c44f5857b7c1_icgraph}
\end{center}
\end{figure}
\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 \doxylink{class_b_n_o08x}{BNO08x} device in sleep state by sending SLEEP (3) command on "{}device"{} channel. 

\begin{DoxyReturn}{Returns}
True if sleep operation succeeded. 
\end{DoxyReturn}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=330pt]{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=270pt]{class_b_n_o08x_a7c5774a48227e8e3346fa5df7dfa420c_icgraph}
\end{center}
\end{figure}
\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 \doxylink{class_b_n_o08x}{BNO08x} device by sending RESET (1) command on "{}device"{} 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}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=290pt]{class_b_n_o08x_a973a1b1785f3302ee1b2702c6a27646e_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_aa8347555e37a185bef4a834b04231123}\label{class_b_n_o08x_aa8347555e37a185bef4a834b04231123} 
\index{BNO08x@{BNO08x}!stability\_to\_str@{stability\_to\_str}}
\index{stability\_to\_str@{stability\_to\_str}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{stability\_to\_str()}{stability\_to\_str()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} BNO08x\+::stability\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a498b35f9e00b24e51f8f60b029751ab5}{BNO08x\+Stability}}}]{stability }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Converts a BNO08x\+Stability enum to string. 

\begin{DoxyReturn}{Returns}
The resulting string conversion of the enum. 
\end{DoxyReturn}
\Hypertarget{class_b_n_o08x_a6711a624f7229f2eee51ee0a5bc87e67}\label{class_b_n_o08x_a6711a624f7229f2eee51ee0a5bc87e67} 
\index{BNO08x@{BNO08x}!toggle\_reset@{toggle\_reset}}
\index{toggle\_reset@{toggle\_reset}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{toggle\_reset()}{toggle\_reset()}}
{\footnotesize\ttfamily void BNO08x\+::toggle\+\_\+reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Toggles reset gpio pin for hard reset of \doxylink{class_b_n_o08x}{BNO08x} device. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a6711a624f7229f2eee51ee0a5bc87e67_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a2dbce689245a1b9968e3ea627d2b9a42}\label{class_b_n_o08x_a2dbce689245a1b9968e3ea627d2b9a42} 
\index{BNO08x@{BNO08x}!unlock\_sh2\_HAL@{unlock\_sh2\_HAL}}
\index{unlock\_sh2\_HAL@{unlock\_sh2\_HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{unlock\_sh2\_HAL()}{unlock\_sh2\_HAL()}}
{\footnotesize\ttfamily void BNO08x\+::unlock\+\_\+sh2\+\_\+\+HAL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Unlocks sh2 HAL lib to allow other tasks to call its APIs. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a2dbce689245a1b9968e3ea627d2b9a42_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a171b4f380b145e295a11219a8e2a961a}\label{class_b_n_o08x_a171b4f380b145e295a11219a8e2a961a} 
\index{BNO08x@{BNO08x}!unlock\_user\_data@{unlock\_user\_data}}
\index{unlock\_user\_data@{unlock\_user\_data}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{unlock\_user\_data()}{unlock\_user\_data()}}
{\footnotesize\ttfamily void BNO08x\+::unlock\+\_\+user\+\_\+data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Unlocks user data to allow other tasks to read/modify it. 

\begin{DoxyReturn}{Returns}
void, nothing to return 
\end{DoxyReturn}
\Hypertarget{class_b_n_o08x_a69cf0da11a71f5ea40f9fddd598d06fc}\label{class_b_n_o08x_a69cf0da11a71f5ea40f9fddd598d06fc} 
\index{BNO08x@{BNO08x}!wait\_for\_hint@{wait\_for\_hint}}
\index{wait\_for\_hint@{wait\_for\_hint}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{wait\_for\_hint()}{wait\_for\_hint()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::wait\+\_\+for\+\_\+hint (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Waits for HINT pin assertion or HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS to elapse. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if HINT was asserted. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a69cf0da11a71f5ea40f9fddd598d06fc_icgraph}
\end{center}
\end{figure}
\Hypertarget{class_b_n_o08x_a6602374314c07e9f707c0a6d2234bf7e}\label{class_b_n_o08x_a6602374314c07e9f707c0a6d2234bf7e} 
\index{BNO08x@{BNO08x}!wait\_for\_reset@{wait\_for\_reset}}
\index{wait\_for\_reset@{wait\_for\_reset}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{wait\_for\_reset()}{wait\_for\_reset()}}
{\footnotesize\ttfamily esp\+\_\+err\+\_\+t BNO08x\+::wait\+\_\+for\+\_\+reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Waits for SH2 HAL lib to detect reset or HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS to elapse. 

\begin{DoxyReturn}{Returns}
ESP\+\_\+\+OK if reset was detected by SH2 HAL lib. 
\end{DoxyReturn}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_b_n_o08x_a6602374314c07e9f707c0a6d2234bf7e_icgraph}
\end{center}
\end{figure}


\doxysubsection{Friends And Related Symbol Documentation}
\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]}}

\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}
\Hypertarget{class_b_n_o08x_a982f065df42f00e53fd87c840efdb0f1}\label{class_b_n_o08x_a982f065df42f00e53fd87c840efdb0f1} 
\index{BNO08x@{BNO08x}!bus\_config@{bus\_config}}
\index{bus\_config@{bus\_config}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{bus\_config}{bus\_config}}
{\footnotesize\ttfamily spi\+\_\+bus\+\_\+config\+\_\+t BNO08x\+::bus\+\_\+config \{\}\hspace{0.3cm}{\ttfamily [private]}}



SPI bus GPIO configuration settings. 

\Hypertarget{class_b_n_o08x_a6931b6544788f268a9441a9f9d4a5e33}\label{class_b_n_o08x_a6931b6544788f268a9441a9f9d4a5e33} 
\index{BNO08x@{BNO08x}!cb\_task\_hdl@{cb\_task\_hdl}}
\index{cb\_task\_hdl@{cb\_task\_hdl}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{cb\_task\_hdl}{cb\_task\_hdl}}
{\footnotesize\ttfamily Task\+Handle\+\_\+t BNO08x\+::cb\+\_\+task\+\_\+hdl\hspace{0.3cm}{\ttfamily [private]}}



\doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} task handle 

\Hypertarget{class_b_n_o08x_a63002547e309412846c3967c9d068ee3}\label{class_b_n_o08x_a63002547e309412846c3967c9d068ee3} 
\index{BNO08x@{BNO08x}!CB\_TASK\_SZ@{CB\_TASK\_SZ}}
\index{CB\_TASK\_SZ@{CB\_TASK\_SZ}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{CB\_TASK\_SZ}{CB\_TASK\_SZ}}
{\footnotesize\ttfamily const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE BNO08x\+::\+CB\+\_\+\+TASK\+\_\+\+SZ\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_CB\_TASK\_SZ}

\end{DoxyCode}


Size of \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} stack in bytes. 

\Hypertarget{class_b_n_o08x_ae32ce16c51a93b9d53058bf3b6f0d94b}\label{class_b_n_o08x_ae32ce16c51a93b9d53058bf3b6f0d94b} 
\index{BNO08x@{BNO08x}!DATA\_AVAILABLE\_TIMEOUT\_MS@{DATA\_AVAILABLE\_TIMEOUT\_MS}}
\index{DATA\_AVAILABLE\_TIMEOUT\_MS@{DATA\_AVAILABLE\_TIMEOUT\_MS}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{DATA\_AVAILABLE\_TIMEOUT\_MS}{DATA\_AVAILABLE\_TIMEOUT\_MS}}
{\footnotesize\ttfamily const constexpr Tick\+Type\+\_\+t BNO08x\+::\+DATA\+\_\+\+AVAILABLE\+\_\+\+TIMEOUT\+\_\+\+MS\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_DATA\_AVAILABLE\_TIMEOUT\_MS\ /}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ portTICK\_PERIOD\_MS}

\end{DoxyCode}


Max wait between \doxylink{class_b_n_o08x_a367d525d1c0ba119b3dca3067bb5bccc}{data\+\_\+available()} being called and no new data/report being detected. 

\Hypertarget{class_b_n_o08x_af9b6fbf35e7cd55d517d30c6429a21a4}\label{class_b_n_o08x_af9b6fbf35e7cd55d517d30c6429a21a4} 
\index{BNO08x@{BNO08x}!data\_proc\_task\_hdl@{data\_proc\_task\_hdl}}
\index{data\_proc\_task\_hdl@{data\_proc\_task\_hdl}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{data\_proc\_task\_hdl}{data\_proc\_task\_hdl}}
{\footnotesize\ttfamily Task\+Handle\+\_\+t BNO08x\+::data\+\_\+proc\+\_\+task\+\_\+hdl\hspace{0.3cm}{\ttfamily [private]}}



\doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} task handle 

\Hypertarget{class_b_n_o08x_a876ef3f899989de83ee6a9d6b218f8e1}\label{class_b_n_o08x_a876ef3f899989de83ee6a9d6b218f8e1} 
\index{BNO08x@{BNO08x}!DATA\_PROC\_TASK\_SZ@{DATA\_PROC\_TASK\_SZ}}
\index{DATA\_PROC\_TASK\_SZ@{DATA\_PROC\_TASK\_SZ}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{DATA\_PROC\_TASK\_SZ}{DATA\_PROC\_TASK\_SZ}}
{\footnotesize\ttfamily const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE BNO08x\+::\+DATA\+\_\+\+PROC\+\_\+\+TASK\+\_\+\+SZ\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_DATA\_PROC\_TASK\_SZ}

\end{DoxyCode}


Size of \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} stack in bytes. 

\Hypertarget{class_b_n_o08x_aa07e329d693eb8d9270a7f9ad6f1d94b}\label{class_b_n_o08x_aa07e329d693eb8d9270a7f9ad6f1d94b} 
\index{BNO08x@{BNO08x}!HARD\_RESET\_DELAY\_MS@{HARD\_RESET\_DELAY\_MS}}
\index{HARD\_RESET\_DELAY\_MS@{HARD\_RESET\_DELAY\_MS}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{HARD\_RESET\_DELAY\_MS}{HARD\_RESET\_DELAY\_MS}}
{\footnotesize\ttfamily const constexpr Tick\+Type\+\_\+t BNO08x\+::\+HARD\+\_\+\+RESET\+\_\+\+DELAY\+\_\+\+MS\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_HARD\_RESET\_DELAY\_MS\ /}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ portTICK\_PERIOD\_MS}

\end{DoxyCode}


How long RST pin is held low during hard reset (min 10ns according to datasheet, but should be longer for stable operation) 

\Hypertarget{class_b_n_o08x_ae51d4e3228a91ee407d5866e604804c4}\label{class_b_n_o08x_ae51d4e3228a91ee407d5866e604804c4} 
\index{BNO08x@{BNO08x}!HOST\_INT\_TIMEOUT\_DEFAULT\_MS@{HOST\_INT\_TIMEOUT\_DEFAULT\_MS}}
\index{HOST\_INT\_TIMEOUT\_DEFAULT\_MS@{HOST\_INT\_TIMEOUT\_DEFAULT\_MS}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{HOST\_INT\_TIMEOUT\_DEFAULT\_MS}{HOST\_INT\_TIMEOUT\_DEFAULT\_MS}}
{\footnotesize\ttfamily const constexpr Tick\+Type\+\_\+t BNO08x\+::\+HOST\+\_\+\+INT\+\_\+\+TIMEOUT\+\_\+\+DEFAULT\+\_\+\+MS\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_HINT\_TIMEOUT\_MS\ /}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ portTICK\_PERIOD\_MS}

\end{DoxyCode}


Max wait between HINT being asserted by \doxylink{class_b_n_o08x}{BNO08x} before transaction is considered failed (in miliseconds). 

\Hypertarget{class_b_n_o08x_aeda443e9f608fccfec0e6770edc90c82}\label{class_b_n_o08x_aeda443e9f608fccfec0e6770edc90c82} 
\index{BNO08x@{BNO08x}!imu\_config@{imu\_config}}
\index{imu\_config@{imu\_config}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{imu\_config}{imu\_config}}
{\footnotesize\ttfamily \mbox{\hyperlink{structbno08x__config__t}{bno08x\+\_\+config\+\_\+t}} BNO08x\+::imu\+\_\+config \{\}\hspace{0.3cm}{\ttfamily [private]}}



IMU configuration settings. 

\Hypertarget{class_b_n_o08x_a425a1f5a9f3232aadc685caaf4c2f82e}\label{class_b_n_o08x_a425a1f5a9f3232aadc685caaf4c2f82e} 
\index{BNO08x@{BNO08x}!imu\_spi\_config@{imu\_spi\_config}}
\index{imu\_spi\_config@{imu\_spi\_config}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{imu\_spi\_config}{imu\_spi\_config}}
{\footnotesize\ttfamily spi\+\_\+device\+\_\+interface\+\_\+config\+\_\+t BNO08x\+::imu\+\_\+spi\+\_\+config \{\}\hspace{0.3cm}{\ttfamily [private]}}



SPI slave device settings. 

\Hypertarget{class_b_n_o08x_a0a2d157afc0da144536d8d6927cc63f1}\label{class_b_n_o08x_a0a2d157afc0da144536d8d6927cc63f1} 
\index{BNO08x@{BNO08x}!init\_status@{init\_status}}
\index{init\_status@{init\_status}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{init\_status}{init\_status}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct_b_n_o08x_private_types_1_1bno08x__init__status__t}{BNO08x\+Private\+Types\+::bno08x\+\_\+init\+\_\+status\+\_\+t}} BNO08x\+::init\+\_\+status\hspace{0.3cm}{\ttfamily [private]}}



Initialization status of various functionality, used by deconstructor during cleanup, set during initialization. 

\Hypertarget{class_b_n_o08x_ac8f6fc515923ffc820a7cfafc0c2830f}\label{class_b_n_o08x_ac8f6fc515923ffc820a7cfafc0c2830f} 
\index{BNO08x@{BNO08x}!product\_IDs@{product\_IDs}}
\index{product\_IDs@{product\_IDs}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{product\_IDs}{product\_IDs}}
{\footnotesize\ttfamily sh2\+\_\+\+Product\+Ids\+\_\+t BNO08x\+::product\+\_\+\+IDs\hspace{0.3cm}{\ttfamily [private]}}



Product ID info returned IMU at initialization, can be viewed with \doxylink{class_b_n_o08x_a7441f7f2477c152deca17054041bf3e6}{print\+\_\+product\+\_\+ids()} 

\Hypertarget{class_b_n_o08x_a8b45106ee35e8d2ddc9709b7f788212e}\label{class_b_n_o08x_a8b45106ee35e8d2ddc9709b7f788212e} 
\index{BNO08x@{BNO08x}!queue\_cb\_report\_id@{queue\_cb\_report\_id}}
\index{queue\_cb\_report\_id@{queue\_cb\_report\_id}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{queue\_cb\_report\_id}{queue\_cb\_report\_id}}
{\footnotesize\ttfamily Queue\+Handle\+\_\+t BNO08x\+::queue\+\_\+cb\+\_\+report\+\_\+id\hspace{0.3cm}{\ttfamily [private]}}



Queue to send report ID of most recent report to \doxylink{class_b_n_o08x_a5fb7f6c3e5d1b3478f529644a0f175b7}{cb\+\_\+task()} 

\Hypertarget{class_b_n_o08x_aefd6d59af9f8cf73be017db55f8b2e6a}\label{class_b_n_o08x_aefd6d59af9f8cf73be017db55f8b2e6a} 
\index{BNO08x@{BNO08x}!queue\_rx\_sensor\_event@{queue\_rx\_sensor\_event}}
\index{queue\_rx\_sensor\_event@{queue\_rx\_sensor\_event}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{queue\_rx\_sensor\_event}{queue\_rx\_sensor\_event}}
{\footnotesize\ttfamily Queue\+Handle\+\_\+t BNO08x\+::queue\+\_\+rx\+\_\+sensor\+\_\+event\hspace{0.3cm}{\ttfamily [private]}}



Queue to send sensor events from sh2 HAL sensor event callback (\doxylink{class_b_n_o08x_s_h2_h_a_l_a19c041ef614d7eda85b94b10202a3997}{BNO08x\+SH2\+HAL\+::sensor\+\_\+event\+\_\+cb()}) to \doxylink{class_b_n_o08x_ab4373e9b87837ea9fcbc0b536338c7b8}{data\+\_\+proc\+\_\+task()} 

\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}

\Hypertarget{class_b_n_o08x_a1a037bda37493cde56732cc6fdc7884b}\label{class_b_n_o08x_a1a037bda37493cde56732cc6fdc7884b} 
\index{BNO08x@{BNO08x}!RX\_DATA\_LENGTH@{RX\_DATA\_LENGTH}}
\index{RX\_DATA\_LENGTH@{RX\_DATA\_LENGTH}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{RX\_DATA\_LENGTH}{RX\_DATA\_LENGTH}}
{\footnotesize\ttfamily const constexpr uint16\+\_\+t BNO08x\+::\+RX\+\_\+\+DATA\+\_\+\+LENGTH = 300U\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}



length buffer containing data received over spi 

\Hypertarget{class_b_n_o08x_a031976dacd97917d9d72edccb607160c}\label{class_b_n_o08x_a031976dacd97917d9d72edccb607160c} 
\index{BNO08x@{BNO08x}!SCLK\_MAX\_SPEED@{SCLK\_MAX\_SPEED}}
\index{SCLK\_MAX\_SPEED@{SCLK\_MAX\_SPEED}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{SCLK\_MAX\_SPEED}{SCLK\_MAX\_SPEED}}
{\footnotesize\ttfamily const constexpr uint32\+\_\+t BNO08x\+::\+SCLK\+\_\+\+MAX\+\_\+\+SPEED = 3000000\+UL\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}



Max SPI SCLK speed \doxylink{class_b_n_o08x}{BNO08x} is capable of. 

\Hypertarget{class_b_n_o08x_aa92ff86d82a097a565ed2a2b9000b571}\label{class_b_n_o08x_aa92ff86d82a097a565ed2a2b9000b571} 
\index{BNO08x@{BNO08x}!sem\_kill\_tasks@{sem\_kill\_tasks}}
\index{sem\_kill\_tasks@{sem\_kill\_tasks}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sem\_kill\_tasks}{sem\_kill\_tasks}}
{\footnotesize\ttfamily Semaphore\+Handle\+\_\+t BNO08x\+::sem\+\_\+kill\+\_\+tasks\hspace{0.3cm}{\ttfamily [private]}}



Counting Semaphore to count amount of killed tasks. 

\Hypertarget{class_b_n_o08x_abae123678dc62f139749f13a3b6d1baa}\label{class_b_n_o08x_abae123678dc62f139749f13a3b6d1baa} 
\index{BNO08x@{BNO08x}!sh2\_HAL@{sh2\_HAL}}
\index{sh2\_HAL@{sh2\_HAL}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sh2\_HAL}{sh2\_HAL}}
{\footnotesize\ttfamily sh2\+\_\+\+Hal\+\_\+t BNO08x\+::sh2\+\_\+\+HAL\hspace{0.3cm}{\ttfamily [private]}}



sh2 hardware abstraction layer struct for use with sh2 HAL lib. 

\Hypertarget{class_b_n_o08x_afb288b912294ac6a568c1aab8bb382f6}\label{class_b_n_o08x_afb288b912294ac6a568c1aab8bb382f6} 
\index{BNO08x@{BNO08x}!sh2\_HAL\_service\_task\_hdl@{sh2\_HAL\_service\_task\_hdl}}
\index{sh2\_HAL\_service\_task\_hdl@{sh2\_HAL\_service\_task\_hdl}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sh2\_HAL\_service\_task\_hdl}{sh2\_HAL\_service\_task\_hdl}}
{\footnotesize\ttfamily Task\+Handle\+\_\+t BNO08x\+::sh2\+\_\+\+HAL\+\_\+service\+\_\+task\+\_\+hdl\hspace{0.3cm}{\ttfamily [private]}}



\doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} task handle 

\Hypertarget{class_b_n_o08x_aac1f772772db2d5fd14d51e44649d8eb}\label{class_b_n_o08x_aac1f772772db2d5fd14d51e44649d8eb} 
\index{BNO08x@{BNO08x}!SH2\_HAL\_SERVICE\_TASK\_SZ@{SH2\_HAL\_SERVICE\_TASK\_SZ}}
\index{SH2\_HAL\_SERVICE\_TASK\_SZ@{SH2\_HAL\_SERVICE\_TASK\_SZ}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{SH2\_HAL\_SERVICE\_TASK\_SZ}{SH2\_HAL\_SERVICE\_TASK\_SZ}}
{\footnotesize\ttfamily const constexpr config\+STACK\+\_\+\+DEPTH\+\_\+\+TYPE BNO08x\+::\+SH2\+\_\+\+HAL\+\_\+\+SERVICE\+\_\+\+TASK\+\_\+\+SZ\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ CONFIG\_ESP32\_BNO08X\_SH2\_HAL\_SERVICE\_TASK\_SZ}

\end{DoxyCode}


Size of \doxylink{class_b_n_o08x_a7c7a9a0b81f9c8762fc927efea68bf23}{sh2\+\_\+\+HAL\+\_\+service\+\_\+task()} stack in bytes. 

\Hypertarget{class_b_n_o08x_acc0ea091465fc9a5736f5e0c6a0ce8ef}\label{class_b_n_o08x_acc0ea091465fc9a5736f5e0c6a0ce8ef} 
\index{BNO08x@{BNO08x}!spi\_hdl@{spi\_hdl}}
\index{spi\_hdl@{spi\_hdl}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{spi\_hdl}{spi\_hdl}}
{\footnotesize\ttfamily spi\+\_\+device\+\_\+handle\+\_\+t BNO08x\+::spi\+\_\+hdl \{\}\hspace{0.3cm}{\ttfamily [private]}}



SPI device handle. 

\Hypertarget{class_b_n_o08x_ac16adc5f00b0039c98a4921f13895026}\label{class_b_n_o08x_ac16adc5f00b0039c98a4921f13895026} 
\index{BNO08x@{BNO08x}!spi\_transaction@{spi\_transaction}}
\index{spi\_transaction@{spi\_transaction}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{spi\_transaction}{spi\_transaction}}
{\footnotesize\ttfamily spi\+\_\+transaction\+\_\+t BNO08x\+::spi\+\_\+transaction \{\}\hspace{0.3cm}{\ttfamily [private]}}



SPI transaction handle. 

\Hypertarget{class_b_n_o08x_a22bb1bdc1153a455ec8f549d9389406e}\label{class_b_n_o08x_a22bb1bdc1153a455ec8f549d9389406e} 
\index{BNO08x@{BNO08x}!sync\_ctx@{sync\_ctx}}
\index{sync\_ctx@{sync\_ctx}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{sync\_ctx}{sync\_ctx}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct_b_n_o08x_private_types_1_1bno08x__sync__ctx__t}{BNO08x\+Private\+Types\+::bno08x\+\_\+sync\+\_\+ctx\+\_\+t}} BNO08x\+::sync\+\_\+ctx\hspace{0.3cm}{\ttfamily [private]}}



Holds context used to synchronize tasks and callback execution. 

\Hypertarget{class_b_n_o08x_a2c98d5f2c406a3efd0b48c5666fa8c46}\label{class_b_n_o08x_a2c98d5f2c406a3efd0b48c5666fa8c46} 
\index{BNO08x@{BNO08x}!TAG@{TAG}}
\index{TAG@{TAG}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{TAG}{TAG}}
{\footnotesize\ttfamily const constexpr char\texorpdfstring{$\ast$}{*} BNO08x\+::\+TAG = "{}BNO08x"{}\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [constexpr]}, {\ttfamily [private]}}



Class tag used for serial print statements. 

\Hypertarget{class_b_n_o08x_a58b4949a61a784d09df3e7ecda175b39}\label{class_b_n_o08x_a58b4949a61a784d09df3e7ecda175b39} 
\index{BNO08x@{BNO08x}!usr\_reports@{usr\_reports}}
\index{usr\_reports@{usr\_reports}!BNO08x@{BNO08x}}
\doxysubsubsection{\texorpdfstring{usr\_reports}{usr\_reports}}
{\footnotesize\ttfamily etl\+::map$<$uint8\+\_\+t, \mbox{\hyperlink{class_b_n_o08x_rpt}{BNO08x\+Rpt}}\texorpdfstring{$\ast$}{*}, \mbox{\hyperlink{_b_n_o08x_global_types_8hpp_a9808babb45af9b32fc51cef8d50341be}{TOTAL\+\_\+\+RPT\+\_\+\+COUNT}}, etl\+::less$<$uint8\+\_\+t$>$ $>$ BNO08x\+::usr\+\_\+reports\hspace{0.3cm}{\ttfamily [private]}}



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
include/\mbox{\hyperlink{_b_n_o08x_8hpp}{BNO08x.\+hpp}}\item 
source/\mbox{\hyperlink{_b_n_o08x_8cpp}{BNO08x.\+cpp}}\end{DoxyCompactItemize}
