]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blobdiff - rpp-test-sw/commands/cmd_pin.c
Update library
[pes-rpp/rpp-test-sw.git] / rpp-test-sw / commands / cmd_pin.c
index a56cc504e606f595b21922c68c423d9b04bfec25..71ee438206c6fe2ae75754ec51ff1024b7120895 100644 (file)
@@ -27,7 +27,7 @@
 #ifndef DOCGEN
 
 #include "rpp/rpp.h"
-#include "hal/hal.h"
+#include "drv/digital_io_def.h"
 #include "cmdproc_utils.h"
 
 /**
@@ -43,9 +43,12 @@ int cmd_do_pin_list(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
        uint32_t i;
 
        rpp_sci_printf("List of all defined pins. Those names can be used by pinval command.\r\n");
-       for (i = 0; i < MAX_PIN_CNT; i++) {
-               if (pin_map[i].pin_name == PIN_NAME_UNUSED) continue;
-               rpp_sci_printf(pin_map[i].pin_name);
+       uint32_t pin_cnt = rpp_gio_get_pin_cnt();
+       const char* pin_names[128];
+       rpp_gio_get_pin_names(pin_names, pin_cnt);
+       for (i = 0; i < pin_cnt; i++) {
+               if (strcmp(pin_names[i], DIO_PIN_NAME_UNUSED) == 0) continue;
+               rpp_sci_printf(pin_names[i]);
                rpp_sci_printf("\r\n");
        }
        return 1;
@@ -63,7 +66,6 @@ int cmd_do_pin_val(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
 {
        char *p;
        long val;
-       uint32_t *desc;
        char spareParams;
        char pinName[32];
 
@@ -71,7 +73,6 @@ int cmd_do_pin_val(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
        if (sscanf(p, "%31s ", pinName) != 1)
                return -CMDERR_BADPAR;
 
-       if ((desc = hal_gpio_pin_get_dsc(pinName, -1)) == NULL) return -CMDERR_BADREG;
 
        if (param[2] != NULL) {     // More parameters = set values
                p = param[2];
@@ -79,12 +80,16 @@ int cmd_do_pin_val(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
                        return -CMDERR_BADPAR;
                if (val != 0 && val != 1)
                        return -CMDERR_BADPAR;
-               hal_gpio_pin_set_value(*desc, (uint32_t)val);
+               if (rpp_gio_set_val(pinName, val) == FAILURE) {
+                       return -CMDERR_BADPAR;;
+               }
                return cmd_opchar_replong(cmd_io, param, val, 0, 0);
-               ;
        }
        else {  // No more parameters = get values
-               uint32_t pin_value = hal_gpio_pin_get_value(*desc);
+               int32_t pin_value = rpp_gio_get_val(pinName);
+               if (pin_value == FAILURE) {
+                       return -CMDERR_BADPAR;
+               }
                rpp_sci_printf("pinval%s=%d\n", pinName, pin_value);
                return 0;
        }
@@ -101,8 +106,7 @@ int cmd_do_pin_val(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
 int cmd_do_pin_dir(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
 {
        char *p;
-       long val;
-       uint32_t *desc;
+       uint32_t val;
        char spareParams;
        char pinName[32];
 
@@ -110,28 +114,31 @@ int cmd_do_pin_dir(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
        if (sscanf(p, "%31s ", pinName) != 1)
                return -CMDERR_BADPAR;
 
-       if ((desc = hal_gpio_pin_get_dsc(pinName, -1)) == NULL) return -CMDERR_BADREG;
-
        if (param[2] != NULL) {     // More parameters = set values
                p = param[2];
-               if (sscanf(p, "%d %1s", &val, &spareParams) != 1)
+               if (sscanf(p, "%u %1s", &val, &spareParams) != 1)
                        return -CMDERR_BADPAR;
-               if (val == 1) {
-                       *desc |= PORT_CONF_SET_DIR;
-                       *desc |= PORT_CONF_DIR_OUT;
+               if (val == 0) {
+                       if (rpp_gio_set_input(pinName) == FAILURE) {
+                               return -CMDERR_BADPAR;
+                       }
                }
-               else if (val == 0) {
-                       *desc &= (~PORT_CONF_DIR_OUT);
-                       *desc |= PORT_CONF_SET_DIR;
+               else if (val == 1) {
+                       if (rpp_gio_set_output(pinName, 0) == FAILURE) {
+                               return -CMDERR_BADPAR;
+                       }
                }
-               else
+               else {
                        return -CMDERR_BADPAR;
+               }
 
-               hal_gpio_pin_conf(*desc);
                return cmd_opchar_replong(cmd_io, param, val, 0, 0);
        }
        else {  // No more parameters = get values
-               uint32_t pin_dir = hal_gpio_pin_get_direction(*desc);
+               int32_t pin_dir = rpp_gio_is_dir_output(pinName);
+               if (pin_dir == FAILURE) {
+                       return -CMDERR_BADPAR;
+               }
                rpp_sci_printf("pindir%s=%d\n", pinName, pin_dir);
                return 0;
        }