Skip to content

Commit

Permalink
fix sim too
Browse files Browse the repository at this point in the history
  • Loading branch information
rzblue committed Oct 10, 2024
1 parent 7425c09 commit 6b8251c
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
2 changes: 1 addition & 1 deletion hal/src/main/native/athena/REVPH.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ void HAL_FreeREVPH(HAL_REVPHHandle handle) {
}

HAL_Bool HAL_CheckREVPHModuleNumber(int32_t module) {
return module >= 1 && module <= kNumREVPDHModules;
return module >= 1 && module <= kNumREVPHModules;
}

HAL_Bool HAL_CheckREVPHSolenoidChannel(int32_t channel) {
Expand Down
2 changes: 1 addition & 1 deletion hal/src/main/native/sim/CTREPCM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ HAL_CTREPCMHandle HAL_InitializeCTREPCM(int32_t module,
pcm->previousAllocation);
} else {
hal::SetLastErrorIndexOutOfRange(status, "Invalid Index for CTRE PCM", 0,
kNumCTREPCMModules, module);
kNumCTREPCMModules - 1, module);
}
return HAL_kInvalidHandle; // failed to allocate. Pass error back.
}
Expand Down
12 changes: 9 additions & 3 deletions hal/src/main/native/sim/PowerDistribution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,14 @@ HAL_PowerDistributionHandle HAL_InitializePowerDistribution(
}

if (!HAL_CheckPowerDistributionModule(module, type)) {
*status = PARAMETER_OUT_OF_RANGE;
hal::SetLastError(status, fmt::format("Invalid pdp module {}", module));
*status = RESOURCE_OUT_OF_RANGE;
if (type == HAL_PowerDistributionType::HAL_PowerDistributionType_kCTRE) {
hal::SetLastErrorIndexOutOfRange(status, "Invalid Index for CTRE PDP", 0,
kNumCTREPDPModules - 1, module);
} else {
hal::SetLastErrorIndexOutOfRange(status, "Invalid Index for REV PDH", 1,
kNumREVPDHModules, module);
}
return HAL_kInvalidHandle;
}
hal::init::CheckInit();
Expand Down Expand Up @@ -74,7 +80,7 @@ HAL_Bool HAL_CheckPowerDistributionModule(int32_t module,
if (type == HAL_PowerDistributionType::HAL_PowerDistributionType_kCTRE) {
return module < kNumCTREPDPModules && module >= 0;
} else {
return module < kNumREVPDHModules && module >= 1;
return module <= kNumREVPDHModules && module >= 1;
}
}

Expand Down
8 changes: 5 additions & 3 deletions hal/src/main/native/sim/REVPH.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,16 @@ HAL_REVPHHandle HAL_InitializeREVPH(int32_t module,
int32_t* status) {
hal::init::CheckInit();

if (module == 0) {
if (!HAL_CheckREVPHModuleNumber(module)) {
*status = RESOURCE_OUT_OF_RANGE;
hal::SetLastErrorIndexOutOfRange(status, "Invalid Index for REV PH", 1,
kNumREVPHModules, module);
return HAL_kInvalidHandle;
}

HAL_REVPHHandle handle;
auto pcm = pcmHandles->Allocate(module, &handle, status);
// Module starts at 1
auto pcm = pcmHandles->Allocate(module - 1, &handle, status);

if (*status != 0) {
if (pcm) {
Expand Down Expand Up @@ -82,7 +84,7 @@ void HAL_FreeREVPH(HAL_REVPHHandle handle) {
}

HAL_Bool HAL_CheckREVPHModuleNumber(int32_t module) {
return module >= 1 && module < kNumREVPDHModules;
return module >= 1 && module <= kNumREVPHModules;
}

HAL_Bool HAL_CheckREVPHSolenoidChannel(int32_t channel) {
Expand Down

0 comments on commit 6b8251c

Please sign in to comment.