La fonction cloud s'arrête Parse.com en boucle lors d'un appel depuis Arduino-yun


11

J'ai créé une fonction cloud à l'aide du SDK Javascript Parse.com et j'appelle ces fonctions depuis Arduino. Voici le code de la hellofonction:

Parse.Cloud.define("hello", function(request, response) {
                response.success("This is hello function");         
}); //hello function Block

J'appelle cette fonction du côté Arduino en utilisant le code suivant:

void setup() {
  Bridge.begin();
  Serial.begin(9600);

  while (!Serial);

  Parse.begin("***zE0uUjQkMa7nj5D5BALvzegzfyVNSG22BD***", "***Ssggp5JgMFmSHfloewW5oixlM5ibt9LBSE***");
  //commented my keys with * here only

  // In this example, we associate this device with a pre-generated installation
  Parse.getInstallationId();
  Parse.startPushService();
}


void loop() {
  Serial.println("Start loop");
  demoBasic("meeting", 0);
}

void demoBasic(String functionname, int light) {
  char fnname[11];
  functionname.toCharArray(fnname, 11);

  Serial.print("In ");
  Serial.print(functionname);
  Serial.println(" Function");


  ParseCloudFunction cloudFunction;
  cloudFunction.setFunctionName(fnname);
  cloudFunction.add("light_sensor", light);
  cloudFunction.add("value", "Arduino Hello");//parameters

  ParseResponse response = cloudFunction.send();
  Serial.println(response.getJSONBody());
}

Le problème est que je reçois une réponse 8 fois seulement. Après ce flux de programme entier est bloqué. Quel est le problème?


Je ne sais pas quel est votre problème, mais j'essaierais un "retard" en boucle après l'appel à demoBasic. Je commencerais avec 100 ms. Peut-être que votre code s'exécute "trop ​​vite", puis la fonction js est bloquée.
fabrosell

@fabrosell j'ai essayé de le faire aussi mais il y avait toujours un problème. Pouvez-vous suggérer quelque chose qui pourrait résoudre le problème.
Abhijeet Kulkarni

Si vous avez un code de travail capable de transmettre en continu des données à Parse.com, pouvez-vous le partager?
Abhijeet Kulkarni

Je suis désolé, je n'en ai pas. Quoi qu'il en soit, c'est un comportement très étrange si la fonction n'est appelée que 8 fois et pas plus ...
fabrosell

À quel moment du code le flux du programme "est-il bloqué"?
Kingsley

Réponses:


1

Essayez ceci, je déteste vraiment String, peut-être que cette chose 8 fois a à voir avec les problèmes de mémoire causés par elle.

void loop() {

  char functionToCall[8] = "meeting";
  Serial.println("Start loop");
  demoBasicCharArray(functionToCall, 0);
}


void demoBasicCharArray(char *functionname, int light) {

  Serial.print("In ");
  for (byte i=0;i<sizeof(functionname);i++){
    Serial.print(functionname[i]);
  }
  Serial.println(" Function");

  ParseCloudFunction cloudFunction;
  cloudFunction.setFunctionName(functionname);
  cloudFunction.add("light_sensor", light);
  cloudFunction.add("value", "Arduino Hello");//parameters

  ParseResponse response = cloudFunction.send();
  Serial.println(response.getJSONBody());
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.