MCPcopy Create free account
hub / github.com/MHeironimus/ArduinoJoystickLibrary / buildAndSet16BitValue

Method buildAndSet16BitValue

src/Joystick.cpp:588–619  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

586}
587
588int Joystick_::buildAndSet16BitValue(bool includeValue, int32_t value, int32_t valueMinimum, int32_t valueMaximum, int32_t actualMinimum, int32_t actualMaximum, uint8_t dataLocation[])
589{
590 int32_t convertedValue;
591 uint8_t highByte;
592 uint8_t lowByte;
593 int32_t realMinimum = min(valueMinimum, valueMaximum);
594 int32_t realMaximum = max(valueMinimum, valueMaximum);
595
596 if (includeValue == false) return 0;
597
598 if (value < realMinimum) {
599 value = realMinimum;
600 }
601 if (value > realMaximum) {
602 value = realMaximum;
603 }
604
605 if (valueMinimum > valueMaximum) {
606 // Values go from a larger number to a smaller number (e.g. 1024 to 0)
607 value = realMaximum - value + realMinimum;
608 }
609
610 convertedValue = map(value, realMinimum, realMaximum, actualMinimum, actualMaximum);
611
612 highByte = (uint8_t)(convertedValue >> 8);
613 lowByte = (uint8_t)(convertedValue & 0x00FF);
614
615 dataLocation[0] = lowByte;
616 dataLocation[1] = highByte;
617
618 return 2;
619}
620
621int Joystick_::buildAndSetAxisValue(bool includeAxis, int32_t axisValue, int32_t axisMinimum, int32_t axisMaximum, uint8_t dataLocation[])
622{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected