fix #322: scale bandscope for any number of samples
retain stretch of bars for short ranges, but after 128, scale 1:1 to always fill the width of the screen.
This commit is contained in:
@@ -870,13 +870,14 @@ uint8_t Rssi2Y(uint16_t rssi)
|
|||||||
#ifdef ENABLE_FEAT_F4HWN_SPECTRUM
|
#ifdef ENABLE_FEAT_F4HWN_SPECTRUM
|
||||||
static void DrawSpectrum()
|
static void DrawSpectrum()
|
||||||
{
|
{
|
||||||
|
uint16_t steps = GetStepsCount();
|
||||||
uint8_t ox = 0;
|
uint8_t ox = 0;
|
||||||
for (uint8_t i = 0; i < 128; ++i)
|
for (uint8_t i = 0; i < 128; ++i)
|
||||||
{
|
{
|
||||||
uint16_t rssi = rssiHistory[i >> settings.stepsCount];
|
uint16_t rssi = rssiHistory[i >> settings.stepsCount];
|
||||||
if (rssi != RSSI_MAX_VALUE)
|
if (rssi != RSSI_MAX_VALUE)
|
||||||
{
|
{
|
||||||
uint8_t x = i * 128 / GetStepsCount();
|
uint8_t x = i * 128 / ((steps > 128) ? 128 : steps) + 1;
|
||||||
for (uint8_t xx = ox; xx < x; xx++)
|
for (uint8_t xx = ox; xx < x; xx++)
|
||||||
{
|
{
|
||||||
DrawVLine(Rssi2Y(rssi), DrawingEndY, xx, true);
|
DrawVLine(Rssi2Y(rssi), DrawingEndY, xx, true);
|
||||||
|
Reference in New Issue
Block a user