7 #ifndef __DASHBOARD_H__
8 #define __DASHBOARD_H__
10 #include "DashboardBase.h"
11 #include "NetworkCommunication/FRCComm.h"
23 explicit Dashboard(SEM_ID statusDataSemaphore);
26 enum Type {kI8, kI16, kI32, kU8, kU16, kU32, kFloat, kDouble, kBoolean, kString, kOther};
27 enum ComplexType {kArray, kCluster};
29 void AddI8(INT8 value);
32 void AddU8(UINT8 value);
39 void AddString(
char* value, INT32 length);
46 void Printf(
const char *writeFmt, ...);
52 static const INT32 kMaxDashboardDataSize = USER_STATUS_DATA_SIZE -
sizeof(UINT32) * 3 -
sizeof(UINT8);
57 bool ValidateAdd(INT32 size);
58 void AddedElement(Type type);
61 char *m_userStatusData;
62 INT32 m_userStatusDataSize;
64 char *m_localPrintBuffer;
66 std::vector<Type> m_expectedArrayElementType;
67 std::vector<INT32> m_arrayElementCount;
68 std::vector<INT32*> m_arraySizePtr;
69 std::stack<ComplexType> m_complexTypeStack;
70 SEM_ID m_printSemaphore;
71 SEM_ID m_statusDataSemaphore;