从Arduino-yun调用时,云函数在循环中停止Parse.com


11

我已经使用Parse.com Javascript SDK创建了一个云函数,并且正在从Arduino调用这些函数。以下是该hello函数的代码:

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

我正在使用以下代码从Arduino端调用此函数:

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

问题是我只得到8次回复。之后,整个程序流程将被阻塞。问题是什么?


不知道您的问题是什么,但是在调用demoBasic之后,我会尝试在循环中“延迟”。我将从100毫秒开始。也许您的代码“执行得太快”,然后js函数被阻塞。
fabrosell 2015年

@fabrosell我也尝试这样做,但是仍然有问题。您能提出任何其他可以解决问题的建议吗?
Abhijeet Kulkarni 2015年

如果您有任何可以连续将数据推送到Parse.com的工作代码,可以共享吗?
Abhijeet Kulkarni,2015年

对不起,我没有。无论哪种方式,如果函数仅被调用8次且不执行任何其他操作,这将是一个非常奇怪的行为
fabrosell 2015年

程序在代码的哪一点“被阻止”?
金斯利

Answers:


1

试一下,我真的很讨厌String,也许那8倍的事情与它引起的内存问题有关。

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());
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.