英特尔伽利略和 Python - 接口



我正在使用英特尔伽利略平台开发园艺系统。我正在使用本地传感器数据与开放天气图的预测相结合。为了显示结果,如有必要,我会使用Paraimpu发推文。目前为止,一切都好。我现在正在寻找一种方法,让我的系统对包含触发词的传入推文做出反应。我设法使用 Twython 编写了一个 python 脚本来检查这个触发词。如果有一条新推文(在最后一分钟内),python 脚本返回 1,如果不是 0。

[...]
if timedelta<triggertime: 
    erg = 1 #Neuer Tweet vorhanden
else: 
    erg = 0 #Kein neuer Tweet vorhanden
print erg

在这里我被卡住了:当我调用python脚本本身时,它工作得很好。但是当在arduino代码中使用系统功能时,我没有得到数字,只是一些奇怪的格式的东西,如:|cßBð¿这就是我在 arduino 代码中调用系统函数的方式:

char* checkTweets() {
  char result[1];
  system("python /media/realroot/Files/tweetcheck.py > /media/realroot/result.txt");
  FILE *tempFile;
  tempFile = fopen("result.txt", "r");
  fgets(result, 1, tempFile);
  fclose(tempFile);
  return (result);
}

我在Arduino/Python接口方面不是很有经验。感谢您的任何建议!

我有非常相似的代码与我的伽利略与 Python 接口,我注意到两个可能导致您错误的差异:

当我进行系统调用时,我将其另存为文件,而不是文本文件:

system("python /media/realroot/Files/tweetcheck.py > /media/realroot/result");

也许将其另存为文本文件是导致奇数输出的原因?

或者,错误出在读取文件时。 当我这样做时,我使用了SD Arduino库,它需要在程序顶部#include <SD.h>,并读取文件:

File myfile = SD.open("result");
// read from file until we hit the a newline
while (myfile.peek() != 'n') {
  result = myfile.parseInt();
}
result.close();
system("rm /media/realroot/result");

相关内容

  • 没有找到相关文章

最新更新