From f1348429b3166cab8bb3c621ba9a8df972213687 Mon Sep 17 00:00:00 2001 From: trumandk Date: Thu, 13 Jun 2019 23:08:07 +0200 Subject: [PATCH] Added modulation2text and fec2text --- apps/modcod.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 150 insertions(+), 6 deletions(-) diff --git a/apps/modcod.c b/apps/modcod.c index d983aa6..4e5ab3b 100644 --- a/apps/modcod.c +++ b/apps/modcod.c @@ -12,6 +12,143 @@ #include +char* modulation2text(const enum fe_modulation mod) +{ + switch(mod) + { + case QPSK: + return "QPSK"; + case QAM_16: + return "16QAM"; + case QAM_32: + return "32QAM"; + case QAM_64: + return "64QAM"; + case QAM_128: + return "128QAM"; + case QAM_256: + return "256QAM"; + case QAM_AUTO: + return "QAM_AUTO"; + case VSB_8: + return "8VSB"; + case VSB_16: + return "16VSB"; + case PSK_8: + return "8PSK"; + case APSK_16: + return "16APSK"; + case APSK_32: + return "32APSK"; + case DQPSK: + return "DQPSK"; + case QAM_4_NR: + return "QAM_4_NR"; + case APSK_64: + return "64APSK"; + case APSK_128: + return "128APSK"; + case APSK_256: + return "256APSK"; + case APSK_8: + return "8APSK"; + default: + return "MODULATION_NONE"; + }; +} + +char* fec2text(const enum fe_code_rate fec) +{ + switch(fec) + { + case FEC_1_2: + return "1/2"; + case FEC_2_3: + return "2/3"; + case FEC_3_4: + return "3/4"; + case FEC_4_5: + return "4/5"; + case FEC_5_6: + return "5/6"; + case FEC_6_7: + return "6/7"; + case FEC_7_8: + return "7/8"; + case FEC_8_9: + return "8/9"; + case FEC_AUTO: + return "FEC_AUTO"; + case FEC_3_5: + return "3/5"; + case FEC_9_10: + return "9/10"; + case FEC_2_5: + return "2/5"; + case FEC_1_4: + return "1/4"; + case FEC_1_3: + return "1/3"; + case FEC_13_45: + return "13/45"; + case FEC_9_20: + return "9/20"; + case FEC_11_20: + return "11/20"; + case FEC_5_9_L: + return "5/9-L"; + case FEC_26_45_L: + return "26/45-L"; + case FEC_23_36: + return "23/36"; + case FEC_25_36: + return "25/36"; + case FEC_13_18: + return "13/18"; + case FEC_1_2_L: + return "1/2-L"; + case FEC_8_15_L: + return "8/15-L"; + case FEC_26_45: + return "26/45"; + case FEC_3_5_L: + return "3/5-L"; + case FEC_28_45: + return "28/45"; + case FEC_2_3_L: + return "2/3-L"; + case FEC_7_9: + return "7/9"; + case FEC_32_45_L: + return "32/45-L"; + case FEC_77_90: + return "77/90"; + case FEC_32_45: + return "32/45"; + case FEC_11_15: + return "11/15"; + case FEC_29_45_L: + return "29/45-L"; + case FEC_31_45_L: + return "31/45-L"; + case FEC_11_15_L: + return "11/15-L"; + case FEC_11_45: + return "11/45"; + case FEC_4_15: + return "4/15"; + case FEC_14_45: + return "14/45"; + case FEC_7_15: + return "7/15"; + case FEC_8_15: + return "8/15"; + default: + return "FEC_NONE"; + }; + +} + int main() { const enum fe_modulation modcod2modS2X[0x3D] = { @@ -42,20 +179,27 @@ int main() FEC_8_15,FEC_26_45,FEC_3_5,FEC_32_45,FEC_2_3,FEC_32_45, }; + + uint8_t modcod; modcod = 248; if(modcod2modS2X[((modcod & 0x7F) >> 1)] == APSK_32) - printf("modcod2modS2X OK\r\n"); + printf("modcod2modS2X OK APSK_32=%s \r\n", modulation2text(modcod2modS2X[((modcod & 0x7F) >> 1)] ) ); if(modcod2fecS2X[((modcod & 0x7F) >> 1)] == FEC_32_45) - printf("modcod2modS2X OK\r\n"); + printf("modcod2modS2X OK FEC_32_45=%s\r\n", fec2text(modcod2fecS2X[((modcod & 0x7F) >> 1)])); + modcod = 132; if(modcod2modS2X[((modcod & 0x7F) >> 1)] == QPSK) - printf("modcod2modS2X OK\r\n"); + printf("modcod2modS2X OK QPSK=%s \r\n", modulation2text(modcod2modS2X[((modcod & 0x7F) >> 1)] ) ); if(modcod2fecS2X[((modcod & 0x7F) >> 1)] == FEC_13_45) - printf("modcod2modS2X OK\r\n"); -//printf("test mod=%u value= %d APSK_32=%d \n",mod, modcod2modS2X[((mod & 0x7F) >> 1)], APSK_32); -//printf("test mod=%u value= %d FEC_32_45=%d \n",mod, modcod2fecS2X[((mod & 0x7F) >> 1)], FEC_32_45); + printf("modcod2modS2X OK FEC_13_45=%s\r\n", fec2text(modcod2fecS2X[((modcod & 0x7F) >> 1)])); + +modcod = 184; +if(modcod2modS2X[((modcod & 0x7F) >> 1)] == APSK_64) + printf("modcod2modS2X OK 64APSK=%s \r\n", modulation2text(modcod2modS2X[((modcod & 0x7F) >> 1)] ) ); +if(modcod2fecS2X[((modcod & 0x7F) >> 1)] == FEC_32_45_L) + printf("modcod2modS2X OK FEC_32_45_L=%s\r\n", fec2text(modcod2fecS2X[((modcod & 0x7F) >> 1)])); }