Compare commits
7 Commits
v0.22
...
am_fix_tes
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2a085734c | ||
|
|
1098e8c386 | ||
|
|
ce2dd10d45 | ||
|
|
a22760c0b4 | ||
|
|
aa92e93c56 | ||
|
|
dc1808b1fe | ||
|
|
dff4384dbe |
138
am_fix.c
138
am_fix.c
@@ -101,48 +101,102 @@ static const t_gain_table gain_table[] =
|
|||||||
{
|
{
|
||||||
{0x03BE, -7}, // 0 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original
|
{0x03BE, -7}, // 0 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original
|
||||||
|
|
||||||
{0x0000,-93}, // 1 .. 0 0 0 0 .. -28dB -24dB -8dB -33dB .. -93dB
|
{0x0000, -98}, // 1 .. 0 0 0 0 .. -33dB -24dB -8dB -33dB .. -98dB
|
||||||
{0x0008,-91}, // 2 .. 0 0 1 0 .. -28dB -24dB -6dB -33dB .. -91dB
|
{0x0008, -96}, // 2 .. 0 0 1 0 .. -33dB -24dB -6dB -33dB .. -96dB
|
||||||
{0x0010,-88}, // 3 .. 0 0 2 0 .. -28dB -24dB -3dB -33dB .. -88dB
|
{0x0100, -95}, // 3 .. 1 0 0 0 .. -30dB -24dB -8dB -33dB .. -95dB
|
||||||
{0x0001,-87}, // 4 .. 0 0 0 1 .. -28dB -24dB -8dB -27dB .. -87dB
|
{0x0020, -93}, // 4 .. 0 1 0 0 .. -33dB -19dB -8dB -33dB .. -93dB
|
||||||
{0x0009,-85}, // 5 .. 0 0 1 1 .. -28dB -24dB -6dB -27dB .. -85dB
|
{0x0001, -92}, // 5 .. 0 0 0 1 .. -33dB -24dB -8dB -27dB .. -92dB
|
||||||
{0x0011,-82}, // 6 .. 0 0 2 1 .. -28dB -24dB -3dB -27dB .. -82dB
|
{0x0028, -91}, // 6 .. 0 1 1 0 .. -33dB -19dB -6dB -33dB .. -91dB
|
||||||
{0x0002,-81}, // 7 .. 0 0 0 2 .. -28dB -24dB -8dB -21dB .. -81dB
|
{0x0009, -90}, // 7 .. 0 0 1 1 .. -33dB -24dB -6dB -27dB .. -90dB
|
||||||
{0x000A,-79}, // 8 .. 0 0 1 2 .. -28dB -24dB -6dB -21dB .. -79dB
|
{0x0101, -89}, // 8 .. 1 0 0 1 .. -30dB -24dB -8dB -27dB .. -89dB
|
||||||
{0x0012,-76}, // 9 .. 0 0 2 2 .. -28dB -24dB -3dB -21dB .. -76dB
|
{0x0030, -88}, // 9 .. 0 1 2 0 .. -33dB -19dB -3dB -33dB .. -88dB
|
||||||
{0x0003,-75}, // 10 .. 0 0 0 3 .. -28dB -24dB -8dB -15dB .. -75dB
|
{0x0118, -87}, // 10 .. 1 0 3 0 .. -30dB -24dB 0dB -33dB .. -87dB
|
||||||
{0x000B,-73}, // 11 .. 0 0 1 3 .. -28dB -24dB -6dB -15dB .. -73dB
|
{0x0002, -86}, // 11 .. 0 0 0 2 .. -33dB -24dB -8dB -21dB .. -86dB
|
||||||
{0x0013,-70}, // 12 .. 0 0 2 3 .. -28dB -24dB -3dB -15dB .. -70dB
|
{0x0130, -85}, // 12 .. 1 1 2 0 .. -30dB -19dB -3dB -33dB .. -85dB
|
||||||
{0x0004,-69}, // 13 .. 0 0 0 4 .. -28dB -24dB -8dB -9dB .. -69dB
|
{0x0019, -84}, // 13 .. 0 0 3 1 .. -33dB -24dB 0dB -27dB .. -84dB
|
||||||
{0x000C,-67}, // 14 .. 0 0 1 4 .. -28dB -24dB -6dB -9dB .. -67dB
|
{0x0060, -83}, // 14 .. 0 3 0 0 .. -33dB -9dB -8dB -33dB .. -83dB
|
||||||
{0x000D,-64}, // 15 .. 0 0 1 5 .. -28dB -24dB -6dB -6dB .. -64dB
|
{0x0138, -82}, // 15 .. 1 1 3 0 .. -30dB -19dB 0dB -33dB .. -82dB
|
||||||
{0x001C,-61}, // 16 .. 0 0 3 4 .. -28dB -24dB 0dB - 9dB .. -61dB
|
{0x0119, -81}, // 16 .. 1 0 3 1 .. -30dB -24dB 0dB -27dB .. -81dB
|
||||||
{0x001D,-58}, // 17 .. 0 0 3 5 .. -28dB -24dB 0dB -6dB .. -58dB
|
{0x0058, -80}, // 17 .. 0 2 3 0 .. -33dB -14dB 0dB -33dB .. -80dB
|
||||||
{0x001E,-55}, // 18 .. 0 0 3 6 .. -28dB -24dB 0dB -3dB .. -55dB
|
{0x0141, -79}, // 18 .. 1 2 0 1 .. -30dB -14dB -8dB -27dB .. -79dB
|
||||||
{0x001F,-52}, // 19 .. 0 0 3 7 .. -28dB -24dB 0dB 0dB .. -52dB
|
{0x0070, -78}, // 19 .. 0 3 2 0 .. -33dB -9dB -3dB -33dB .. -78dB
|
||||||
{0x003E,-50}, // 20 .. 0 1 3 6 .. -28dB -19dB 0dB -3dB .. -50dB
|
{0x0180, -77}, // 20 .. 1 4 0 0 .. -30dB -6dB -8dB -33dB .. -77dB
|
||||||
{0x003F,-47}, // 21 .. 0 1 3 7 .. -28dB -19dB 0dB 0dB .. -47dB
|
{0x0139, -76}, // 21 .. 1 1 3 1 .. -30dB -19dB 0dB -27dB .. -76dB
|
||||||
{0x005E,-45}, // 22 .. 0 2 3 6 .. -28dB -14dB 0dB -3dB .. -45dB
|
{0x0013, -75}, // 22 .. 0 0 2 3 .. -33dB -24dB -3dB -15dB .. -75dB
|
||||||
{0x005F,-42}, // 23 .. 0 2 3 7 .. -28dB -14dB 0dB 0dB .. -42dB
|
{0x0161, -74}, // 23 .. 1 3 0 1 .. -30dB -9dB -8dB -27dB .. -74dB
|
||||||
{0x007E,-40}, // 24 .. 0 3 3 6 .. -28dB -9dB 0dB -3dB .. -40dB
|
{0x01C0, -73}, // 24 .. 1 6 0 0 .. -30dB -2dB -8dB -33dB .. -73dB
|
||||||
{0x007F,-37}, // 25 .. 0 3 3 7 .. -28dB -9dB 0dB 0dB .. -37dB
|
{0x00E8, -72}, // 25 .. 0 7 1 0 .. -33dB 0dB -6dB -33dB .. -72dB
|
||||||
{0x009F,-34}, // 26 .. 0 4 3 7 .. -28dB -6dB 0dB 0dB .. -34dB
|
{0x00D0, -71}, // 26 .. 0 6 2 0 .. -33dB -2dB -3dB -33dB .. -71dB
|
||||||
{0x00BF,-32}, // 27 .. 0 5 3 7 .. -28dB -4dB 0dB 0dB .. -32dB
|
{0x0239, -70}, // 27 .. 2 1 3 1 .. -24dB -19dB 0dB -27dB .. -70dB
|
||||||
{0x00DF,-30}, // 28 .. 0 6 3 7 .. -28dB -2dB 0dB 0dB .. -30dB
|
{0x006A, -69}, // 28 .. 0 3 1 2 .. -33dB -9dB -6dB -21dB .. -69dB
|
||||||
{0x00FF,-28}, // 29 .. 0 7 3 7 .. -28dB 0dB 0dB 0dB .. -28dB
|
{0x0006, -68}, // 29 .. 0 0 0 6 .. -33dB -24dB -8dB -3dB .. -68dB
|
||||||
{0x01DF,-26}, // 30 .. 1 6 3 7 .. -24dB -2dB 0dB 0dB .. -26dB
|
{0x00B1, -67}, // 30 .. 0 5 2 1 .. -33dB -4dB -3dB -27dB .. -67dB
|
||||||
{0x01FF,-24}, // 31 .. 1 7 3 7 .. -24dB 0dB 0dB 0dB .. -24dB
|
{0x000E, -66}, // 31 .. 0 0 1 6 .. -33dB -24dB -6dB -3dB .. -66dB
|
||||||
{0x02BF,-23}, // 32 .. 2 5 3 7 .. -19dB -4dB 0dB 0dB .. -23dB
|
{0x015A, -65}, // 32 .. 1 2 3 2 .. -30dB -14dB 0dB -21dB .. -65dB
|
||||||
{0x02DF,-21}, // 33 .. 2 6 3 7 .. -19dB -2dB 0dB -0dB .. -21dB
|
{0x022B, -64}, // 33 .. 2 1 1 3 .. -24dB -19dB -6dB -15dB .. -64dB
|
||||||
{0x02FF,-19}, // 34 .. 2 7 3 7 .. -19dB 0dB 0dB 0dB .. -19dB
|
{0x01F8, -63}, // 34 .. 1 7 3 0 .. -30dB 0dB 0dB -33dB .. -63dB
|
||||||
{0x035E,-17}, // 35 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB
|
{0x0163, -62}, // 35 .. 1 3 0 3 .. -30dB -9dB -8dB -15dB .. -62dB
|
||||||
{0x035F,-14}, // 36 .. 3 2 3 7 .. 0dB -14dB 0dB 0dB .. -14dB
|
{0x0035, -61}, // 36 .. 0 1 2 5 .. -33dB -19dB -3dB -6dB .. -61dB
|
||||||
{0x037E,-12}, // 37 .. 3 3 3 6 .. 0dB -9dB 0dB -3dB .. -12dB
|
{0x0214, -60}, // 37 .. 2 0 2 4 .. -24dB -24dB -3dB -9dB .. -60dB
|
||||||
{0x037F,-9}, // 38 .. 3 3 3 7 .. 0dB -9dB 0dB 0dB .. -9dB
|
{0x01D9, -59}, // 38 .. 1 6 3 1 .. -30dB -2dB 0dB -27dB .. -59dB
|
||||||
{0x038F,-6}, // 39 .. 3 4 3 7 .. 0dB - 6dB 0dB 0dB .. -6dB
|
{0x0145, -58}, // 39 .. 1 2 0 5 .. -30dB -14dB -8dB -6dB .. -58dB
|
||||||
{0x03BF,-4}, // 40 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB
|
{0x02A2, -57}, // 40 .. 2 5 0 2 .. -24dB -4dB -8dB -21dB .. -57dB
|
||||||
{0x03DF,-2}, // 41 .. 3 6 3 7 .. 0dB - 2dB 0dB 0dB .. -2dB
|
{0x02D1, -56}, // 41 .. 2 6 2 1 .. -24dB -2dB -3dB -27dB .. -56dB
|
||||||
{0x03FF,0} // 42 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB
|
{0x00B3, -55}, // 42 .. 0 5 2 3 .. -33dB -4dB -3dB -15dB .. -55dB
|
||||||
|
{0x0216, -54}, // 43 .. 2 0 2 6 .. -24dB -24dB -3dB -3dB .. -54dB
|
||||||
|
{0x0066, -53}, // 44 .. 0 3 0 6 .. -33dB -9dB -8dB -3dB .. -53dB
|
||||||
|
{0x00C4, -52}, // 45 .. 0 6 0 4 .. -33dB -2dB -8dB -9dB .. -52dB
|
||||||
|
{0x006E, -51}, // 46 .. 0 3 1 6 .. -33dB -9dB -6dB -3dB .. -51dB
|
||||||
|
{0x015D, -50}, // 47 .. 1 2 3 5 .. -30dB -14dB 0dB -6dB .. -50dB
|
||||||
|
{0x00AD, -49}, // 48 .. 0 5 1 5 .. -33dB -4dB -6dB -6dB .. -49dB
|
||||||
|
{0x007D, -48}, // 49 .. 0 3 3 5 .. -33dB -9dB 0dB -6dB .. -48dB
|
||||||
|
{0x00D4, -47}, // 50 .. 0 6 2 4 .. -33dB -2dB -3dB -9dB .. -47dB
|
||||||
|
{0x01B4, -46}, // 51 .. 1 5 2 4 .. -30dB -4dB -3dB -9dB .. -46dB
|
||||||
|
{0x030B, -45}, // 52 .. 3 0 1 3 .. 0dB -24dB -6dB -15dB .. -45dB
|
||||||
|
{0x00CE, -44}, // 53 .. 0 6 1 6 .. -33dB -2dB -6dB -3dB .. -44dB
|
||||||
|
{0x01B5, -43}, // 54 .. 1 5 2 5 .. -30dB -4dB -3dB -6dB .. -43dB
|
||||||
|
{0x0097, -42}, // 55 .. 0 4 2 7 .. -33dB -6dB -3dB 0dB .. -42dB
|
||||||
|
{0x0257, -41}, // 56 .. 2 2 2 7 .. -24dB -14dB -3dB 0dB .. -41dB
|
||||||
|
{0x02B4, -40}, // 57 .. 2 5 2 4 .. -24dB -4dB -3dB -9dB .. -40dB
|
||||||
|
{0x027D, -39}, // 58 .. 2 3 3 5 .. -24dB -9dB 0dB -6dB .. -39dB
|
||||||
|
{0x01DD, -38}, // 59 .. 1 6 3 5 .. -30dB -2dB 0dB -6dB .. -38dB
|
||||||
|
{0x02AE, -37}, // 60 .. 2 5 1 6 .. -24dB -4dB -6dB -3dB .. -37dB
|
||||||
|
{0x0379, -36}, // 61 .. 3 3 3 1 .. 0dB -9dB 0dB -27dB .. -36dB
|
||||||
|
{0x035A, -35}, // 62 .. 3 2 3 2 .. 0dB -14dB 0dB -21dB .. -35dB
|
||||||
|
{0x02B6, -34}, // 63 .. 2 5 2 6 .. -24dB -4dB -3dB -3dB .. -34dB
|
||||||
|
{0x030E, -33}, // 64 .. 3 0 1 6 .. 0dB -24dB -6dB -3dB .. -33dB
|
||||||
|
{0x0307, -32}, // 65 .. 3 0 0 7 .. 0dB -24dB -8dB 0dB .. -32dB
|
||||||
|
{0x02BE, -31}, // 66 .. 2 5 3 6 .. -24dB -4dB 0dB -3dB .. -31dB
|
||||||
|
{0x037A, -30}, // 67 .. 3 3 3 2 .. 0dB -9dB 0dB -21dB .. -30dB
|
||||||
|
{0x02DE, -29}, // 68 .. 2 6 3 6 .. -24dB -2dB 0dB -3dB .. -29dB
|
||||||
|
{0x0345, -28}, // 69 .. 3 2 0 5 .. 0dB -14dB -8dB -6dB .. -28dB
|
||||||
|
{0x03A3, -27}, // 70 .. 3 5 0 3 .. 0dB -4dB -8dB -15dB .. -27dB
|
||||||
|
{0x0364, -26}, // 71 .. 3 3 0 4 .. 0dB -9dB -8dB -9dB .. -26dB
|
||||||
|
{0x032F, -25}, // 72 .. 3 1 1 7 .. 0dB -19dB -6dB 0dB .. -25dB
|
||||||
|
{0x0393, -24}, // 73 .. 3 4 2 3 .. 0dB -6dB -3dB -15dB .. -24dB
|
||||||
|
{0x0384, -23}, // 74 .. 3 4 0 4 .. 0dB -6dB -8dB -9dB .. -23dB
|
||||||
|
{0x0347, -22}, // 75 .. 3 2 0 7 .. 0dB -14dB -8dB 0dB .. -22dB
|
||||||
|
{0x03EB, -21}, // 76 .. 3 7 1 3 .. 0dB 0dB -6dB -15dB .. -21dB
|
||||||
|
{0x03D3, -20}, // 77 .. 3 6 2 3 .. 0dB -2dB -3dB -15dB .. -20dB
|
||||||
|
{0x03BB, -19}, // 78 .. 3 5 3 3 .. 0dB -4dB 0dB -15dB .. -19dB
|
||||||
|
{0x037C, -18}, // 79 .. 3 3 3 4 .. 0dB -9dB 0dB -9dB .. -18dB
|
||||||
|
{0x03CC, -17}, // 80 .. 3 6 1 4 .. 0dB -2dB -6dB -9dB .. -17dB
|
||||||
|
{0x03C5, -16}, // 81 .. 3 6 0 5 .. 0dB -2dB -8dB -6dB .. -16dB
|
||||||
|
{0x03EC, -15}, // 82 .. 3 7 1 4 .. 0dB 0dB -6dB -9dB .. -15dB
|
||||||
|
{0x035F, -14}, // 83 .. 3 2 3 7 .. 0dB -14dB 0dB 0dB .. -14dB
|
||||||
|
{0x03BC, -13}, // 84 .. 3 5 3 4 .. 0dB -4dB 0dB -9dB .. -13dB
|
||||||
|
{0x038F, -12}, // 85 .. 3 4 1 7 .. 0dB -6dB -6dB 0dB .. -12dB
|
||||||
|
{0x03E6, -11}, // 86 .. 3 7 0 6 .. 0dB 0dB -8dB -3dB .. -11dB
|
||||||
|
{0x03AF, -10}, // 87 .. 3 5 1 7 .. 0dB -4dB -6dB 0dB .. -10dB
|
||||||
|
{0x03F5, -9}, // 88 .. 3 7 2 5 .. 0dB 0dB -3dB -6dB .. -9dB
|
||||||
|
{0x03D6, -8}, // 89 .. 3 6 2 6 .. 0dB -2dB -3dB -3dB .. -8dB
|
||||||
|
{0x03BE, -7}, // 90 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original
|
||||||
|
{0x03F6, -6}, // 91 .. 3 7 2 6 .. 0dB 0dB -3dB -3dB .. -6dB
|
||||||
|
{0x03DE, -5}, // 92 .. 3 6 3 6 .. 0dB -2dB 0dB -3dB .. -5dB
|
||||||
|
{0x03BF, -4}, // 93 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB
|
||||||
|
{0x03F7, -3}, // 94 .. 3 7 2 7 .. 0dB 0dB -3dB 0dB .. -3dB
|
||||||
|
{0x03DF, -2}, // 95 .. 3 6 3 7 .. 0dB -2dB 0dB 0dB .. -2dB
|
||||||
|
{0x03FF, 0}, // 96 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint8_t gain_table_size = ARRAY_SIZE(gain_table);
|
const uint8_t gain_table_size = ARRAY_SIZE(gain_table);
|
||||||
|
|||||||
88
app/app.c
88
app/app.c
@@ -241,14 +241,12 @@ static void HandleReceive(void)
|
|||||||
|
|
||||||
uint8_t Mode = END_OF_RX_MODE_SKIP;
|
uint8_t Mode = END_OF_RX_MODE_SKIP;
|
||||||
|
|
||||||
if (gFlagTailNoteEliminationComplete)
|
if (gFlagTailToneEliminationComplete) {
|
||||||
{
|
|
||||||
Mode = END_OF_RX_MODE_END;
|
Mode = END_OF_RX_MODE_END;
|
||||||
goto Skip;
|
goto Skip;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gScanStateDir != SCAN_OFF && IS_FREQ_CHANNEL(gNextMrChannel))
|
if (gScanStateDir != SCAN_OFF && IS_FREQ_CHANNEL(gNextMrChannel)) { // we are scanning in the frequency mode
|
||||||
{ // we are scanning in the frequency mode
|
|
||||||
if (g_SquelchLost)
|
if (g_SquelchLost)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -256,15 +254,13 @@ static void HandleReceive(void)
|
|||||||
goto Skip;
|
goto Skip;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (gCurrentCodeType)
|
switch (gCurrentCodeType) {
|
||||||
{
|
|
||||||
default:
|
default:
|
||||||
case CODE_TYPE_OFF:
|
case CODE_TYPE_OFF:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CODE_TYPE_CONTINUOUS_TONE:
|
case CODE_TYPE_CONTINUOUS_TONE:
|
||||||
if (gFoundCTCSS && gFoundCTCSSCountdown_10ms == 0)
|
if (gFoundCTCSS && gFoundCTCSSCountdown_10ms == 0) {
|
||||||
{
|
|
||||||
gFoundCTCSS = false;
|
gFoundCTCSS = false;
|
||||||
gFoundCDCSS = false;
|
gFoundCDCSS = false;
|
||||||
Mode = END_OF_RX_MODE_END;
|
Mode = END_OF_RX_MODE_END;
|
||||||
@@ -274,8 +270,7 @@ static void HandleReceive(void)
|
|||||||
|
|
||||||
case CODE_TYPE_DIGITAL:
|
case CODE_TYPE_DIGITAL:
|
||||||
case CODE_TYPE_REVERSE_DIGITAL:
|
case CODE_TYPE_REVERSE_DIGITAL:
|
||||||
if (gFoundCDCSS && gFoundCDCSSCountdown_10ms == 0)
|
if (gFoundCDCSS && gFoundCDCSSCountdown_10ms == 0) {
|
||||||
{
|
|
||||||
gFoundCTCSS = false;
|
gFoundCTCSS = false;
|
||||||
gFoundCDCSS = false;
|
gFoundCDCSS = false;
|
||||||
Mode = END_OF_RX_MODE_END;
|
Mode = END_OF_RX_MODE_END;
|
||||||
@@ -284,21 +279,16 @@ static void HandleReceive(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_SquelchLost)
|
if (g_SquelchLost) {
|
||||||
{
|
if (!gEndOfRxDetectedMaybe
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (!gEndOfRxDetectedMaybe && !IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE))
|
&& !IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE)
|
||||||
#else
|
#endif
|
||||||
if (!gEndOfRxDetectedMaybe)
|
) {
|
||||||
#endif
|
switch (gCurrentCodeType) {
|
||||||
{
|
|
||||||
switch (gCurrentCodeType)
|
|
||||||
{
|
|
||||||
case CODE_TYPE_OFF:
|
case CODE_TYPE_OFF:
|
||||||
if (gEeprom.SQUELCH_LEVEL)
|
if (gEeprom.SQUELCH_LEVEL) {
|
||||||
{
|
if (g_CxCSS_TAIL_Found) {
|
||||||
if (g_CxCSS_TAIL_Found)
|
|
||||||
{
|
|
||||||
Mode = END_OF_RX_MODE_TTE;
|
Mode = END_OF_RX_MODE_TTE;
|
||||||
g_CxCSS_TAIL_Found = false;
|
g_CxCSS_TAIL_Found = false;
|
||||||
}
|
}
|
||||||
@@ -306,19 +296,15 @@ static void HandleReceive(void)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CODE_TYPE_CONTINUOUS_TONE:
|
case CODE_TYPE_CONTINUOUS_TONE:
|
||||||
if (g_CTCSS_Lost)
|
if (g_CTCSS_Lost) {
|
||||||
{
|
|
||||||
gFoundCTCSS = false;
|
gFoundCTCSS = false;
|
||||||
}
|
}
|
||||||
else
|
else if (!gFoundCTCSS) {
|
||||||
if (!gFoundCTCSS)
|
|
||||||
{
|
|
||||||
gFoundCTCSS = true;
|
gFoundCTCSS = true;
|
||||||
gFoundCTCSSCountdown_10ms = 100; // 1 sec
|
gFoundCTCSSCountdown_10ms = 100; // 1 sec
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_CxCSS_TAIL_Found)
|
if (g_CxCSS_TAIL_Found) {
|
||||||
{
|
|
||||||
Mode = END_OF_RX_MODE_TTE;
|
Mode = END_OF_RX_MODE_TTE;
|
||||||
g_CxCSS_TAIL_Found = false;
|
g_CxCSS_TAIL_Found = false;
|
||||||
}
|
}
|
||||||
@@ -326,19 +312,15 @@ static void HandleReceive(void)
|
|||||||
|
|
||||||
case CODE_TYPE_DIGITAL:
|
case CODE_TYPE_DIGITAL:
|
||||||
case CODE_TYPE_REVERSE_DIGITAL:
|
case CODE_TYPE_REVERSE_DIGITAL:
|
||||||
if (g_CDCSS_Lost && gCDCSSCodeType == CDCSS_POSITIVE_CODE)
|
if (g_CDCSS_Lost && gCDCSSCodeType == CDCSS_POSITIVE_CODE) {
|
||||||
{
|
|
||||||
gFoundCDCSS = false;
|
gFoundCDCSS = false;
|
||||||
}
|
}
|
||||||
else
|
else if (!gFoundCDCSS) {
|
||||||
if (!gFoundCDCSS)
|
|
||||||
{
|
|
||||||
gFoundCDCSS = true;
|
gFoundCDCSS = true;
|
||||||
gFoundCDCSSCountdown_10ms = 100; // 1 sec
|
gFoundCDCSSCountdown_10ms = 100; // 1 sec
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_CxCSS_TAIL_Found)
|
if (g_CxCSS_TAIL_Found) {
|
||||||
{
|
|
||||||
if (BK4819_GetCTCType() == 1)
|
if (BK4819_GetCTCType() == 1)
|
||||||
Mode = END_OF_RX_MODE_TTE;
|
Mode = END_OF_RX_MODE_TTE;
|
||||||
|
|
||||||
@@ -356,32 +338,28 @@ static void HandleReceive(void)
|
|||||||
Mode == END_OF_RX_MODE_SKIP &&
|
Mode == END_OF_RX_MODE_SKIP &&
|
||||||
gNextTimeslice40ms &&
|
gNextTimeslice40ms &&
|
||||||
gEeprom.TAIL_TONE_ELIMINATION &&
|
gEeprom.TAIL_TONE_ELIMINATION &&
|
||||||
(gCurrentCodeType == CODE_TYPE_DIGITAL || gCurrentCodeType == CODE_TYPE_REVERSE_DIGITAL) &&
|
(gCurrentCodeType == CODE_TYPE_DIGITAL || gCurrentCodeType == CODE_TYPE_REVERSE_DIGITAL) &&
|
||||||
BK4819_GetCTCType() == 1)
|
BK4819_GetCTCType() == 1)
|
||||||
Mode = END_OF_RX_MODE_TTE;
|
Mode = END_OF_RX_MODE_TTE;
|
||||||
else
|
else
|
||||||
gNextTimeslice40ms = false;
|
gNextTimeslice40ms = false;
|
||||||
|
|
||||||
Skip:
|
Skip:
|
||||||
switch (Mode)
|
switch (Mode) {
|
||||||
{
|
|
||||||
case END_OF_RX_MODE_SKIP:
|
case END_OF_RX_MODE_SKIP:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case END_OF_RX_MODE_END:
|
case END_OF_RX_MODE_END:
|
||||||
RADIO_SetupRegisters(true);
|
RADIO_SetupRegisters(true);
|
||||||
|
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE))
|
if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE))
|
||||||
gNOAACountdown_10ms = 300; // 3 sec
|
gNOAACountdown_10ms = 300; // 3 sec
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gUpdateDisplay = true;
|
gUpdateDisplay = true;
|
||||||
|
|
||||||
if (gScanStateDir != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF) {
|
||||||
{
|
switch (gEeprom.SCAN_RESUME_MODE) {
|
||||||
switch (gEeprom.SCAN_RESUME_MODE)
|
|
||||||
{
|
|
||||||
case SCAN_RESUME_TO:
|
case SCAN_RESUME_TO:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -399,12 +377,11 @@ Skip:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case END_OF_RX_MODE_TTE:
|
case END_OF_RX_MODE_TTE:
|
||||||
if (gEeprom.TAIL_TONE_ELIMINATION)
|
if (gEeprom.TAIL_TONE_ELIMINATION) {
|
||||||
{
|
|
||||||
AUDIO_AudioPathOff();
|
AUDIO_AudioPathOff();
|
||||||
|
|
||||||
gTailNoteEliminationCountdown_10ms = 20;
|
gTailToneEliminationCountdown_10ms = 20;
|
||||||
gFlagTailNoteEliminationComplete = false;
|
gFlagTailToneEliminationComplete = false;
|
||||||
gEndOfRxDetectedMaybe = true;
|
gEndOfRxDetectedMaybe = true;
|
||||||
gEnableSpeaker = false;
|
gEnableSpeaker = false;
|
||||||
}
|
}
|
||||||
@@ -1196,7 +1173,8 @@ void APP_TimeSlice10ms(void)
|
|||||||
if (gAlarmState == ALARM_STATE_TXALARM) {
|
if (gAlarmState == ALARM_STATE_TXALARM) {
|
||||||
gAlarmState = ALARM_STATE_SITE_ALARM;
|
gAlarmState = ALARM_STATE_SITE_ALARM;
|
||||||
|
|
||||||
RADIO_EnableCxCSS();
|
if(gEeprom.TAIL_TONE_ELIMINATION)
|
||||||
|
RADIO_SendCssTail();
|
||||||
BK4819_SetupPowerAmplifier(0, 0);
|
BK4819_SetupPowerAmplifier(0, 0);
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_PA_ENABLE, false);
|
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_PA_ENABLE, false);
|
||||||
BK4819_Enable_AfDac_DiscMode_TxDsp();
|
BK4819_Enable_AfDac_DiscMode_TxDsp();
|
||||||
|
|||||||
@@ -80,11 +80,9 @@ void DTMF_clear_RX(void)
|
|||||||
|
|
||||||
void DTMF_SendEndOfTransmission(void)
|
void DTMF_SendEndOfTransmission(void)
|
||||||
{
|
{
|
||||||
if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO) {
|
if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO)
|
||||||
BK4819_PlaySingleTone(2475, 250, 28, gEeprom.DTMF_SIDE_TONE);
|
BK4819_PlaySingleTone(2475, 250, 28, gEeprom.DTMF_SIDE_TONE);
|
||||||
}
|
else if ((gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)
|
||||||
|
|
||||||
if ((gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)
|
|
||||||
#ifdef ENABLE_DTMF_CALLING
|
#ifdef ENABLE_DTMF_CALLING
|
||||||
&& gDTMF_CallState == DTMF_CALL_STATE_NONE
|
&& gDTMF_CallState == DTMF_CALL_STATE_NONE
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1404,7 +1404,12 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
|||||||
if (UI_MENU_GetCurrentMenuId() != MENU_SCR)
|
if (UI_MENU_GetCurrentMenuId() != MENU_SCR)
|
||||||
gAnotherVoiceID = MenuList[gMenuCursor].voice_id;
|
gAnotherVoiceID = MenuList[gMenuCursor].voice_id;
|
||||||
#endif
|
#endif
|
||||||
if (UI_MENU_GetCurrentMenuId() == MENU_ANI_ID || UI_MENU_GetCurrentMenuId() == MENU_UPCODE|| UI_MENU_GetCurrentMenuId() == MENU_DWCODE)
|
if (UI_MENU_GetCurrentMenuId() == MENU_UPCODE
|
||||||
|
|| UI_MENU_GetCurrentMenuId() == MENU_DWCODE
|
||||||
|
#ifdef ENABLE_DTMF_CALLING
|
||||||
|
|| UI_MENU_GetCurrentMenuId() == MENU_ANI_ID
|
||||||
|
#endif
|
||||||
|
)
|
||||||
return;
|
return;
|
||||||
#if 1
|
#if 1
|
||||||
if (UI_MENU_GetCurrentMenuId() == MENU_DEL_CH || UI_MENU_GetCurrentMenuId() == MENU_MEM_NAME)
|
if (UI_MENU_GetCurrentMenuId() == MENU_DEL_CH || UI_MENU_GetCurrentMenuId() == MENU_MEM_NAME)
|
||||||
|
|||||||
@@ -475,7 +475,7 @@ static void UpdateRssiTriggerLevel(bool inc) {
|
|||||||
static void UpdateDBMax(bool inc) {
|
static void UpdateDBMax(bool inc) {
|
||||||
if (inc && settings.dbMax < 10) {
|
if (inc && settings.dbMax < 10) {
|
||||||
settings.dbMax += 1;
|
settings.dbMax += 1;
|
||||||
} else if (!inc && settings.dbMax > settings.dbMin) {
|
} else if (!inc && settings.dbMax > 12+settings.dbMin) {
|
||||||
settings.dbMax -= 1;
|
settings.dbMax -= 1;
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1395,18 +1395,16 @@ void BK4819_GenTail(uint8_t Tail)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BK4819_EnableCDCSS(void)
|
void BK4819_PlayCDCSSTail(void)
|
||||||
{
|
{
|
||||||
BK4819_GenTail(0); // CTC134
|
BK4819_GenTail(0); // CTC134
|
||||||
BK4819_WriteRegister(BK4819_REG_51, 0x804A);
|
BK4819_WriteRegister(BK4819_REG_51, 0x804A); // 1 0 0 0 0 0 0 0 0 1001010
|
||||||
}
|
}
|
||||||
|
|
||||||
void BK4819_EnableCTCSS(void)
|
void BK4819_PlayCTCSSTail(void)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
#ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||||
//BK4819_GenTail(1); // 120° phase shift
|
|
||||||
BK4819_GenTail(2); // 180° phase shift
|
BK4819_GenTail(2); // 180° phase shift
|
||||||
//BK4819_GenTail(3); // 240° phase shift
|
|
||||||
#else
|
#else
|
||||||
BK4819_GenTail(4); // 55Hz tone freq
|
BK4819_GenTail(4); // 55Hz tone freq
|
||||||
#endif
|
#endif
|
||||||
@@ -1448,7 +1446,7 @@ void BK4819_EnableCTCSS(void)
|
|||||||
// 0 = min
|
// 0 = min
|
||||||
// 127 = max
|
// 127 = max
|
||||||
|
|
||||||
BK4819_WriteRegister(BK4819_REG_51, 0x904A); // 1 0 0 1 0 0 0 0 0 1001010
|
BK4819_WriteRegister(BK4819_REG_51, 0x904A); // 1 0 0 1 0 0 0 0 0 1001010
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t BK4819_GetRSSI(void)
|
uint16_t BK4819_GetRSSI(void)
|
||||||
|
|||||||
@@ -132,8 +132,8 @@ void BK4819_PlayDTMFString(const char *pString, bool bDelayFirst, uint16_t F
|
|||||||
void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency);
|
void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency);
|
||||||
|
|
||||||
void BK4819_GenTail(uint8_t Tail);
|
void BK4819_GenTail(uint8_t Tail);
|
||||||
void BK4819_EnableCDCSS(void);
|
void BK4819_PlayCDCSSTail(void);
|
||||||
void BK4819_EnableCTCSS(void);
|
void BK4819_PlayCTCSSTail(void);
|
||||||
|
|
||||||
uint16_t BK4819_GetRSSI(void);
|
uint16_t BK4819_GetRSSI(void);
|
||||||
int8_t BK4819_GetRxGain_dB(void);
|
int8_t BK4819_GetRxGain_dB(void);
|
||||||
|
|||||||
@@ -57,8 +57,8 @@ void FUNCTION_Init(void)
|
|||||||
|
|
||||||
g_SquelchLost = false;
|
g_SquelchLost = false;
|
||||||
|
|
||||||
gFlagTailNoteEliminationComplete = false;
|
gFlagTailToneEliminationComplete = false;
|
||||||
gTailNoteEliminationCountdown_10ms = 0;
|
gTailToneEliminationCountdown_10ms = 0;
|
||||||
gFoundCTCSS = false;
|
gFoundCTCSS = false;
|
||||||
gFoundCDCSS = false;
|
gFoundCDCSS = false;
|
||||||
gFoundCTCSSCountdown_10ms = 0;
|
gFoundCTCSSCountdown_10ms = 0;
|
||||||
|
|||||||
4
misc.c
4
misc.c
@@ -132,7 +132,7 @@ volatile bool gNextTimeslice_500ms;
|
|||||||
volatile uint16_t gTxTimerCountdown_500ms;
|
volatile uint16_t gTxTimerCountdown_500ms;
|
||||||
volatile bool gTxTimeoutReached;
|
volatile bool gTxTimeoutReached;
|
||||||
|
|
||||||
volatile uint16_t gTailNoteEliminationCountdown_10ms;
|
volatile uint16_t gTailToneEliminationCountdown_10ms;
|
||||||
|
|
||||||
volatile uint8_t gVFOStateResumeCountdown_500ms;
|
volatile uint8_t gVFOStateResumeCountdown_500ms;
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ volatile bool gNextTimeslice40ms;
|
|||||||
volatile uint16_t gNOAACountdown_10ms = 0;
|
volatile uint16_t gNOAACountdown_10ms = 0;
|
||||||
volatile bool gScheduleNOAA = true;
|
volatile bool gScheduleNOAA = true;
|
||||||
#endif
|
#endif
|
||||||
volatile bool gFlagTailNoteEliminationComplete;
|
volatile bool gFlagTailToneEliminationComplete;
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
volatile bool gScheduleFM;
|
volatile bool gScheduleFM;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
4
misc.h
4
misc.h
@@ -205,7 +205,7 @@ extern volatile bool gNextTimeslice_500ms;
|
|||||||
extern volatile uint16_t gTxTimerCountdown_500ms;
|
extern volatile uint16_t gTxTimerCountdown_500ms;
|
||||||
extern volatile bool gTxTimeoutReached;
|
extern volatile bool gTxTimeoutReached;
|
||||||
|
|
||||||
extern volatile uint16_t gTailNoteEliminationCountdown_10ms;
|
extern volatile uint16_t gTailToneEliminationCountdown_10ms;
|
||||||
|
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
extern volatile uint16_t gNOAA_Countdown_10ms;
|
extern volatile uint16_t gNOAA_Countdown_10ms;
|
||||||
@@ -315,7 +315,7 @@ extern volatile bool gNextTimeslice40ms;
|
|||||||
extern volatile uint16_t gNOAACountdown_10ms;
|
extern volatile uint16_t gNOAACountdown_10ms;
|
||||||
extern volatile bool gScheduleNOAA;
|
extern volatile bool gScheduleNOAA;
|
||||||
#endif
|
#endif
|
||||||
extern volatile bool gFlagTailNoteEliminationComplete;
|
extern volatile bool gFlagTailToneEliminationComplete;
|
||||||
extern volatile uint8_t gVFOStateResumeCountdown_500ms;
|
extern volatile uint8_t gVFOStateResumeCountdown_500ms;
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
extern volatile bool gScheduleFM;
|
extern volatile bool gScheduleFM;
|
||||||
|
|||||||
21
radio.c
21
radio.c
@@ -500,11 +500,6 @@ void RADIO_ApplyOffset(VFO_Info_t *pInfo)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Frequency < frequencyBandTable[0].lower)
|
|
||||||
Frequency = frequencyBandTable[0].lower;
|
|
||||||
else if (Frequency > frequencyBandTable[BAND_N_ELEM - 1].upper)
|
|
||||||
Frequency = frequencyBandTable[BAND_N_ELEM - 1].upper;
|
|
||||||
|
|
||||||
pInfo->freq_config_TX.Frequency = Frequency;
|
pInfo->freq_config_TX.Frequency = Frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -988,9 +983,9 @@ void RADIO_PrepareTX(void)
|
|||||||
|
|
||||||
gTxTimerCountdown_500ms = 0; // no timeout
|
gTxTimerCountdown_500ms = 0; // no timeout
|
||||||
|
|
||||||
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
|
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
|
||||||
if (gAlarmState == ALARM_STATE_OFF)
|
if (gAlarmState == ALARM_STATE_OFF)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if (gEeprom.TX_TIMEOUT_TIMER == 0)
|
if (gEeprom.TX_TIMEOUT_TIMER == 0)
|
||||||
gTxTimerCountdown_500ms = 60; // 30 sec
|
gTxTimerCountdown_500ms = 60; // 30 sec
|
||||||
@@ -1009,15 +1004,15 @@ void RADIO_PrepareTX(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void RADIO_EnableCxCSS(void)
|
void RADIO_SendCssTail(void)
|
||||||
{
|
{
|
||||||
switch (gCurrentVfo->pTX->CodeType) {
|
switch (gCurrentVfo->pTX->CodeType) {
|
||||||
case CODE_TYPE_DIGITAL:
|
case CODE_TYPE_DIGITAL:
|
||||||
case CODE_TYPE_REVERSE_DIGITAL:
|
case CODE_TYPE_REVERSE_DIGITAL:
|
||||||
BK4819_EnableCDCSS();
|
BK4819_PlayCDCSSTail();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
BK4819_EnableCTCSS();
|
BK4819_PlayCTCSSTail();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1030,7 +1025,8 @@ void RADIO_SendEndOfTransmission(void)
|
|||||||
DTMF_SendEndOfTransmission();
|
DTMF_SendEndOfTransmission();
|
||||||
|
|
||||||
// send the CTCSS/DCS tail tone - allows the receivers to mute the usual FM squelch tail/crash
|
// send the CTCSS/DCS tail tone - allows the receivers to mute the usual FM squelch tail/crash
|
||||||
RADIO_EnableCxCSS();
|
if(gEeprom.TAIL_TONE_ELIMINATION)
|
||||||
|
RADIO_SendCssTail();
|
||||||
RADIO_SetupRegisters(false);
|
RADIO_SetupRegisters(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1040,6 +1036,7 @@ void RADIO_PrepareCssTX(void)
|
|||||||
|
|
||||||
SYSTEM_DelayMs(200);
|
SYSTEM_DelayMs(200);
|
||||||
|
|
||||||
RADIO_EnableCxCSS();
|
if(gEeprom.TAIL_TONE_ELIMINATION)
|
||||||
|
RADIO_SendCssTail();
|
||||||
RADIO_SetupRegisters(true);
|
RADIO_SetupRegisters(true);
|
||||||
}
|
}
|
||||||
|
|||||||
2
radio.h
2
radio.h
@@ -164,7 +164,7 @@ void RADIO_SetupAGC(bool listeningAM, bool disable);
|
|||||||
void RADIO_SetModulation(ModulationMode_t modulation);
|
void RADIO_SetModulation(ModulationMode_t modulation);
|
||||||
void RADIO_SetVfoState(VfoState_t State);
|
void RADIO_SetVfoState(VfoState_t State);
|
||||||
void RADIO_PrepareTX(void);
|
void RADIO_PrepareTX(void);
|
||||||
void RADIO_EnableCxCSS(void);
|
void RADIO_SendCssTail(void);
|
||||||
void RADIO_PrepareCssTX(void);
|
void RADIO_PrepareCssTX(void);
|
||||||
void RADIO_SendEndOfTransmission(void);
|
void RADIO_SendEndOfTransmission(void);
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ void SystickHandler(void)
|
|||||||
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
||||||
DECREMENT_AND_TRIGGER(gScanPauseDelayIn_10ms, gScheduleScanListen);
|
DECREMENT_AND_TRIGGER(gScanPauseDelayIn_10ms, gScheduleScanListen);
|
||||||
|
|
||||||
DECREMENT_AND_TRIGGER(gTailNoteEliminationCountdown_10ms, gFlagTailNoteEliminationComplete);
|
DECREMENT_AND_TRIGGER(gTailToneEliminationCountdown_10ms, gFlagTailToneEliminationComplete);
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
DECREMENT_AND_TRIGGER(gCountdownToPlayNextVoice_10ms, gFlagPlayQueuedVoice);
|
DECREMENT_AND_TRIGGER(gCountdownToPlayNextVoice_10ms, gFlagPlayQueuedVoice);
|
||||||
|
|||||||
@@ -160,8 +160,8 @@ void SETTINGS_InitEEPROM(void)
|
|||||||
#ifdef ENABLE_DTMF_CALLING
|
#ifdef ENABLE_DTMF_CALLING
|
||||||
gEeprom.DTMF_SEPARATE_CODE = DTMF_ValidateCodes((char *)(Data + 1), 1) ? Data[1] : '*';
|
gEeprom.DTMF_SEPARATE_CODE = DTMF_ValidateCodes((char *)(Data + 1), 1) ? Data[1] : '*';
|
||||||
gEeprom.DTMF_GROUP_CALL_CODE = DTMF_ValidateCodes((char *)(Data + 2), 1) ? Data[2] : '#';
|
gEeprom.DTMF_GROUP_CALL_CODE = DTMF_ValidateCodes((char *)(Data + 2), 1) ? Data[2] : '#';
|
||||||
gEeprom.DTMF_DECODE_RESPONSE = (Data[3] < 4) ? Data[3] : 0;
|
gEeprom.DTMF_DECODE_RESPONSE = (Data[3] < 4) ? Data[3] : 0;
|
||||||
gEeprom.DTMF_auto_reset_time = (Data[4] < 61) ? Data[4] : (Data[4] >= 5) ? Data[4] : 10;
|
gEeprom.DTMF_auto_reset_time = (Data[4] < 61 && Data[4] >= 5) ? Data[4] : 10;
|
||||||
#endif
|
#endif
|
||||||
gEeprom.DTMF_PRELOAD_TIME = (Data[5] < 101) ? Data[5] * 10 : 300;
|
gEeprom.DTMF_PRELOAD_TIME = (Data[5] < 101) ? Data[5] * 10 : 300;
|
||||||
gEeprom.DTMF_FIRST_CODE_PERSIST_TIME = (Data[6] < 101) ? Data[6] * 10 : 100;
|
gEeprom.DTMF_FIRST_CODE_PERSIST_TIME = (Data[6] < 101) ? Data[6] * 10 : 100;
|
||||||
|
|||||||
Reference in New Issue
Block a user