ฟังก์ชั่นคลาวด์หยุด Parse.com เป็นวงเมื่อโทรจาก Arduino-yun


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

@ 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.