Arduino-yun'dan arama yaparken döngü işlevi Parse.com'u durduruyor


11

Parse.com Javascript SDK kullanarak bir bulut işlevi oluşturduk ve bu işlevleri Arduino'dan çağırıyorum. helloİşlev kodu aşağıdadır:

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

Bu kodu Arduino tarafından aşağıdaki kodu kullanarak çağırıyorum:

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());
}

Sorun şu ki, sadece 8 kez yanıt alıyorum. Bundan sonra tüm program akışı engellenir. Sorun nedir?


Sorunun ne olduğundan emin değilim, ama demoBasic çağrısından sonra döngüde bir "gecikme" denemek istiyorum. 100 ms ile başlayacağım. Belki kod "çok hızlı" yürütmek sonra js işlevi engellenir.
fabrosell

@fabrosell bunu da denedim ama yine de sorun vardı. sorunu çözebilecek herhangi bir othing şey önerebilir misiniz.
Abhijeet Kulkarni

Verileri Parse.com'a sürekli olarak aktarabilecek herhangi bir çalışma kodunuz varsa, bunu paylaşabilir misiniz?
Abhijeet Kulkarni

Üzgünüm, hiç yok. Her iki durumda da, işlev sadece 8 kez ve daha fazla çağrılmazsa çok garip bir davranış ...
fabrosell

Kodun hangi noktasında program akışı "engellenir"?
Kingsley

Yanıtlar:


1

Bunu denemek, gerçekten String'den nefret ediyorum, belki de 8 kat şey bunun neden olduğu hafıza sorunları ile ilgili.

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());
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.