|
@@ -25,6 +25,25 @@ int i2c_system_port = I2C_SYSTEM_PORT;
|
|
|
|
|
|
static const char *TAG = "services";
|
|
|
|
|
|
+/****************************************************************************************
|
|
|
+ *
|
|
|
+ */
|
|
|
+void set_power_gpio(int gpio, char *value) {
|
|
|
+ bool parsed = true;
|
|
|
+
|
|
|
+ if (!strcasecmp(value, "vcc") ) {
|
|
|
+ gpio_pad_select_gpio(gpio);
|
|
|
+ gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
|
|
+ gpio_set_level(gpio, 1);
|
|
|
+ } else if (!strcasecmp(value, "gnd")) {
|
|
|
+ gpio_pad_select_gpio(gpio);
|
|
|
+ gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
|
|
+ gpio_set_level(gpio, 0);
|
|
|
+ } else parsed = false ;
|
|
|
+
|
|
|
+ if (parsed) ESP_LOGI(TAG, "set GPIO %u to %s", gpio, value);
|
|
|
+ }
|
|
|
+
|
|
|
/****************************************************************************************
|
|
|
*
|
|
|
*/
|
|
@@ -40,22 +59,8 @@ void services_init(void) {
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
- // set fixed gpio if any
|
|
|
- if ((nvs_item = config_alloc_get(NVS_TYPE_STR, "set_GPIO")) != NULL) {
|
|
|
- char *p = nvs_item, type[4];
|
|
|
- int gpio;
|
|
|
- do {
|
|
|
- if (sscanf(p, "%d=%3[^,]", &gpio, type) > 0) {
|
|
|
- gpio_pad_select_gpio(gpio);
|
|
|
- gpio_set_direction(gpio, GPIO_MODE_OUTPUT);
|
|
|
- if (!strcasecmp(type, "vcc")) gpio_set_level(gpio, 1);
|
|
|
- else if (!strcasecmp(type, "gnd")) gpio_set_level(gpio, 0);
|
|
|
- ESP_LOGI(TAG, "set GPIO %u to %s", gpio, type);
|
|
|
- }
|
|
|
- p = strchr(p, ',');
|
|
|
- } while (p++);
|
|
|
- free(nvs_item);
|
|
|
- }
|
|
|
+ // set potential power GPIO
|
|
|
+ parse_set_GPIO(set_power_gpio);
|
|
|
|
|
|
const i2c_config_t * i2c_config = config_i2c_get(&i2c_system_port);
|
|
|
|