我正在尝试将特定用户的tweets放入Processing,然后使用TTS库说出它们,但是仅当通过Serial = 491310从Arduino检测到特定值时才说出它们

我已经将tweet放入Processing中,并且可以打印并说出,并且491310的值由Processing处理,但它是if语句的位置(“ if(sensor == 491310){')我”我正在苦苦挣扎,因为它目前没有效果-有人可以解决吗?

绝对是新手,任何帮助都会很棒。谢谢。



import twitter4j.util.*;
import twitter4j.*;
import twitter4j.management.*;
import twitter4j.api.*;
import twitter4j.conf.*;
import twitter4j.json.*;
import twitter4j.auth.*;
import guru.ttslib.*;
import processing.serial.*;

TTS tts;
Serial myPort;

int sensor = 0;

void setup() {
  tts = new TTS();

  myPort = new Serial(this, Serial.list()[0], 9600);

}

void draw() {

ConfigurationBuilder cb = new ConfigurationBuilder();

cb.setOAuthConsumerKey("XXXX");
cb.setOAuthConsumerSecret("XXXX");
cb.setOAuthAccessToken("XXXX");
cb.setOAuthAccessTokenSecret("XXXX");

java.util.List statuses = null;

Twitter twitter = new TwitterFactory(cb.build()).getInstance();

String userName ="TWITTER HANDLE";
int numTweets = 19;
String[] twArray = new String[numTweets];

  try {
    statuses = twitter.getUserTimeline(userName);
  }
  catch(TwitterException e) {
  }

if( statuses != null) {
  for (int i=0; i<statuses.size(); i++) {
    Status status = (Status)statuses.get(i);

    if (sensor == 491310) {
    println(status.getUser().getName() + ": " + status.getText());
 tts.speak(status.getUser().getName() + ": " + status.getText());
  }
}
}

}

void serialEvent (Serial myPort) {
 int inByte = myPort.read();
   sensor = inByte;
  print(sensor);
}

最佳答案

从串行端口读取将返回一个字节(8位),而不是一个16位整数。 “ sensor”的值不能超过255,因此从不匹配491310。您必须进行2次读取才能形成16位int。

07-26 00:58