0

我正在使用带有 Desloo W5100 以太网扩展板的 Arduino Uno。每当我尝试使用 Temboo 调用 Parse 时,设备就会挂起。有时几分钟……有时无限期。这是我运行的:

void updateParseDoorState() {

  if (!ENABLE_DOOR_STATE_PUSHES) {
    Serial.println("Door state pushing disabled. Skipping.");
    return;
  }

  Serial.println("Pushing door state to database...");

  TembooChoreo UpdateObjectChoreo(client);

  // Invoke the Temboo client
  UpdateObjectChoreo.begin();

  // Set Temboo account credentials
  UpdateObjectChoreo.setAccountName(TEMBOO_ACCOUNT);
  UpdateObjectChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
  UpdateObjectChoreo.setAppKey(TEMBOO_APP_KEY);

  // Set profile to use for execution
  UpdateObjectChoreo.setProfile("ParseAccount");

  // Set Choreo inputs
  String ObjectIDValue = "xxxxxxxxxx";
  UpdateObjectChoreo.addInput("ObjectID", ObjectIDValue);
  String ClassNameValue = "DoorState";
  UpdateObjectChoreo.addInput("ClassName", ClassNameValue);
  String ObjectContentsValue = (currentState == OPEN) ? "{\"isOpen\":true}" : "{\"isOpen\":false}";
  UpdateObjectChoreo.addInput("ObjectContents", ObjectContentsValue);

  // Identify the Choreo to run
  UpdateObjectChoreo.setChoreo("/Library/Parse/Objects/UpdateObject");

  // Run the Choreo; when results are available, print them to serial
  int returnStatus = UpdateObjectChoreo.run();
  if (returnStatus != 0){
    setEthernetIndicator(EthernetStatus::SERVICES_DISCONNECTED);
    Serial.print("Temboo error: "); Serial.println(returnStatus);
    // read the name of the next output item
    String returnResultName = UpdateObjectChoreo.readStringUntil('\x1F');
    returnResultName.trim(); // use “trim” to get rid of newlines
    Serial.print("Return result name: "); Serial.println(returnResultName);

    // read the value of the next output item
    String returnResultData = UpdateObjectChoreo.readStringUntil('\x1E');
    returnResultData.trim(); // use “trim” to get rid of newlines
    Serial.print("Return result data: "); Serial.println(returnResultData);
  }

  /*while(UpdateObjectChoreo.available()) {
    char c = UpdateObjectChoreo.read();
    Serial.print(c);
    }*/
  UpdateObjectChoreo.close();

  Serial.println("Pushed door state to database!");
  Serial.println("Waiting 30s to avoid overloading Temboo...");
  delay(30000);
}

我在串行监视器中得到这个:

Current state:6666ÿ &‰ SP  S   P U  WR     SR   R  PR   P 66Temboo error: 223

这表明存在某种类型的 HTTP 错误,但我从来没有打印出错误是什么……因为串行监视器永远卡在那里。并最终断开连接。

4

1 回答 1

3

我在天宝工作。

听起来您的板上可能内存不足(在资源受限的硬件(如 Arduino)上很常见)。您可以在此处找到有关如何在使用 Temboo 时节省内存使用的教程:

https://temboo.com/hardware/profiles

如果您有其他问题,请随时与 Temboo 支持部门联系 - 我们随时为您提供帮助。

于 2015-12-28T15:24:36.820 回答