Fixed seatbot

This commit is contained in:
2022-04-08 20:54:02 +02:00
parent c0f8197262
commit 1f6eb46771
4 changed files with 35 additions and 23 deletions

View File

@@ -283,34 +283,46 @@ std::string local_clock_string()
return fmt::format("{:02d}:{:02d}:{:02d}", dt.hour, dt.minute, dt.second);
}
int16_t map_analog_stick(uint16_t middle, uint16_t start, uint16_t end, uint16_t raw)
int16_t map_analog_stick(uint16_t middle, uint16_t start, uint16_t end, uint16_t deadband, uint16_t raw)
{
if (abs(raw - middle) < configs.deadband.value)
{
return 0;
}
if (raw < middle)
if (start < end)
{
raw += configs.deadband.value;
start += configs.deadband.value;
const auto return_val = map(raw, start, middle, -1000, 0);
if (return_val > 0)
return 0;
if (return_val < -1000)
return -1000;
return return_val;
if (raw < middle)
{
raw += configs.deadband.value;
start += configs.deadband.value;
const auto return_val = cpputils::mapValueClamped<float>(raw, start, middle, -1000, 0);
return return_val;
}
else
{
raw -= configs.deadband.value;
end -= configs.deadband.value;
const auto return_val = cpputils::mapValueClamped<float>(raw, middle, end, 0, 1000);
return return_val;
}
}
else
{
raw -= configs.deadband.value;
end -= configs.deadband.value;
const auto return_val = map(raw, middle, end, 0, 1000);
if (return_val < 0)
return 0;
if (return_val > 1000)
return 1000;
return return_val;
if (raw < middle)
{
raw += configs.deadband.value;
end += configs.deadband.value;
const auto return_val = cpputils::mapValueClamped<float>(raw, end, middle, 1000, 0);
return return_val;
}
else
{
raw -= configs.deadband.value;
start -= configs.deadband.value;
const auto return_val = cpputils::mapValueClamped<float>(raw, middle, start, 0, -1000);
return return_val;
}
}
}