OSDN Git Service

[SHELL] Improve STAT display.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 14 Nov 2013 14:58:13 +0000 (23:58 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 14 Nov 2013 14:58:13 +0000 (23:58 +0900)
[SHELL] Imprement cmd: FM/AM.

nbproject/Makefile-genesis.properties
shell_strutl.c
term_shell.c

index d37cd50..d1b58c2 100644 (file)
@@ -1,5 +1,5 @@
 #
-#Mon Nov 11 12:24:15 JST 2013
+#Tue Nov 12 16:28:38 JST 2013
 default.languagetoolchain.dir=/opt/microchip/xc8/v1.21/bin
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=0b040d5e5949b59f004c7912367437ce
 default.languagetoolchain.version=1.21
index c4e5e85..f300aa9 100644 (file)
@@ -400,7 +400,8 @@ long term_getuint(char *pool)
 void term_printnum(char *pool, unsigned int num)
 {
     char p[5];
-    unsigned char i, j, ii;
+    int j;
+    int i, ii;
 
     for(i = 0; i < 5; i++){
         p[i] = num % 10;
@@ -410,8 +411,9 @@ void term_printnum(char *pool, unsigned int num)
     do {
         if(p[i] != 0) break;
         i--;
-    } while(i != 0);
-    if(i == 0){
+    } while(i >= 0);
+   
+    if(i < 0){
         pool[0] = '0';
         pool[1] = '\0';
         return;
index 3da6414..b3a6392 100644 (file)
@@ -61,6 +61,7 @@ static void shell_printnum(unsigned int v)
     term_printnum(s, v);
     uart_term_putstr(s);
 }
+
 /*
  * Set Frequency: Arg1 = Freq.
  */
@@ -71,7 +72,7 @@ static void term_freq(char *p)
 
     l = term_getuint(p);
     uart_term_putstr("\nSet Freq:");
-    if((l < 0) || (l > 30000)) {
+    if((l < 100) || (l > 30000)) {
         uart_term_putstr("\nE:Illegal freq range.\n");
         return;
     }
@@ -98,24 +99,68 @@ static void term_freq(char *p)
  */
 static void term_printstatus(char *p)
 {
+    update_status();
     uart_term_putstr("\nStatus:\n");
     if(setup.fm == 0){
-        uart_term_putstr("AM \nBand = ");
+        uart_term_putstr("AM \nBAND = ");
         shell_printnum(setup.amband);
-        uart_term_putstr("\nFreq = ");
+        uart_term_putstr("\nFREQ = ");
         shell_printnum(setup.amfreq);
-        uart_term_putstr("\n");
+        uart_term_putstr("KHz");
+        uart_term_putstr("\nDIFF = ");
+        shell_printnum(diffstat);
     } else {
-        uart_term_putstr("FM \nBand = ");
+        uart_term_putstr("FM \nBAND = ");
         shell_printnum(setup.fmband);
-        uart_term_putstr("\nFreq = ");
-        shell_printnum(setup.fmfreq);
-        uart_term_putstr("\n");
+        uart_term_putstr("\nFREQ = ");
+        shell_printnum(setup.fmfreq / 100);
+        uart_term_putstr(".");
+        shell_printnum(setup.fmfreq % 100);
+        uart_term_putstr("MHz");
+        uart_term_putstr("\nDIFF = ");
+        shell_printnum(diffstat);
+        uart_term_putstr("\nSTEREO = ");
+        if(stereoflag == 0) {
+           uart_term_putstr("NO");
+       } else {
+           uart_term_putstr("YES");
+       }
     }
-
+    uart_term_putstr("\nSIGNAL-LEVEL = ");
+    shell_printnum(recv_signal);
+    uart_term_putstr("dB");
+   
+    uart_term_putstr("\nCNR-LEVEL = ");
+    shell_printnum(cnrlevel);
+    uart_term_putstr("dB");
+   
+    uart_term_putstr("\nBATT = ");
+    shell_printnum(battlevel / 100);
+    uart_term_putstr(".");
+    shell_printnum(battlevel % 100);
+    uart_term_putstr("V\n");
+   
     uart_term_putstr("\n");
 }
 
+static void term_fm(char *p)
+{
+    unsigned int freq;
+    setup.fm = 0xff;
+    setup.amfreq_bank[setup.amband] = setup.amfreq;
+    freq = setup.fmfreq_bank[setup.fmband];
+    akc6955_chg_fm(setup.fm, freq);
+}
+
+static void term_am(char *p)
+{
+    unsigned int freq;
+    setup.fm = 0x00;
+    setup.fmfreq_bank[setup.fmband] = setup.fmfreq;
+    freq = setup.amfreq_bank[setup.amband];
+    akc6955_chg_fm(setup.fm, freq);
+}
+
 
 /*
  * Poweroff.
@@ -142,6 +187,16 @@ static void term_poweron(char *p)
 {
 }
 
+
+static void term_band(char *p)
+{
+   unsigned char slen;
+   unsigned char n;
+   unsigned char band;
+   slen = shell_gettok(xarg1, p);
+}
+
+
 static unsigned char put_hexline(unsigned char *dat, unsigned long addr, unsigned char len)
 {
     unsigned char l;
@@ -473,7 +528,7 @@ static void cmd_help(char *p)
     int f;
 
     slen = shell_gettok(xarg1, p);
-    if(slen != 0) {
+    if(slen > 1) {
         for(i = 0; i < SHELL_TOPCMDS; i++){
             f = shell_strcmp(xarg1, cmdstr[i]);
             if(f > 0) {
@@ -555,12 +610,21 @@ char term_shell(unsigned int timeout)
             case 4:
                 save_to_term(pool);
                 break;
+            case 5:
+                term_fm(pool);
+                break;
+            case 6:
+                term_am(pool);
+                break;
             case 7:
                 term_poweroff(pool);
                 break;
             case 8:
                 term_poweron(pool);
                 break;
+            case 12: // BAND
+               term_band(pool);
+               break;
             case 15: // Exit
                 uart_term_putstr("\nBye... (^^)/~~\n");
                goto _l0;