#ifndef DOCGEN
#include "rpp/rpp.h"
-#include "hal/hal.h"
+#include "drv/digital_io_def.h"
#include "cmdproc_utils.h"
/**
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;
{
char *p;
long val;
- uint32_t *desc;
char spareParams;
char pinName[32];
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];
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;
}
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];
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;
}