9 #include "DriverStation.h"
10 #include "NetworkCommunication/FRCComm.h"
11 #include "NetworkCommunication/symModuleLink.h"
12 #include "NetworkCommunication/UsageReporting.h"
14 #include <moduleLib.h>
21 const char *FILE_NAME =
"/c/FRC_Lib_Version.ini";
22 const char *VERSION_STRING =
"C++ 2014 Update 0";
25 void RobotBase::setInstance(
RobotBase* robot)
27 wpi_assert(m_instance == NULL);
90 return m_ds->IsEnabled();
99 return m_ds->IsDisabled();
108 return m_ds->IsAutonomous();
117 return m_ds->IsOperatorControl();
126 return m_ds->IsTest();
143 RobotBase::setInstance((
RobotBase*)factory());
144 RobotBase::getInstance().m_task = task;
145 RobotBase::getInstance().StartCompetition();
148 void RobotBase::WriteVersionString() {
149 FILE *file = fopen(FILE_NAME,
"w");
151 fputs(VERSION_STRING, file);
169 printf(
"WPILib was compiled from SVN revision %s\n", SVN_REV);
173 printf(
"WPILib was compiled from a location that is not source controlled.\n");
176 printf(
"WPILib was compiled without -D'SVN_REV=nnnn'\n");
180 int32_t oldId = taskNameToId(const_cast<char*>(
"FRC_RobotTask"));
184 char moduleName[256];
185 moduleNameFindBySymbolName(
"FRC_UserProgram_StartupLibraryInit", moduleName);
186 MODULE_ID startupModId = moduleFindByName(moduleName);
187 if (startupModId != NULL)
190 unldByModuleId(startupModId, 0);
191 printf(
"!!! Error: Default code was still running... It was unloaded for you... Please try again.\n");
195 printf(
"!!! Error: Other robot code is still running... Unload it and then try again.\n");
200 FRC_NetworkCommunication_observeUserProgramStarting();
203 nUsageReporting::report(nUsageReporting::kResourceType_Language, nUsageReporting::kLanguage_CPlusPlus);
205 RobotBase::WriteVersionString();
211 task->
Start((int32_t)factory, (int32_t)task);
226 delete &RobotBase::getInstance();
bool Start(uint32_t arg0=0, uint32_t arg1=0, uint32_t arg2=0, uint32_t arg3=0, uint32_t arg4=0, uint32_t arg5=0, uint32_t arg6=0, uint32_t arg7=0, uint32_t arg8=0, uint32_t arg9=0)
static void DeleteSingletons()
static void robotTask(FUNCPTR factory, Task *task)
static DriverStation * GetInstance()
static void startRobotTask(FUNCPTR factory)
bool IsNewDataAvailable()