]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/commitdiff
Improve baudrate testing
authorMichal Horn <hornmich@fel.cvut.cz>
Tue, 11 Aug 2015 12:02:41 +0000 (14:02 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 28 Aug 2015 14:17:01 +0000 (16:17 +0200)
The huge switch has been replaced by more effective and nicer array
and for cycle.

rpp/src/rpp/sci.c

index e2c026dac6bfa227e9845e09fb94ae82c60e51ca..08893808be2c75914ccb5205fa2ae6003a4b8b5b 100644 (file)
@@ -45,55 +45,18 @@ int8_t rpp_sci_init()
 boolean_t rpp_sci_setup(uint32_t baud)
 {
        boolean_t known = FALSE;
+       // FIXME This is a standard list of baud rates. This should include only
+       // tested baud rates.
+       static const uint32_t baud_list[] = {110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200};
 
        if (baud == 0)
                baud = 9600;
-
-       // FIXME This is a standard list of baud rates. This should include only
-       // tested baud rates.
-       switch (baud) {
-       case 110:
-               known = TRUE;
-               break;
-       case 300:
-               known = TRUE;
-               break;
-       case 600:
-               known = TRUE;
-               break;
-       case 1200:
-               known = TRUE;
-               break;
-       case 2400:
-               known = TRUE;
-               break;
-       case 4800:
-               known = TRUE;
-               break;
-       case 9600:
-               known = TRUE;
-               break;
-       case 14400:
-               known = TRUE;
-               break;
-       case 19200:
-               known = TRUE;
-               break;
-       case 28800:
-               known = TRUE;
-               break;
-       case 38400:
-               known = TRUE;
-               break;
-       case 56000:
-               known = TRUE;
-               break;
-       case 57600:
-               known = TRUE;
-               break;
-       case 115200:
-               known = TRUE;
-               break;
+       uint32_t i;
+       for (i = 0; i < ARRAY_SIZE(baud_list); i++) {
+               if (baud == baud_list[i]) {
+                       known = TRUE;
+                       break;
+               }
        }
 
 #ifndef FREERTOS_POSIX