mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2026-09-10 16:49:36 +00:00
fix looking glass marker on portarf (#2912)
This commit is contained in:
@@ -69,7 +69,7 @@ void GlassView::manage_beep_audio() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint8_t& max_power) {
|
void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint16_t bin, uint8_t& max_power) {
|
||||||
if (mode == LOOKING_GLASS_SINGLEPASS) {
|
if (mode == LOOKING_GLASS_SINGLEPASS) {
|
||||||
// <20MHz spectrum mode
|
// <20MHz spectrum mode
|
||||||
if (bin < 120) {
|
if (bin < 120) {
|
||||||
@@ -91,7 +91,7 @@ void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rf::Frequency GlassView::get_freq_from_bin_pos(uint8_t pos) {
|
rf::Frequency GlassView::get_freq_from_bin_pos(uint16_t pos) {
|
||||||
rf::Frequency freq_at_pos = 0;
|
rf::Frequency freq_at_pos = 0;
|
||||||
if (mode == LOOKING_GLASS_SINGLEPASS) {
|
if (mode == LOOKING_GLASS_SINGLEPASS) {
|
||||||
// starting from the middle, minus 8 ignored bin on each side. Since pos is [-120,120] after the (pos - 120), it's divided by screen_width(240)/2 => 120
|
// starting from the middle, minus 8 ignored bin on each side. Since pos is [-120,120] after the (pos - 120), it's divided by screen_width(240)/2 => 120
|
||||||
@@ -200,7 +200,7 @@ void GlassView::on_channel_spectrum(const ChannelSpectrum& spectrum) {
|
|||||||
baseband::spectrum_streaming_stop();
|
baseband::spectrum_streaming_stop();
|
||||||
// Convert bins of this spectrum slice into a representative max_power and when enough, into pixels
|
// Convert bins of this spectrum slice into a representative max_power and when enough, into pixels
|
||||||
// we actually need screen_width (240) of those bins
|
// we actually need screen_width (240) of those bins
|
||||||
for (uint8_t bin = 0; bin < bin_length; bin++) {
|
for (uint16_t bin = 0; bin < bin_length; bin++) {
|
||||||
get_max_power(spectrum, bin, max_power);
|
get_max_power(spectrum, bin, max_power);
|
||||||
if (max_power > range_max_power)
|
if (max_power > range_max_power)
|
||||||
range_max_power = max_power;
|
range_max_power = max_power;
|
||||||
@@ -208,7 +208,7 @@ void GlassView::on_channel_spectrum(const ChannelSpectrum& spectrum) {
|
|||||||
if (bin == 119) {
|
if (bin == 119) {
|
||||||
uint8_t next_max_power = 0;
|
uint8_t next_max_power = 0;
|
||||||
get_max_power(spectrum, bin + 1, next_max_power);
|
get_max_power(spectrum, bin + 1, next_max_power);
|
||||||
for (uint8_t it = 0; it < ignore_dc; it++) {
|
for (uint16_t it = 0; it < ignore_dc; it++) {
|
||||||
uint8_t med_max_power = (max_power + next_max_power) / 2; // due to the way process_bins works we have to keep resetting the color
|
uint8_t med_max_power = (max_power + next_max_power) / 2; // due to the way process_bins works we have to keep resetting the color
|
||||||
if (process_bins(&med_max_power) == true)
|
if (process_bins(&med_max_power) == true)
|
||||||
return; // new line signaled, return
|
return; // new line signaled, return
|
||||||
@@ -298,8 +298,8 @@ void GlassView::on_range_changed() {
|
|||||||
receiver_model.set_target_frequency(f_center); // tune rx for this slice
|
receiver_model.set_target_frequency(f_center); // tune rx for this slice
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlassView::plot_marker(uint8_t pos) {
|
void GlassView::plot_marker(uint16_t pos) {
|
||||||
uint8_t shift_y = 0;
|
uint16_t shift_y = 0;
|
||||||
if (live_frequency_view > 0) // plot one line down when in live view
|
if (live_frequency_view > 0) // plot one line down when in live view
|
||||||
{
|
{
|
||||||
shift_y = 16;
|
shift_y = 16;
|
||||||
|
|||||||
@@ -116,8 +116,8 @@ class GlassView : public View {
|
|||||||
void update_min(int32_t v);
|
void update_min(int32_t v);
|
||||||
void update_max(int32_t v);
|
void update_max(int32_t v);
|
||||||
void update_range_field();
|
void update_range_field();
|
||||||
void get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint8_t& max_power);
|
void get_max_power(const ChannelSpectrum& spectrum, uint16_t bin, uint8_t& max_power);
|
||||||
rf::Frequency get_freq_from_bin_pos(uint8_t pos);
|
rf::Frequency get_freq_from_bin_pos(uint16_t pos);
|
||||||
void on_marker_change();
|
void on_marker_change();
|
||||||
void retune();
|
void retune();
|
||||||
bool process_bins(uint8_t* powerlevel);
|
bool process_bins(uint8_t* powerlevel);
|
||||||
@@ -128,7 +128,7 @@ class GlassView : public View {
|
|||||||
void on_range_changed();
|
void on_range_changed();
|
||||||
void reset_live_view();
|
void reset_live_view();
|
||||||
void add_spectrum_pixel(uint8_t power);
|
void add_spectrum_pixel(uint8_t power);
|
||||||
void plot_marker(uint8_t pos);
|
void plot_marker(uint16_t pos);
|
||||||
void load_presets();
|
void load_presets();
|
||||||
void populate_presets();
|
void populate_presets();
|
||||||
void launch_audio(rf::Frequency center_freq);
|
void launch_audio(rf::Frequency center_freq);
|
||||||
@@ -138,7 +138,7 @@ class GlassView : public View {
|
|||||||
rf::Frequency f_center_ini{0};
|
rf::Frequency f_center_ini{0};
|
||||||
|
|
||||||
rf::Frequency marker{0};
|
rf::Frequency marker{0};
|
||||||
uint8_t marker_pixel_index{0};
|
uint16_t marker_pixel_index{0};
|
||||||
rf::Frequency marker_pixel_step{0};
|
rf::Frequency marker_pixel_step{0};
|
||||||
|
|
||||||
// Size of one spectrum bin in Hz.
|
// Size of one spectrum bin in Hz.
|
||||||
|
|||||||
Reference in New Issue
Block a user