Path: blob/master/libraries/AP_ADSB/sagetech-sdk/toGS.c
9767 views
/**1* @copyright Copyright (c) 2021 Sagetech, Inc. All rights reserved.2*3* @file toGS.c4* @author Jacob.Garrison5*6* @date Mar 2, 20217*8*/910#include "sgUtil.h"1112/*13* Documented in the header file.14*/15uint8_t toGS(const uint8_t bytes[])16{17uint8_t code = bytes[0];18float gs = 0.0f;1920if (code <= 0x01)21{22gs = 0.0f;23}24else if (code <= 0x08)25{26gs = 1.0f;27}28else if (code <= 0x0C)29{30gs = 1.0f + (code - 0x09) * 0.25f;31}32else if (code <= 0x26)33{34gs = 2.0f + (code - 0x0D) * 0.5f;35}36else if (code <= 0x5D)37{38gs = 15.0f + (code - 0x27) * 1.0f;39}40else if (code <= 0x6C)41{42gs = 70.0f + (code - 0x5E) * 2.0f;43}44else if (code <= 0x7B)45{46gs = 100.0f + (code - 0x6D) * 5.0f;47}48else49{50gs = 176.0f;51}5253// first converting to an 16 bit integer is necessary54// to keep the floating point conversion from55// truncating to 0.56return (uint8_t)((int16_t)gs & 0xFF);57}585960