Fungsi cloud dihentikan Parse.com dalam lingkaran saat menelepon dari Arduino-yun

11

Saya telah membuat fungsi cloud menggunakan Parse.com Javascript SDK dan saya memanggil fungsi-fungsi itu dari Arduino. Berikut ini adalah kode untuk hellofungsi:

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

Saya memanggil fungsi ini dari sisi Arduino menggunakan kode berikut:

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

Masalahnya adalah saya mendapat respons 8 kali saja. Setelah itu seluruh aliran program diblokir. Apa masalahnya?

Abhijeet Kulkarni
sumber
Tidak yakin apa masalah Anda, tetapi saya akan mencoba "penundaan" dalam lingkaran setelah panggilan ke demoBasic. Saya akan mulai dengan 100 ms. Mungkin kode Anda mengeksekusi "terlalu cepat" maka fungsi js diblokir.
fabrosell
@ Falconell saya mencoba melakukan itu juga tetapi masih ada masalah. Bisakah Anda menyarankan hal othing yang mungkin memecahkan masalah.
Abhijeet Kulkarni
Jika Anda memiliki kode kerja yang terus-menerus dapat mendorong data ke Parse.com, dapatkah Anda membagikannya?
Abhijeet Kulkarni
Maaf, saya tidak punya. Either way, itu perilaku yang sangat aneh jika fungsi dipanggil hanya 8 kali dan tidak lebih ...
fabrosell
Pada titik mana dalam kode program mengalir "diblokir"?
Kingsley

Jawaban:

1

Coba ini, saya benar-benar benci String, mungkin itu 8 kali berkaitan dengan masalah memori yang disebabkan olehnya.

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