Removes statics from hal sim (#825)

Based off of #824, the equivelent in sim.
This commit is contained in:
Thad House
2017-12-10 19:38:53 -08:00
committed by Peter Johnson
parent 8bd48d6c34
commit d2e7a90f41
78 changed files with 1008 additions and 576 deletions

View File

@@ -11,7 +11,16 @@
using namespace hal;
AccelerometerData hal::SimAccelerometerData[1];
namespace hal {
namespace init {
void InitializeAccelerometerData() {
static AccelerometerData sad[1];
::hal::SimAccelerometerData = sad;
}
} // namespace init
} // namespace hal
AccelerometerData* hal::SimAccelerometerData;
void AccelerometerData::ResetData() {
m_active = false;
m_activeCallbacks = nullptr;

View File

@@ -69,5 +69,5 @@ class AccelerometerData {
std::atomic<double> m_z{0.0};
std::shared_ptr<NotifyListenerVector> m_zCallbacks = nullptr;
};
extern AccelerometerData SimAccelerometerData[];
extern AccelerometerData* SimAccelerometerData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
AnalogGyroData hal::SimAnalogGyroData[kNumAccumulators];
namespace hal {
namespace init {
void InitializeAnalogGyroData() {
static AnalogGyroData agd[kNumAccumulators];
::hal::SimAnalogGyroData = agd;
}
} // namespace init
} // namespace hal
AnalogGyroData* hal::SimAnalogGyroData;
void AnalogGyroData::ResetData() {
m_angle = 0.0;
m_angleCallbacks = nullptr;

View File

@@ -50,5 +50,5 @@ class AnalogGyroData {
std::atomic<HAL_Bool> m_initialized{false};
std::shared_ptr<NotifyListenerVector> m_initializedCallbacks = nullptr;
};
extern AnalogGyroData SimAnalogGyroData[];
extern AnalogGyroData* SimAnalogGyroData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
AnalogInData hal::SimAnalogInData[kNumAnalogInputs];
namespace hal {
namespace init {
void InitializeAnalogInData() {
static AnalogInData sind[kNumAnalogInputs];
::hal::SimAnalogInData = sind;
}
} // namespace init
} // namespace hal
AnalogInData* hal::SimAnalogInData;
void AnalogInData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -109,5 +109,5 @@ class AnalogInData {
std::shared_ptr<NotifyListenerVector> m_accumulatorDeadbandCallbacks =
nullptr;
};
extern AnalogInData SimAnalogInData[];
extern AnalogInData* SimAnalogInData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
AnalogOutData hal::SimAnalogOutData[kNumAnalogOutputs];
namespace hal {
namespace init {
void InitializeAnalogOutData() {
static AnalogOutData siod[kNumAnalogOutputs];
::hal::SimAnalogOutData = siod;
}
} // namespace init
} // namespace hal
AnalogOutData* hal::SimAnalogOutData;
void AnalogOutData::ResetData() {
m_voltage = 0.0;
m_voltageCallbacks = nullptr;

View File

@@ -41,5 +41,5 @@ class AnalogOutData {
std::atomic<HAL_Bool> m_initialized{0};
std::shared_ptr<NotifyListenerVector> m_initializedCallbacks = nullptr;
};
extern AnalogOutData SimAnalogOutData[];
extern AnalogOutData* SimAnalogOutData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
AnalogTriggerData hal::SimAnalogTriggerData[kNumAnalogTriggers];
namespace hal {
namespace init {
void InitializeAnalogTriggerData() {
static AnalogTriggerData satd[kNumAnalogTriggers];
::hal::SimAnalogTriggerData = satd;
}
} // namespace init
} // namespace hal
AnalogTriggerData* hal::SimAnalogTriggerData;
void AnalogTriggerData::ResetData() {
m_initialized = 0;
m_initializedCallbacks = nullptr;

View File

@@ -62,5 +62,5 @@ class AnalogTriggerData {
static_cast<HALSIM_AnalogTriggerMode>(0)};
std::shared_ptr<NotifyListenerVector> m_triggerModeCallbacks = nullptr;
};
extern AnalogTriggerData SimAnalogTriggerData[];
extern AnalogTriggerData* SimAnalogTriggerData;
} // namespace hal

View File

@@ -11,6 +11,16 @@
using namespace hal;
namespace hal {
namespace init {
void InitializeCanData() {
static CanData scd;
::hal::SimCanData = &scd;
}
} // namespace init
} // namespace hal
CanData* hal::SimCanData;
void InvokeCallback(std::shared_ptr<CanSendMessageListenerVector> currentVector,
const char* name, uint32_t messageID, const uint8_t* data,
uint8_t dataSize, int32_t periodMs, int32_t* status) {
@@ -233,54 +243,54 @@ void CanData::CancelGetCANStatusCallback(int32_t uid) {
extern "C" {
void HALSIM_ResetCanData(void) { SimCanData.ResetData(); }
void HALSIM_ResetCanData(void) { SimCanData->ResetData(); }
int32_t HALSIM_RegisterCanSendMessageCallback(
HAL_CAN_SendMessageCallback callback, void* param) {
return SimCanData.RegisterSendMessageCallback(callback, param);
return SimCanData->RegisterSendMessageCallback(callback, param);
}
void HALSIM_CancelCanSendMessageCallback(int32_t uid) {
SimCanData.CancelSendMessageCallback(uid);
SimCanData->CancelSendMessageCallback(uid);
}
int32_t HALSIM_RegisterCanReceiveMessageCallback(
HAL_CAN_ReceiveMessageCallback callback, void* param) {
return SimCanData.RegisterReceiveMessageCallback(callback, param);
return SimCanData->RegisterReceiveMessageCallback(callback, param);
}
void HALSIM_CancelCanReceiveMessageCallback(int32_t uid) {
SimCanData.CancelReceiveMessageCallback(uid);
SimCanData->CancelReceiveMessageCallback(uid);
}
int32_t HALSIM_RegisterCanOpenStreamCallback(
HAL_CAN_OpenStreamSessionCallback callback, void* param) {
return SimCanData.RegisterOpenStreamCallback(callback, param);
return SimCanData->RegisterOpenStreamCallback(callback, param);
}
void HALSIM_CancelCanOpenStreamCallback(int32_t uid) {
SimCanData.CancelOpenStreamCallback(uid);
SimCanData->CancelOpenStreamCallback(uid);
}
int32_t HALSIM_RegisterCanCloseStreamCallback(
HAL_CAN_CloseStreamSessionCallback callback, void* param) {
return SimCanData.RegisterCloseStreamCallback(callback, param);
return SimCanData->RegisterCloseStreamCallback(callback, param);
}
void HALSIM_CancelCanCloseStreamCallback(int32_t uid) {
SimCanData.CancelCloseStreamCallback(uid);
SimCanData->CancelCloseStreamCallback(uid);
}
int32_t HALSIM_RegisterCanReadStreamCallback(
HAL_CAN_ReadStreamSessionCallback callback, void* param) {
return SimCanData.RegisterReadStreamCallback(callback, param);
return SimCanData->RegisterReadStreamCallback(callback, param);
}
void HALSIM_CancelCanReadStreamCallback(int32_t uid) {
SimCanData.CancelReadStreamCallback(uid);
SimCanData->CancelReadStreamCallback(uid);
}
int32_t HALSIM_RegisterCanGetCANStatusCallback(
HAL_CAN_GetCANStatusCallback callback, void* param) {
return SimCanData.RegisterGetCANStatusCallback(callback, param);
return SimCanData->RegisterGetCANStatusCallback(callback, param);
}
void HALSIM_CancelCanGetCANStatusCallback(int32_t uid) {
SimCanData.CancelGetCANStatusCallback(uid);
SimCanData->CancelGetCANStatusCallback(uid);
}
} // extern "C"

View File

@@ -106,6 +106,6 @@ class CanData {
std::shared_ptr<CanGetCANStatusListenerVector> m_getCanStatusCallback;
};
extern CanData SimCanData;
extern CanData* SimCanData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
DIOData hal::SimDIOData[kNumDigitalChannels];
namespace hal {
namespace init {
void InitializeDIOData() {
static DIOData sdd[kNumDigitalChannels];
::hal::SimDIOData = sdd;
}
} // namespace init
} // namespace hal
DIOData* hal::SimDIOData;
void DIOData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -68,5 +68,5 @@ class DIOData {
std::atomic<int32_t> m_filterIndex{-1};
std::shared_ptr<NotifyListenerVector> m_filterIndexCallbacks = nullptr;
};
extern DIOData SimDIOData[];
extern DIOData* SimDIOData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
DigitalPWMData hal::SimDigitalPWMData[kNumDigitalPWMOutputs];
namespace hal {
namespace init {
void InitializeDigitalPWMData() {
static DigitalPWMData sdpd[kNumDigitalPWMOutputs];
::hal::SimDigitalPWMData = sdpd;
}
} // namespace init
} // namespace hal
DigitalPWMData* hal::SimDigitalPWMData;
void DigitalPWMData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -50,5 +50,5 @@ class DigitalPWMData {
std::atomic<int32_t> m_pin{0};
std::shared_ptr<NotifyListenerVector> m_pinCallbacks = nullptr;
};
extern DigitalPWMData SimDigitalPWMData[];
extern DigitalPWMData* SimDigitalPWMData;
} // namespace hal

View File

@@ -30,7 +30,16 @@ struct MatchInfoDataStore {
using namespace hal;
DriverStationData hal::SimDriverStationData;
namespace hal {
namespace init {
void InitializeDriverStationData() {
static DriverStationData dsd;
::hal::SimDriverStationData = &dsd;
}
} // namespace init
} // namespace hal
DriverStationData* hal::SimDriverStationData;
DriverStationData::DriverStationData() { ResetData(); }
@@ -455,178 +464,178 @@ void DriverStationData::SetMatchInfo(const HAL_MatchInfo* info) {
void DriverStationData::NotifyNewData() { HAL_ReleaseDSMutex(); }
extern "C" {
void HALSIM_ResetDriverStationData(void) { SimDriverStationData.ResetData(); }
void HALSIM_ResetDriverStationData(void) { SimDriverStationData->ResetData(); }
int32_t HALSIM_RegisterDriverStationEnabledCallback(HAL_NotifyCallback callback,
void* param,
HAL_Bool initialNotify) {
return SimDriverStationData.RegisterEnabledCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterEnabledCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationEnabledCallback(int32_t uid) {
SimDriverStationData.CancelEnabledCallback(uid);
SimDriverStationData->CancelEnabledCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationEnabled(void) {
return SimDriverStationData.GetEnabled();
return SimDriverStationData->GetEnabled();
}
void HALSIM_SetDriverStationEnabled(HAL_Bool enabled) {
SimDriverStationData.SetEnabled(enabled);
SimDriverStationData->SetEnabled(enabled);
}
int32_t HALSIM_RegisterDriverStationAutonomousCallback(
HAL_NotifyCallback callback, void* param, HAL_Bool initialNotify) {
return SimDriverStationData.RegisterAutonomousCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterAutonomousCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationAutonomousCallback(int32_t uid) {
SimDriverStationData.CancelAutonomousCallback(uid);
SimDriverStationData->CancelAutonomousCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationAutonomous(void) {
return SimDriverStationData.GetAutonomous();
return SimDriverStationData->GetAutonomous();
}
void HALSIM_SetDriverStationAutonomous(HAL_Bool autonomous) {
SimDriverStationData.SetAutonomous(autonomous);
SimDriverStationData->SetAutonomous(autonomous);
}
int32_t HALSIM_RegisterDriverStationTestCallback(HAL_NotifyCallback callback,
void* param,
HAL_Bool initialNotify) {
return SimDriverStationData.RegisterTestCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterTestCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationTestCallback(int32_t uid) {
SimDriverStationData.CancelTestCallback(uid);
SimDriverStationData->CancelTestCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationTest(void) {
return SimDriverStationData.GetTest();
return SimDriverStationData->GetTest();
}
void HALSIM_SetDriverStationTest(HAL_Bool test) {
SimDriverStationData.SetTest(test);
SimDriverStationData->SetTest(test);
}
int32_t HALSIM_RegisterDriverStationEStopCallback(HAL_NotifyCallback callback,
void* param,
HAL_Bool initialNotify) {
return SimDriverStationData.RegisterEStopCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterEStopCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationEStopCallback(int32_t uid) {
SimDriverStationData.CancelEStopCallback(uid);
SimDriverStationData->CancelEStopCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationEStop(void) {
return SimDriverStationData.GetEStop();
return SimDriverStationData->GetEStop();
}
void HALSIM_SetDriverStationEStop(HAL_Bool eStop) {
SimDriverStationData.SetEStop(eStop);
SimDriverStationData->SetEStop(eStop);
}
int32_t HALSIM_RegisterDriverStationFmsAttachedCallback(
HAL_NotifyCallback callback, void* param, HAL_Bool initialNotify) {
return SimDriverStationData.RegisterFmsAttachedCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterFmsAttachedCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationFmsAttachedCallback(int32_t uid) {
SimDriverStationData.CancelFmsAttachedCallback(uid);
SimDriverStationData->CancelFmsAttachedCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationFmsAttached(void) {
return SimDriverStationData.GetFmsAttached();
return SimDriverStationData->GetFmsAttached();
}
void HALSIM_SetDriverStationFmsAttached(HAL_Bool fmsAttached) {
SimDriverStationData.SetFmsAttached(fmsAttached);
SimDriverStationData->SetFmsAttached(fmsAttached);
}
int32_t HALSIM_RegisterDriverStationDsAttachedCallback(
HAL_NotifyCallback callback, void* param, HAL_Bool initialNotify) {
return SimDriverStationData.RegisterDsAttachedCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterDsAttachedCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationDsAttachedCallback(int32_t uid) {
SimDriverStationData.CancelDsAttachedCallback(uid);
SimDriverStationData->CancelDsAttachedCallback(uid);
}
HAL_Bool HALSIM_GetDriverStationDsAttached(void) {
return SimDriverStationData.GetDsAttached();
return SimDriverStationData->GetDsAttached();
}
void HALSIM_SetDriverStationDsAttached(HAL_Bool dsAttached) {
SimDriverStationData.SetDsAttached(dsAttached);
SimDriverStationData->SetDsAttached(dsAttached);
}
int32_t HALSIM_RegisterDriverStationAllianceStationIdCallback(
HAL_NotifyCallback callback, void* param, HAL_Bool initialNotify) {
return SimDriverStationData.RegisterAllianceStationIdCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterAllianceStationIdCallback(
callback, param, initialNotify);
}
void HALSIM_CancelDriverStationAllianceStationIdCallback(int32_t uid) {
SimDriverStationData.CancelAllianceStationIdCallback(uid);
SimDriverStationData->CancelAllianceStationIdCallback(uid);
}
HAL_AllianceStationID HALSIM_GetDriverStationAllianceStationId(void) {
return SimDriverStationData.GetAllianceStationId();
return SimDriverStationData->GetAllianceStationId();
}
void HALSIM_SetDriverStationAllianceStationId(
HAL_AllianceStationID allianceStationId) {
SimDriverStationData.SetAllianceStationId(allianceStationId);
SimDriverStationData->SetAllianceStationId(allianceStationId);
}
int32_t HALSIM_RegisterDriverStationMatchTimeCallback(
HAL_NotifyCallback callback, void* param, HAL_Bool initialNotify) {
return SimDriverStationData.RegisterMatchTimeCallback(callback, param,
initialNotify);
return SimDriverStationData->RegisterMatchTimeCallback(callback, param,
initialNotify);
}
void HALSIM_CancelDriverStationMatchTimeCallback(int32_t uid) {
SimDriverStationData.CancelMatchTimeCallback(uid);
SimDriverStationData->CancelMatchTimeCallback(uid);
}
double HALSIM_GetDriverStationMatchTime(void) {
return SimDriverStationData.GetMatchTime();
return SimDriverStationData->GetMatchTime();
}
void HALSIM_SetDriverStationMatchTime(double matchTime) {
SimDriverStationData.SetMatchTime(matchTime);
SimDriverStationData->SetMatchTime(matchTime);
}
void HALSIM_SetJoystickAxes(int32_t joystickNum, const HAL_JoystickAxes* axes) {
SimDriverStationData.SetJoystickAxes(joystickNum, axes);
SimDriverStationData->SetJoystickAxes(joystickNum, axes);
}
void HALSIM_SetJoystickPOVs(int32_t joystickNum, const HAL_JoystickPOVs* povs) {
SimDriverStationData.SetJoystickPOVs(joystickNum, povs);
SimDriverStationData->SetJoystickPOVs(joystickNum, povs);
}
void HALSIM_SetJoystickButtons(int32_t joystickNum,
const HAL_JoystickButtons* buttons) {
SimDriverStationData.SetJoystickButtons(joystickNum, buttons);
SimDriverStationData->SetJoystickButtons(joystickNum, buttons);
}
void HALSIM_SetJoystickDescriptor(int32_t joystickNum,
const HAL_JoystickDescriptor* descriptor) {
SimDriverStationData.SetJoystickDescriptor(joystickNum, descriptor);
SimDriverStationData->SetJoystickDescriptor(joystickNum, descriptor);
}
void HALSIM_GetJoystickOutputs(int32_t joystickNum, int64_t* outputs,
int32_t* leftRumble, int32_t* rightRumble) {
SimDriverStationData.GetJoystickOutputs(joystickNum, outputs, leftRumble,
rightRumble);
SimDriverStationData->GetJoystickOutputs(joystickNum, outputs, leftRumble,
rightRumble);
}
void HALSIM_SetMatchInfo(const HAL_MatchInfo* info) {
SimDriverStationData.SetMatchInfo(info);
SimDriverStationData->SetMatchInfo(info);
}
void HALSIM_NotifyDriverStationNewData(void) {
SimDriverStationData.NotifyNewData();
SimDriverStationData->NotifyNewData();
}
void HALSIM_RegisterDriverStationAllCallbacks(HAL_NotifyCallback callback,
void* param,
HAL_Bool initialNotify) {
SimDriverStationData.RegisterEnabledCallback(callback, param, initialNotify);
SimDriverStationData.RegisterAutonomousCallback(callback, param,
initialNotify);
SimDriverStationData.RegisterTestCallback(callback, param, initialNotify);
SimDriverStationData.RegisterEStopCallback(callback, param, initialNotify);
SimDriverStationData.RegisterFmsAttachedCallback(callback, param,
SimDriverStationData->RegisterEnabledCallback(callback, param, initialNotify);
SimDriverStationData->RegisterAutonomousCallback(callback, param,
initialNotify);
SimDriverStationData.RegisterDsAttachedCallback(callback, param,
SimDriverStationData->RegisterTestCallback(callback, param, initialNotify);
SimDriverStationData->RegisterEStopCallback(callback, param, initialNotify);
SimDriverStationData->RegisterFmsAttachedCallback(callback, param,
initialNotify);
SimDriverStationData->RegisterDsAttachedCallback(callback, param,
initialNotify);
SimDriverStationData->RegisterAllianceStationIdCallback(callback, param,
initialNotify);
SimDriverStationData->RegisterMatchTimeCallback(callback, param,
initialNotify);
SimDriverStationData.RegisterAllianceStationIdCallback(callback, param,
initialNotify);
SimDriverStationData.RegisterMatchTimeCallback(callback, param,
initialNotify);
}
} // extern "C"

View File

@@ -135,5 +135,5 @@ class DriverStationData {
std::unique_ptr<HAL_JoystickDescriptor[]> m_joystickDescriptor;
std::unique_ptr<MatchInfoDataStore> m_matchInfo;
};
extern DriverStationData SimDriverStationData;
extern DriverStationData* SimDriverStationData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
EncoderData hal::SimEncoderData[kNumEncoders];
namespace hal {
namespace init {
void InitializeEncoderData() {
static EncoderData sed[kNumEncoders];
::hal::SimEncoderData = sed;
}
} // namespace init
} // namespace hal
EncoderData* hal::SimEncoderData;
void EncoderData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -96,5 +96,5 @@ class EncoderData {
std::atomic<int32_t> m_samplesToAverage{0};
std::shared_ptr<NotifyListenerVector> m_samplesToAverageCallbacks = nullptr;
};
extern EncoderData SimEncoderData[];
extern EncoderData* SimEncoderData;
} // namespace hal

View File

@@ -13,7 +13,16 @@
using namespace hal;
I2CData hal::SimI2CData[2];
namespace hal {
namespace init {
void InitializeI2CData() {
static I2CData sid[2];
::hal::SimI2CData = sid;
}
} // namespace init
} // namespace hal
I2CData* hal::SimI2CData;
void I2CData::ResetData() {
m_initialized = false;

View File

@@ -49,5 +49,5 @@ class I2CData {
std::shared_ptr<BufferListenerVector> m_readCallbacks = nullptr;
std::shared_ptr<ConstBufferListenerVector> m_writeCallbacks = nullptr;
};
extern I2CData SimI2CData[];
extern I2CData* SimI2CData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
PCMData hal::SimPCMData[kNumPCMModules];
namespace hal {
namespace init {
void InitializePCMData() {
static PCMData spd[kNumPCMModules];
::hal::SimPCMData = spd;
}
} // namespace init
} // namespace hal
PCMData* hal::SimPCMData;
void PCMData::ResetData() {
for (int i = 0; i < kNumSolenoidChannels; i++) {
m_solenoidInitialized[i] = false;

View File

@@ -96,5 +96,5 @@ class PCMData {
std::atomic<double> m_compressorCurrent{0.0};
std::shared_ptr<NotifyListenerVector> m_compressorCurrentCallbacks = nullptr;
};
extern PCMData SimPCMData[];
extern PCMData* SimPCMData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
PDPData hal::SimPDPData[kNumPDPModules];
namespace hal {
namespace init {
void InitializePDPData() {
static PDPData spd[kNumPDPModules];
::hal::SimPDPData = spd;
}
} // namespace init
} // namespace hal
PDPData* hal::SimPDPData;
void PDPData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -60,5 +60,5 @@ class PDPData {
std::atomic<double> m_current[kNumPDPChannels];
std::shared_ptr<NotifyListenerVector> m_currentCallbacks[kNumPDPChannels];
};
extern PDPData SimPDPData[];
extern PDPData* SimPDPData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
PWMData hal::SimPWMData[kNumPWMChannels];
namespace hal {
namespace init {
void InitializePWMData() {
static PWMData spd[kNumPWMChannels];
::hal::SimPWMData = spd;
}
} // namespace init
} // namespace hal
PWMData* hal::SimPWMData;
void PWMData::ResetData() {
m_initialized = false;
m_initializedCallbacks = nullptr;

View File

@@ -77,5 +77,5 @@ class PWMData {
std::atomic<HAL_Bool> m_zeroLatch{false};
std::shared_ptr<NotifyListenerVector> m_zeroLatchCallbacks = nullptr;
};
extern PWMData SimPWMData[];
extern PWMData* SimPWMData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
RelayData hal::SimRelayData[kNumRelayHeaders];
namespace hal {
namespace init {
void InitializeRelayData() {
static RelayData srd[kNumRelayHeaders];
::hal::SimRelayData = srd;
}
} // namespace init
} // namespace hal
RelayData* hal::SimRelayData;
void RelayData::ResetData() {
m_initializedForward = false;
m_initializedForwardCallbacks = nullptr;

View File

@@ -61,5 +61,5 @@ class RelayData {
std::atomic<HAL_Bool> m_reverse{false};
std::shared_ptr<NotifyListenerVector> m_reverseCallbacks = nullptr;
};
extern RelayData SimRelayData[];
extern RelayData* SimRelayData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
RoboRioData hal::SimRoboRioData[1];
namespace hal {
namespace init {
void InitializeRoboRioData() {
static RoboRioData srrd[1];
::hal::SimRoboRioData = srrd;
}
} // namespace init
} // namespace hal
RoboRioData* hal::SimRoboRioData;
void RoboRioData::ResetData() {
m_fPGAButton = false;
m_fPGAButtonCallbacks = nullptr;

View File

@@ -158,5 +158,5 @@ class RoboRioData {
std::atomic<int32_t> m_userFaults3V3{0};
std::shared_ptr<NotifyListenerVector> m_userFaults3V3Callbacks = nullptr;
};
extern RoboRioData SimRoboRioData[];
extern RoboRioData* SimRoboRioData;
} // namespace hal

View File

@@ -11,7 +11,16 @@
using namespace hal;
SPIAccelerometerData hal::SimSPIAccelerometerData[5];
namespace hal {
namespace init {
void InitializeSPIAccelerometerData() {
static SPIAccelerometerData ssad[5];
::hal::SimSPIAccelerometerData = ssad;
}
} // namespace init
} // namespace hal
SPIAccelerometerData* hal::SimSPIAccelerometerData;
void SPIAccelerometerData::ResetData() {
m_active = false;
m_activeCallbacks = nullptr;

View File

@@ -68,5 +68,5 @@ class SPIAccelerometerData {
std::atomic<double> m_z{0.0};
std::shared_ptr<NotifyListenerVector> m_zCallbacks = nullptr;
};
extern SPIAccelerometerData SimSPIAccelerometerData[];
extern SPIAccelerometerData* SimSPIAccelerometerData;
} // namespace hal

View File

@@ -13,8 +13,16 @@
using namespace hal;
SPIData hal::SimSPIData[5];
namespace hal {
namespace init {
void InitializeSPIData() {
static SPIData ssd[5];
::hal::SimSPIData = ssd;
}
} // namespace init
} // namespace hal
SPIData* hal::SimSPIData;
void SPIData::ResetData() {
m_initialized = false;
m_accumulatorValue = 0;

View File

@@ -65,5 +65,5 @@ class SPIData {
std::shared_ptr<NotifyListenerVector> m_resetAccumulatorCallback = nullptr;
std::shared_ptr<NotifyListenerVector> m_setAccumulatorCallback = nullptr;
};
extern SPIData SimSPIData[];
extern SPIData* SimSPIData;
} // namespace hal