mdot UDK & STMicro MEMS Shield Sensor packet example
Dependencies: libmDot-mbed5 DOGS102 ISL29011 MMA845x MPL3115A2 NCP5623B X_NUCLEO_IKS01A1 Senet_Packet
Fork of MTDOT-UDKDemo_Senet by
board.h
00001 /*** 00002 * _____ _ 00003 * / ____| | | 00004 * | (___ ___ _ __ ___ | |_ 00005 * \___ \ / _ \ | '_ \ / _ \ | __| 00006 * ____) | | __/ | | | | | __/ | |_ 00007 * |_____/ \___| |_| |_| \___| \__| 00008 * (C) Senet, Inc 00009 * 00010 */ 00011 #ifndef BOARD_BOARD_H_ 00012 #define BOARD_BOARD_H_ 00013 00014 #include "mbed.h" 00015 #include "mDot.h" 00016 00017 extern Serial debugUART; 00018 extern mDot *mDotPtr; 00019 00020 enum EBoardState 00021 { 00022 Board_init, 00023 Board_start, 00024 Board_stop, 00025 }; 00026 00027 struct BoardOrientation 00028 { 00029 bool vertical; 00030 bool up; 00031 bool down; 00032 bool right; 00033 bool left; 00034 00035 void init() 00036 { 00037 vertical = false; 00038 up = false; 00039 down = false; 00040 right = false; 00041 left = false; 00042 } 00043 00044 BoardOrientation() { init(); } 00045 }; 00046 00047 /* 00048 * Board sensor data 00049 */ 00050 struct BoardSensorData 00051 { 00052 float temperature; 00053 float pressure; 00054 int32_t accel_x; 00055 int32_t accel_y; 00056 int32_t accel_z; 00057 BoardOrientation orientation; 00058 00059 inline void init() 00060 { 00061 temperature= 0; 00062 pressure = 0; 00063 accel_x = 0; 00064 accel_y = 0; 00065 accel_z = 0; 00066 orientation.init(); 00067 } 00068 00069 BoardSensorData() { init(); } 00070 }; 00071 00072 enum EBoardStatus 00073 { 00074 Board_Ok, 00075 Board_Fail, 00076 Board_Invalid 00077 }; 00078 00079 typedef void (*PB_FUNC)(uint8_t button); 00080 00081 EBoardStatus BoardInit(); 00082 00083 class CBoard 00084 { 00085 public: 00086 00087 static EBoardStatus ReadSensors(BoardSensorData &data ) { return ( ( boardPtr != 0 ) ? boardPtr->readSensors( data ) : Board_Fail ); } 00088 static EBoardStatus Init() { return ( ( boardPtr != 0 ) ? boardPtr->init( ) : Board_Fail ); } 00089 static EBoardStatus Start() { return ( ( boardPtr != 0 ) ? boardPtr->start( ) : Board_Fail ); } 00090 static EBoardStatus SetLED(uint8_t ledNum, bool on) { return ( ( boardPtr != 0 ) ? boardPtr->setLED(ledNum, on ) : Board_Fail ); } 00091 static EBoardStatus ToggleLED(uint8_t ledNum) { return ( ( boardPtr != 0 ) ? boardPtr->toggleLED(ledNum) : Board_Fail ); } 00092 static void SetButtonCallback(PB_FUNC func) { buttonCallback = func; } 00093 00094 protected: 00095 00096 virtual EBoardStatus init(); 00097 virtual EBoardStatus readSensors ( BoardSensorData &data ) { return Board_Fail; } 00098 virtual EBoardStatus start() { return Board_Ok; } 00099 virtual EBoardStatus setLED(uint8_t ledNum, bool on) { return Board_Fail; } 00100 virtual EBoardStatus toggleLED(uint8_t ledNum) { return Board_Fail; } 00101 00102 static PB_FUNC buttonCallback; 00103 static CBoard *boardPtr; 00104 00105 friend EBoardStatus BoardInit(); 00106 00107 }; 00108 00109 #endif /* BOARD_BOARD_H_ */
Generated on Sun Jul 24 2022 22:57:48 by
1.7.2
