Облачная функция останавливается в цикле Parse.com при вызове из Arduino-yun
Я создал облачную функцию с помощью Javascript SDK Parse.com и вызываю эти функции из Arduino. Ниже приведен код функции hello
:
Parse.Cloud.define("hello", function(request, response) {
response.success("This is hello function");
}); //привет функция Блок
Я вызываю эту функцию со стороны Arduino, используя следующий код:
void setup() {
Bridge.begin();
Serial.begin(9600);
while (!Serial);
Parse.begin("***zE0uUjQkMa7nj5D5BALvzegzfyVNSG22BD***", "***Ssggp5JgMFmSHfloewW5oixlM5ibt9LBSE***");
//только здесь прокомментировал мои ключи *
// В этом примере мы связываем это устройство с заранее созданной установкой
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");//параметры
ParseResponse response = cloudFunction.send();
Serial.println(response.getJSONBody());
}
Проблема в том, что я получаю ответ только 8 раз. После этого весь поток программы блокируется. В чем проблема?
@Abhijeet Kulkarni, 👍11
Обсуждение1 ответ
▲ 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());
}
,
@dBm
Смотрите также:
- Как получить HTTPS на Arduino?
- Как получить уникальный идентификатор для всех плат Arduino?
- Как поступить с файлом fzz
- Как сделать повторитель Wi-Fi на Arduino?
- Программа arduino выдаёт ошибку expected //primary-expression before ')' token error: //expected ';' before '}' token E
- Проблема с датчиком температуры и влажности DHT11
- Получение ошибки ets 8 января 2013,rst cause:4,boot mode(1,6) wdt reset
- Выводы прерываний Arduino Mega 2560 и отображение портов с помощью поворотного энкодера
Не уверен, в чем ваша проблема, но я бы попробовал «задержку» в цикле после вызова demoBasic. Я бы начал со 100 мс. Возможно, ваш код выполняется «слишком быстро», тогда функция js блокируется., @fabrosell
@fabrosell, я тоже пытался это сделать, но проблема все равно осталась. Можете ли вы предложить что-нибудь, что могло бы решить проблему., @Abhijeet Kulkarni
Если у вас есть рабочий код, который может постоянно передавать данные на Parse.com, можете ли вы им поделиться?, @Abhijeet Kulkarni
Извините, у меня их нет. В любом случае, это очень странное поведение, если функция вызывается всего 8 раз и не более..., @fabrosell
В каком месте кода поток программы «блокируется»?, @Kingsley