mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2026-09-03 21:39:01 +00:00
Added AFSK BW and repeat parameters
This commit is contained in:
@@ -70,6 +70,7 @@ AFSKSetupView::AFSKSetupView(
|
||||
TransmitterModel& transmitter_model
|
||||
) : transmitter_model(transmitter_model)
|
||||
{
|
||||
uint8_t rpt;
|
||||
|
||||
add_children({ {
|
||||
&text_title,
|
||||
@@ -79,6 +80,10 @@ AFSKSetupView::AFSKSetupView(
|
||||
&field_mark,
|
||||
&text_space,
|
||||
&field_space,
|
||||
&text_bw,
|
||||
&field_bw,
|
||||
&text_repeat,
|
||||
&field_repeat,
|
||||
&checkbox_lsb,
|
||||
&checkbox_parity,
|
||||
&checkbox_datasize,
|
||||
@@ -93,7 +98,11 @@ AFSKSetupView::AFSKSetupView(
|
||||
|
||||
field_mark.set_value(persistent_memory::afsk_mark_freq()*100);
|
||||
field_space.set_value(persistent_memory::afsk_space_freq()*100);
|
||||
|
||||
field_bw.set_value(persistent_memory::afsk_bw());
|
||||
rpt = (persistent_memory::afsk_config() >> 8) & 0xFF;
|
||||
if (rpt > 99) rpt = 5;
|
||||
field_repeat.set_value(rpt);
|
||||
|
||||
button_setfreq.on_select = [this,&nav](Button&){
|
||||
auto new_view = new FrequencyKeypadView { nav, this->transmitter_model.tuning_frequency() };
|
||||
new_view->on_changed = [this](rf::Frequency f) {
|
||||
@@ -119,14 +128,16 @@ AFSKSetupView::AFSKSetupView(
|
||||
};
|
||||
|
||||
button_done.on_select = [this,&nav](Button&){
|
||||
uint8_t afsk_config = 0;
|
||||
uint32_t afsk_config = 0;
|
||||
|
||||
persistent_memory::set_afsk_mark(field_mark.value()/100);
|
||||
persistent_memory::set_afsk_space(field_space.value()/100);
|
||||
persistent_memory::set_afsk_bw(field_bw.value());
|
||||
|
||||
if (checkbox_lsb.value() == true) afsk_config |= 1;
|
||||
if (checkbox_parity.value() == true) afsk_config |= 2;
|
||||
if (checkbox_datasize.value() == true) afsk_config |= 4;
|
||||
afsk_config |= (field_repeat.value() << 8);
|
||||
persistent_memory::set_afsk_config(afsk_config);
|
||||
|
||||
nav.pop();
|
||||
|
||||
@@ -67,7 +67,7 @@ private:
|
||||
{ 64, 104 },
|
||||
5,
|
||||
{ 100, 32000 },
|
||||
100,
|
||||
25,
|
||||
' '
|
||||
};
|
||||
|
||||
@@ -79,7 +79,31 @@ private:
|
||||
{ 64, 120 },
|
||||
5,
|
||||
{ 100, 32000 },
|
||||
100,
|
||||
25,
|
||||
' '
|
||||
};
|
||||
|
||||
Text text_bw {
|
||||
{ 140, 104, 80, 16 },
|
||||
"BW: kHz"
|
||||
};
|
||||
NumberField field_bw {
|
||||
{ 172, 104 },
|
||||
3,
|
||||
{ 1, 40 },
|
||||
1,
|
||||
' '
|
||||
};
|
||||
|
||||
Text text_repeat {
|
||||
{ 140, 120, 64, 16 },
|
||||
"Repeat: "
|
||||
};
|
||||
NumberField field_repeat {
|
||||
{ 204, 120 },
|
||||
2,
|
||||
{ 1, 99 },
|
||||
1,
|
||||
' '
|
||||
};
|
||||
|
||||
|
||||
@@ -283,17 +283,19 @@ LCRView::LCRView(
|
||||
shared_memory.afsk_phase_inc_mark = persistent_memory::afsk_mark_freq()*(65536*1024)/2280;
|
||||
shared_memory.afsk_phase_inc_space = persistent_memory::afsk_space_freq()*(65536*1024)/2280;
|
||||
|
||||
shared_memory.afsk_fmmod = persistent_memory::afsk_bw()*33; // ?
|
||||
|
||||
memset(shared_memory.lcrdata, 0, 256);
|
||||
memcpy(shared_memory.lcrdata, lcrframe_f, 256);
|
||||
|
||||
shared_memory.afsk_transmit_done = false;
|
||||
shared_memory.afsk_repeat = 5; // DEFAULT
|
||||
shared_memory.afsk_repeat = ((persistent_memory::afsk_config() >> 8) & 0xFF);
|
||||
|
||||
context().message_map[Message::ID::TXDone] = [this, &transmitter_model](const Message* const p) {
|
||||
const auto message = static_cast<const TXDoneMessage*>(p);
|
||||
if (message->n > 0) {
|
||||
char str[8] = "0/5... ";
|
||||
str[0] = hexify(5-message->n);
|
||||
char str[8] = "0... ";
|
||||
str[0] = hexify(message->n);
|
||||
text_status.set(str);
|
||||
} else {
|
||||
text_status.set("Done ! ");
|
||||
@@ -301,7 +303,7 @@ LCRView::LCRView(
|
||||
}
|
||||
};
|
||||
|
||||
text_status.set("0/5... ");
|
||||
text_status.set("0... ");
|
||||
|
||||
transmitter_model.enable();
|
||||
};
|
||||
|
||||
@@ -149,9 +149,9 @@ SystemView::SystemView(
|
||||
// Initial view.
|
||||
// TODO: Restore from non-volatile memory?
|
||||
|
||||
if (persistent_memory::playing_dead() == 0x59)
|
||||
navigation_view.push(new PlayDeadView { navigation_view, true });
|
||||
else
|
||||
//if (persistent_memory::playing_dead() == 0x59)
|
||||
// navigation_view.push(new PlayDeadView { navigation_view, true });
|
||||
//else
|
||||
navigation_view.push(new BMPView { navigation_view });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user