diff options
Diffstat (limited to 'tracker-hatire/ftnoir_tracker_hat.cpp')
-rw-r--r-- | tracker-hatire/ftnoir_tracker_hat.cpp | 45 |
1 files changed, 17 insertions, 28 deletions
diff --git a/tracker-hatire/ftnoir_tracker_hat.cpp b/tracker-hatire/ftnoir_tracker_hat.cpp index 9ac44cf2..9948c30e 100644 --- a/tracker-hatire/ftnoir_tracker_hat.cpp +++ b/tracker-hatire/ftnoir_tracker_hat.cpp @@ -15,23 +15,15 @@ hatire::hatire() { - HAT.Rot[0]=0; - HAT.Rot[1]=0; - HAT.Rot[2]=0; - HAT.Trans[0]=0; - HAT.Trans[1]=0; - HAT.Trans[2]=0; - - Begin.append((unsigned char) 0xAA); - Begin.append((unsigned char) 0xAA); - End.append((unsigned char) 0x55); - End.append((unsigned char) 0x55); -} -hatire::~hatire() -{ + Begin.append((unsigned char) 0xAA); + Begin.append((unsigned char) 0xAA); + End.append((unsigned char) 0x55); + End.append((unsigned char) 0x55); } +hatire::~hatire() = default; + //send RESET to Arduino void hatire::reset() { @@ -130,29 +122,26 @@ void hatire::data(double *data) } for (unsigned k = 0; k < 3; k++) - HAT.Rot[k] = clamp(HAT.Rot[k], -180, 180); + HAT.Rot[k] = std::clamp(HAT.Rot[k], -180.f, 180.f); const struct { + double& place; + float input; bool enable; bool sign; - float input; - double& place; } spec[] = { - { s.EnableX, s.InvertX, HAT.Trans[s.XAxis], data[TX] }, - { s.EnableY, s.InvertY, HAT.Trans[s.YAxis], data[TY] }, - { s.EnableZ, s.InvertZ, HAT.Trans[s.ZAxis], data[TZ] }, - { s.EnableYaw, s.InvertYaw, HAT.Rot[s.YawAxis], data[Yaw] }, - { s.EnablePitch, s.InvertPitch, HAT.Rot[s.PitchAxis], data[Pitch] }, - { s.EnableRoll, s.InvertRoll, HAT.Rot[s.RollAxis], data[Roll] }, + { data[TX], HAT.Trans[s.XAxis], s.EnableX, s.InvertX, }, + { data[TY], HAT.Trans[s.YAxis], s.EnableY, s.InvertY, }, + { data[TZ], HAT.Trans[s.ZAxis], s.EnableZ, s.InvertZ, }, + { data[Yaw], HAT.Rot[s.YawAxis], s.EnableYaw, s.InvertYaw }, + { data[Pitch], HAT.Rot[s.PitchAxis], s.EnablePitch, s.InvertPitch }, + { data[Roll], HAT.Rot[s.RollAxis], s.EnableRoll, s.InvertRoll }, }; - for (unsigned i = 0; i < std::size(spec); i++) - { - auto& k = spec[i]; - k.place = (k.sign ? -1 : 1) * (k.enable ? k.input : 0); - } + for (auto& k : spec) + k.place = (k.sign ? -1 : 1) * (k.enable ? (double)k.input : 0); } #include "ftnoir_tracker_hat_dialog.h" |