4.6.09

behold

my immense, pretty much final, it works and it looks pretty and that's more than enough for me, code.

but before i bore you with the boring source code, here's some pretty pictures of it working.







Once an RFID enabled wooly (or not) symbol of weather is placed on the the reader, the code looks for weather matching the object, in several different cities. An animation is played representing the weather, and if matching weather is found, the city and state of weather is written to the screen, on top of the animation. If the weather doesn't match the RFID tag, a line stating that the weather isn't happening in that particular city is displayed.

For example, placing the symbol for partially cloudy weather on the reader triggers an animation representing that weather. If the weather is partially cloudy in Leeds, the program will show the phrase "It is partly cloudy in Leeds". If the weather in Leeds isn't cloudy, the program will show "It is not partly cloudy in Leeds".

I did experiment with code that tells you what the weather is like in the city if it doesn't match the symbol. So if it wasn't partly cloudy in Leeds, and was actually sunny, putting the partially cloudy symbol on the RFID reader would show the phrase "it's actually sunny in Leeds". Once I did this code I realised it defeated the whole point of having several different objects. Once one object is placed on the reader there is no incentive to place other objects on the reader, and find out what the weather is actually like in that city.

As you see in the examples above, it does return quite a lot of "it's not whatever in where-ever", but this is actually needed to show that the program is doing something, and that the weather you looked for isn't happening everywhere, or where you are looking.

It's not designed to be a simple way to find out what the weather is. For that there is the news or weather websites. This is simply a playful object designed to show and get people to interact with the data in a different way. To bring it to people in a tactile way that makes them hunt out what the weather is.


// having to run this in Processing 1.0 as the version i have been using
// for the rest of the project (0148) has issues with the delay tag

// Now working pretty much fully!!!
// Displays Animations and Text, and doesn't contradict itself.
// Slightly jittery, need to work on getting the delays right - long enough to read the text but not so long it slows down the animation.

// XML stuff
import simpleML.*;

// visual stuff
import processing.candy.*;
import processing.xml.*; // needed for svgs
float angle;
PFont font;

SVG blob1;
SVG blob2;
SVG blob3;
SVG blob4;
SVG blob5;
SVG bigrain;
SVG bigdrip;
SVG puff1;
SVG puff2;
SVG puff3;
SVG puff4;
SVG puff5;
SVG puff6;
SVG cloud;
SVG cloud2;
SVG sun1;
SVG sun2;
SVG sun3;
SVG sun4;
SVG sun5;
SVG sun6;
SVG sunny;


// Serial stuff
// import the serial library:
import processing.serial.*;

Serial myPort; // the serial port you're using
String tagID = ""; // the string for the tag ID

XMLRequest aberdeen;
XMLRequest aberystwyth;
XMLRequest birmingham;
XMLRequest bristol;
XMLRequest dundee;
XMLRequest leeds;
XMLRequest liverpool;
XMLRequest london;
XMLRequest manchester;
XMLRequest newcastle;
XMLRequest oxford;
XMLRequest reading;



int startTime; //create timer
int counter = 0;

String weather;
String city;
String temp;

String partlycloudy;


void setup() {
size(1500, 800);
frameRate(30);
smooth();

//Visual Stuff
blob1 = new SVG(this, "blob_001.svg");
blob2 = new SVG(this, "blob_002.svg");
blob3 = new SVG(this, "blob_003.svg");
blob4 = new SVG(this, "blob_004.svg");
blob5 = new SVG(this, "blob_005.svg");
bigrain = new SVG(this, "bigrain_003.svg");
bigdrip = new SVG(this, "heavy_002.svg");
puff1 = new SVG(this, "puff_001.svg");
puff2 = new SVG(this, "puff_002.svg");
puff3 = new SVG(this, "puff_003.svg");
puff4 = new SVG(this, "puff_004.svg");
puff5 = new SVG(this, "puff_005.svg");
puff6 = new SVG(this, "puff_006.svg");
cloud = new SVG(this, "bigcloud_003.svg");
cloud2 = new SVG(this, "partiallysun_003.svg");
sun1 = new SVG(this, "sun_001.svg");
sun2 = new SVG(this, "sun_002.svg");
sun3 = new SVG(this, "sun_003.svg");
sun4 = new SVG(this, "sun_004.svg");
sun5 = new SVG(this, "sun_005.svg");
sun6 = new SVG(this, "sun_006.svg");
sunny = new SVG(this, "bigsun_004.svg");
font = loadFont("ArnoPro-Regular-70.vlw");
textFont(font, 48);

// list all the serial ports:
println(Serial.list());

// based on the list of serial ports printed from the
// previous command, change the 0 to your port's number:
String portnum = Serial.list()[0];
// initialize the serial port:
myPort = new Serial(this, portnum, 9600);
// incoming string from reader will have 16 bytes:
myPort.buffer(16);



//create and start up request

aberdeen = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0001&u=c");
aberdeen.makeRequest();

aberystwyth = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0203&u=c");
aberystwyth.makeRequest();

birmingham = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0018&u=c");
birmingham.makeRequest();

bristol = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0025&u=c");
bristol.makeRequest();

dundee = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0045&u=c");
dundee.makeRequest();

leeds = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0078&u=c");
leeds.makeRequest();

liverpool = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0083&u=c");
liverpool.makeRequest();

london = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0085&u=c");
london.makeRequest();

manchester = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0092&u=c");
manchester.makeRequest();

newcastle = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0098&u=c");
newcastle.makeRequest();

oxford = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0106&u=c");
oxford.makeRequest();

reading = new XMLRequest(this,"http://weather.yahooapis.com/forecastrss?p=UKXX0117&u=c");
reading.makeRequest();
startTime = millis();//more timer stuff



}

void serialEvent(Serial myPort) {
// get the serial input buffer in a string:
String inputString = myPort.readString();
// filter out the tag ID from the string:
tagID = parseString(inputString);
}

String parseString(String thisString) {
String tagString = ""; // string to put the tag ID into

// first character of the input:
char firstChar = thisString.charAt(0);
// last character of the input:
char lastChar = thisString.charAt(thisString.length() -1);

// if the first char is STX (0x02) and the last char
// is ETX (0x03), then put the next ten bytes
// into the tag string:

if ((firstChar == 0x02) && (lastChar == 0x03)) {
tagString = thisString.substring(1, 11);



}
return tagString;
}

void draw() {
background(159, 252, 255);

//every 5 seconds, make new request
int now = millis();

if (now - startTime > 5000) {
aberdeen.makeRequest();
println("1");

}

if (now - startTime > 5000) {
aberystwyth.makeRequest();
println("2");

}

if (now - startTime > 5000) {
birmingham.makeRequest();
println("3");

}

if (now - startTime > 5000) {
bristol.makeRequest();
println("4");

}

if (now - startTime > 5000) {
dundee.makeRequest();
println("5");

}

if (now - startTime > 5000) {
leeds.makeRequest();
println("6");

}

if (now - startTime > 5000) {
liverpool.makeRequest();
println("7");

}

if (now - startTime > 5000) {
london.makeRequest();
println("8");

}

if (now - startTime > 5000) {
manchester.makeRequest();
println("9");

}

if (now - startTime > 5000) {
newcastle.makeRequest();
println("10");

}

if (now - startTime > 5000) {
oxford.makeRequest();
println("11");

}

if (now - startTime > 5000) {
reading.makeRequest();
println("12");


startTime = now;
}



if(tagID.equals("210076572B")) { // LIGHT RAIN --------------------------------------

pushMatrix();
translate(500, 400); // center animation

pushMatrix(); // rain 1 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob5.draw( 50, 50, 80, 80); // placement and size
}
popMatrix();


pushMatrix(); // rain 2 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob3.draw( 150, 150, 90, 90); // placement and size
}
popMatrix();


pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob2.draw( 200, 200, 100, 100); // placement and size
}
popMatrix();

pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob1.draw( 250, 250, 150, 150); // placement and size
}
popMatrix();

pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob4.draw( 300, 300, 200, 200); // placement and size
}
popMatrix();

pushMatrix(); // rain 2 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob5.draw( 400, 400, 250, 250); // placement and size
}
popMatrix();

pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0003; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob1.draw( 500, 500, 300, 300); // placement and size
}
popMatrix();

bigrain.draw( -200, -200, 400, 400);

if (weather.equals("Light Rain") == true) {
fill(0);
text("it's raining lightly in " + city, 150, 40);
delay(100);
}

if (weather.equals("Light Rain/Wind") == true) {
fill(0);
text("it's raining lightly and a bit windy in " + city, 150, 40);
delay(100);
}

if (weather.equals("Light Rain Shower") == true) {
fill(0);
text("there's a light rain shower in " + city, 150, 40);
delay(100);
}

if (weather.equals("Showers in the Vicinity") == true) {
fill(0);
text("there's some rain showers near " + city, 150, 40);
delay(100);
}
if (weather.equals("Partly Cloudy") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}
if (weather.equals("Partly Cloudy/Windy") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Cloudy") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy/Windy") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain/Wind") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Few Showers") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Sunny") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Fair") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Sunny") == true) {
fill(0);
text("it's not raining lightly in "+ city, 150, 40 );
delay(100);

}
popMatrix();

}

if(tagID.equals("2100764B24")) { // PARTLY CLOUDY --------------------------------------
pushMatrix();

translate(500, 400); // center animation


pushMatrix(); // puff 1 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff1.draw( 0, 0, 150, 150); // placement and size
}
popMatrix();


pushMatrix(); // puff 2 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff2.draw( 50, 50, 200, 200); // placement and size
}
popMatrix();


pushMatrix(); // puff 3 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff3.draw( 150, 150, 300, 300); // placement and size
}
popMatrix();

cloud2.draw( -200, -200, 400, 400);

if (weather.equals("Partly Cloudy") == true) {
fill(0);
text("it is partly cloudy in " + city, 150, 40);
delay(100);

}

if (weather.equals("Partly Cloudy/Windy") == true) {
fill(0);
text("it is partly cloudy and a bit windy in " + city, 150, 40);
delay(100);

}
if (weather.equals("Cloudy") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Moslty Cloudy/windy") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain/Wind") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain Shower") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Showers in the Vicinity") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain/Wind") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Few Showers") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Sunny") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Fair") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Sunny") == true) {
fill(0);
text("it's not a bit cloudy in "+ city, 150, 40 );
delay(100);

}
popMatrix();

}

if(tagID.equals("2100766B22")) { // CLOUDY --------------------------------------
pushMatrix();

translate(500, 400); // center animation


pushMatrix(); // puff 1 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff1.draw( 0, 0, 150, 150); // placement and size
}
popMatrix();


pushMatrix(); // puff 2 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff2.draw( 50, 50, 200, 200); // placement and size
}
popMatrix();


pushMatrix(); // puff 3 animation
for (int i=0; i<6; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
puff3.draw( 150, 150, 300, 300); // placement and size
}
popMatrix();

cloud.draw( -200, -200, 400, 400);



if (weather.equals("Cloudy") == true) {
fill(0);
text("it's cloudy in " + city, 150, 40);
delay(100);
}

if (weather.equals("Mostly Cloudy") == true) {
fill(0);
text("it's mostly cloudy in " + city, 150, 40);
delay(100);
}

if (weather.equals("Mostly Cloudy/Windy") == true) {
fill(0);
text("it's mostly cloudy and a bit windy in " + city, 150, 40);
delay(100);
}

if (weather.equals("Partly Cloudy") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Partly Cloudy/Windy") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain/Wind") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain Shower") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Showers in the Vicinity") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}
if (weather.equals("Rain/Wind") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Few Showers") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Sunny") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Fair") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Sunny") == true) {
fill(0);
text("it's not cloudy in "+ city, 150, 40 );
delay(100);

}
popMatrix();



}

if(tagID.equals("21007643E3")) { // HEAVY RAIN --------------------------------------
pushMatrix();

translate(500, 400); // center animation

pushMatrix(); // rain 1 animation
for (int i=0; i<=8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob1.draw( 50, 50, 80, 80); // placement and size
}
popMatrix();


pushMatrix(); // rain 2 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob5.draw( 100, 100, 90, 90); // placement and size
}
popMatrix();


pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob3.draw( 150, 150, 100, 100); // placement and size
}
popMatrix();

pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob4.draw( 200, 200, 150, 150); // placement and size
}
popMatrix();

pushMatrix(); // rain 3 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob2.draw( 250, 250, 200, 200); // placement and size
}
popMatrix();

pushMatrix(); // rain 2 animation
for (int i=0; i<8; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
blob5.draw( 350, 350, 250, 250); // placement and size
}
popMatrix();




bigdrip.draw( -200, -200, 400, 400);


if (weather.equals("Rain") == true) {
fill(0);
text("it's raining in " + city, 40, 40);
delay(100);
}

if (weather.equals("Rain/Wind") == true) {
fill(0);
text("it's raining and a bit windy in " + city, 150, 40);
delay(100);
}

if (weather.equals("Few Showers") == true) {
fill(0);
text("there's some rain showers in " + city, 150, 40);
delay(100);
}


if (weather.equals("Partly Cloudy") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Partly Cloudy/Windy") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Cloudy") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy/Windy") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain/Wind") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain Shower") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}
if (weather.equals("Showers in the Vicinity") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Sunny") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Fair") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Sunny") == true) {
fill(0);
text("it's not raining in "+ city, 150, 40 );
delay(100);

}
popMatrix();
}

if(tagID.equals("21007683C0")) { // SUNNY --------------------------------------
pushMatrix();
translate(500, 400); // center animation


pushMatrix(); // puff 1 animation
for (int i=0; i<10; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
sun1.draw( 50, 50, 50, 50); // placement and size
}
popMatrix();


pushMatrix(); // puff 2 animation
for (int i=0; i<10; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
sun2.draw( 100, 100, 100, 100); // placement and size
}
popMatrix();


pushMatrix(); // puff 3 animation
for (int i=0; i<12; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
sun3.draw( 200, 200, 150, 150); // placement and size
}
popMatrix();

pushMatrix(); // puff 3 animation
for (int i=0; i<12; i++) //variable controls how many appear
{
angle += 0.0005; // sets speed
rotate(angle); // rotate it
translate(0, 0); // where it is
sun3.draw( 250, 250, 300, 300); // placement and size
}
popMatrix();


sunny.draw( -200, -200, 400, 400);



if (weather.equals("Sunny") == true) {
fill(0);
text("it's sunny in " + city, 150, 40);
delay(100);
}

if (weather.equals("Fair") == true) {
fill(0);
text("it's fair in " + city, 150, 40);
delay(100);
}

if (weather.equals("Partly Cloudy") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Partly Cloudy/Windy") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Cloudy") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Mostly Cloudy") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}
if (weather.equals("Mostly Cloudy/Windy") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain/Wind") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Light Rain Shower") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}


if (weather.equals("Showers in the Vicinity") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Rain/Wind") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

if (weather.equals("Few Showers") == true) {
fill(0);
text("it's not sunny in "+ city, 150, 40 );
delay(100);

}

popMatrix();

}

}


//when request is complete
void netEvent(XMLRequest ml) {

city = ml.getElementAttributeText("yweather:location", "city");

temp = ml.getElementAttributeText("yweather:condition", "temp");


weather = ml.getElementAttributeText("yweather:condition","text");



}

No comments: