BError test(BList<BError>& errors);
BError getStatus(BList<NameValue>& statusList);
BError getStatistics(BList<NameValue>& statsList);
BError getMasterPuChannel(PuChannel& puChannel);
BError addEventServer(BString name);
BError delEventServer(BString name);
BError setControlInfo(CycleParam params);
BError setNextCycle(UInt32 cycleNumber, BString cycleType);
BError getStatus(PuChannel puChannel, PuStatus& puStatus);
BError getCycleInformation(UInt32 cycleNumber, CycleInformation& cycleInformation);
BError getData(PuChannel puChannel, DataInfo dataInfo, Data& data, UInt32& orbitNumber);
BError requestData(PuChannel puChannel, DataInfo dataInfo);
BError setTestMode(PuChannel puChannel, UInt32 testOutput, UInt32 timingDisableMask);
BError setTimingSignals(PuChannel puChannel, UInt32 timingSignals);
BError captureDiagnostics(PuChannel puChannel, TestCaptureInfo captureInfo, BArray<UInt64>& data);
BError setTestData(PuChannel puChannel, Int32 on, BArray<UInt32> data); ///< This function will set a PU channel to sample data from memory rather than the ADC's
BError setPupeConfig(PuChannel puPhysChannel, PupeConfig pupeConfig);
BError getPupeConfig(PuChannel puPhysChannel, PupeConfig& pupeConfig);
void run(); ///< Start the system running
// System utilities
void timer();
void cycleStart(UInt32 cycleNumber); ///< The CYCLE_START event has occured
void cycleStop(UInt32 cycleNumber); ///< The CYCLE_STOP event has occured
void cycleError(UInt32 cycleNumber, BError error); ///< A Cycle error occurred