Change hal sim to use spinlocks (#1291)

This makes callback registration completely thread safe.

This patch also uses templates and macros to dramatically reduce the amount of
manual boilerplate.
This commit is contained in:
Peter Johnson
2018-09-03 16:08:07 -07:00
committed by GitHub
parent 67b1c85315
commit c0ff6198b3
65 changed files with 1305 additions and 7639 deletions

View File

@@ -20,45 +20,45 @@ void InitializePower() {}
// TODO: Fix the naming in here
extern "C" {
double HAL_GetVinVoltage(int32_t* status) {
return SimRoboRioData[0].GetVInVoltage();
return SimRoboRioData[0].vInVoltage;
}
double HAL_GetVinCurrent(int32_t* status) {
return SimRoboRioData[0].GetVInCurrent();
return SimRoboRioData[0].vInCurrent;
}
double HAL_GetUserVoltage6V(int32_t* status) {
return SimRoboRioData[0].GetUserVoltage6V();
return SimRoboRioData[0].userVoltage6V;
}
double HAL_GetUserCurrent6V(int32_t* status) {
return SimRoboRioData[0].GetUserCurrent6V();
return SimRoboRioData[0].userCurrent6V;
}
HAL_Bool HAL_GetUserActive6V(int32_t* status) {
return SimRoboRioData[0].GetUserActive6V();
return SimRoboRioData[0].userActive6V;
}
int32_t HAL_GetUserCurrentFaults6V(int32_t* status) {
return SimRoboRioData[0].GetUserFaults6V();
return SimRoboRioData[0].userFaults6V;
}
double HAL_GetUserVoltage5V(int32_t* status) {
return SimRoboRioData[0].GetUserVoltage5V();
return SimRoboRioData[0].userVoltage5V;
}
double HAL_GetUserCurrent5V(int32_t* status) {
return SimRoboRioData[0].GetUserCurrent5V();
return SimRoboRioData[0].userCurrent5V;
}
HAL_Bool HAL_GetUserActive5V(int32_t* status) {
return SimRoboRioData[0].GetUserActive5V();
return SimRoboRioData[0].userActive5V;
}
int32_t HAL_GetUserCurrentFaults5V(int32_t* status) {
return SimRoboRioData[0].GetUserFaults5V();
return SimRoboRioData[0].userFaults5V;
}
double HAL_GetUserVoltage3V3(int32_t* status) {
return SimRoboRioData[0].GetUserVoltage3V3();
return SimRoboRioData[0].userVoltage3V3;
}
double HAL_GetUserCurrent3V3(int32_t* status) {
return SimRoboRioData[0].GetUserCurrent3V3();
return SimRoboRioData[0].userCurrent3V3;
}
HAL_Bool HAL_GetUserActive3V3(int32_t* status) {
return SimRoboRioData[0].GetUserActive3V3();
return SimRoboRioData[0].userActive3V3;
}
int32_t HAL_GetUserCurrentFaults3V3(int32_t* status) {
return SimRoboRioData[0].GetUserFaults3V3();
return SimRoboRioData[0].userFaults3V3;
}
} // extern "C"