Enviar más de 1 variable, en una sola api, usando la librería aRest

Buenas estoy probando con la librería aRest y me gustaría enviar 2 valores a la vez en una sola api. Actualmente uso una función como esta:

int values(String com) {
  
  int str_len = com.length() + 1;
  com.toCharArray(value1, str_len);;
  return 201;
}

Y enviando variables de 1 en 1 funciona correctamente. La cosa es que quiero enviar 2 o más variables en una sola función api.

Algo como esto:

int values(String com, String com2) {
  
  int str_len = com.length() + 1;
  int str_len2 = com2.length() + 1;
  com.toCharArray(value1, str_len);
  com2.toCharArray(value2, str_len2);
  return 201;
}

Sería más cómodo...

Si lo hago así me da el siguiente error:

invalid conversion from 'int ()(String, String)' to 'int ()(String)' [-fpermissive]

y lo marca en la línea donde tengo definida la función api.

  rest.function("values",values);

¿tengo que modificar algo en la librería? ¿me falta algo por definir?

Espero que alguien me pueda echar un cable. Saludos.

Y la librería aRest donde esta indicada? Algun línk no ayudaría para que alguien te responda?

Ahí está en enlace a la librería. Siento no haberlo puesto antes :cold_sweat: :

https://github.com/marcoschwartz/aREST

Estoy mirando por la librería pero no localizo donde editar para que me deje enviar 2 comandos a la vez en una única api.

Gracias por la respuesta. Espero que alguien haya necesitado hacer esto antes y comente a todos los usuarios como lo resolvió. Si se puede hacer usando otra librería para api, también puedo probar.

Un saludo.

Dime si este ejemplo no aplica lo que necesitas… No termino de entender bien aun la librería.

/* 
  This a simple example of the aREST Library for Arduino (Uno/Mega/Due/Teensy)
  using the Serial port. See the README file for more details.
 
  Written in 2014 by Marco Schwartz under a GPL license. 
*/

// Libraries
#include <SPI.h>
#include <aREST.h>
#include <avr/wdt.h>

// Create aREST instance
aREST rest = aREST();

// Variables to be exposed to the API
int temperature;
int humidity;

void setup(void)
{  
  // Start Serial
  Serial.begin(115200);
  
  // Init variables and expose them to REST API
  temperature = 24;
  humidity = 40;
  rest.variable("temperature",&temperature);
  rest.variable("humidity",&humidity);

  // Function to be exposed
  rest.function("led",ledControl);
  
  // Give name and ID to device
  rest.set_id("2");
  rest.set_name("serial");

  // Start watchdog
  wdt_enable(WDTO_4S);
}

void loop() {  
  
  // Handle REST calls
  rest.handle(Serial);  
  wdt_reset();

}

// Custom function accessible by the API
int ledControl(String command) {
  
  // Get state from command
  int state = command.toInt();
  
  digitalWrite(6,state);
  return 1;
}

Ese código es uno de los ejemplos que trae la propia librería. ya lo vi y solo envía un valor en una función. Ahí si se envía la api ip_local/led?params=0 --- el led se apagará y si se envía ip_local/led?params=1 --- se encenderá.

Te explico lo que quiero. Imagina que tengo 2 leds en vez de uno y quiero que en la misma orden se enciendan o apaguen ambos, pero no en el mismo estado o permutando si no que quiero elegir en cada orden como estará cada uno por independiente. La idea es que se pudiese enviar una api con una forma parecida a esta; ip_local/led?params=0&1 --- donde como ves meto un 0 y un 1 indicando que el primer led lo quiero apagado y el segundo encendido. Las dos órdenes irían en una única api.

No se si esa estructura es correcta o no... ya que si lo intento me dan errores del tipo al comentado al principio.

Espero haber sido más claro en la explicación. Gracias por la ayuda.

Si. ahora te comprendo. Dejame ver y estudiar mejor la API para responderte. Lo que estas usando es similar a Blynk.cc te invito a que lo veas. Lo encuentro muy parecido.

Gracias por la recomendación, he ojeado lo de Blink.cc y es una app en si. a mi me gustaría usar esta librería, si es posible, para poder programar ordenes desde web o desde alguna app simple que pueda crearme... no limitarme a usar una app comercial, por si en un futuro necesito algo específico no encontrarme la limitación ahí.

Un saludo.