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을 호출 한 후 루프에서 "지연"을 시도합니다. 100ms부터 시작하겠습니다. 어쩌면 코드가 "너무 빠르다"고 js 함수가 차단되었을 수 있습니다.
fabrosell

@fabrosell 나는 또한 그것을 시도했지만 여전히 문제가 있었다. 문제를 해결할 수있는 모든 것을 제안 할 수 있습니까?
Abhijeet Kulkarni

Parse.com에 데이터를 지속적으로 푸시 할 수있는 작동 코드가 있다면 공유 할 수 있습니까?
Abhijeet Kulkarni

죄송합니다. 없습니다. 어느 쪽이든, 함수가 단지 8 번 호출되고 더 이상 호출되지 않으면 매우 이상한 행동입니다.
fabrosell

코드의 어느 시점에서 프로그램 흐름이 "차단"됩니까?
Kingsley

답변:


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());
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.