Arduino-yun से कॉल करते समय क्लाउड फ़ंक्शन को Parse.com को लूप में रोका जा रहा है


11

मैंने Parse.com जावास्क्रिप्ट 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 बार प्रतिक्रिया मिल रही है। उसके बाद पूरा कार्यक्रम प्रवाह अवरुद्ध हो जाता है। समस्या क्या है?


निश्चित नहीं है कि आपकी समस्या क्या है, लेकिन मैं डेमोबेसिक के कॉल के बाद लूप में "देरी" की कोशिश करूंगा। मैं 100 ms से शुरू करूँगा। हो सकता है कि आपका कोड "बहुत तेज़" निष्पादित हो, तब js फ़ंक्शन अवरुद्ध हो जाता है।
फेब्रोसेल

@fabrosell मैंने भी ऐसा करने की कोशिश की, लेकिन फिर भी समस्या थी। क्या आप किसी भी सुखदायक बात का सुझाव देते हैं, जो समस्या को हल कर सकती है।
अभिजीत कुलकर्णी

यदि आपके पास कोई भी काम करने वाला कोड है जो लगातार Parse.com को डेटा पुश करने में सक्षम है, तो क्या आप उसे साझा कर सकते हैं?
अभिजीत कुलकर्णी

मुझे क्षमा करें, मेरे पास कोई नहीं है। किसी भी तरह से, यह एक बहुत ही अजीब व्यवहार है अगर फ़ंक्शन को सिर्फ 8 बार और अधिक नहीं बुलाया जाता है ...
फेब्रोसेल

कोड में किस बिंदु पर प्रोग्राम का प्रवाह "अवरुद्ध हो जाता है"?
किंग्सले

जवाबों:


1

इसे एक शॉट दें, मुझे वास्तव में स्ट्रिंग से नफरत है, हो सकता है कि 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());
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.