Go Down

Topic: error: 'import' does not name a type In function ' (Read 4895 times) previous topic - next topic

dark180

Hello , just wanted to take te time to introduce myself, I just started using arduino today and unfortunately i also ran into my first problem too.

I am following a guide from the make book getting started with arduino
this is the code i am trying to run
Quote

import processing.serial.*;

String feed = "http://blog.makezine.com/index.xml";
int interval = 10;  // retrieve feed every 60 seconds;
int lastTime;       // the last time we fetched the content
int love    = 0;
int peace   = 0;
int arduino = 0;
int light = 0;  // light level measured by the lamp
Serial port;
color c;
String cs;
String buffer = ""; // Accumulates characters coming from Arduino
PFont font;

void setup() {
 size(640,480);
 frameRate(10);   // we don't need fast updates

 font = loadFont("HelveticaNeue-Bold-32.vlw");
 fill(255);
 textFont(font, 32);
 // IMPORTANT NOTE:
 // The first serial port retrieved by Serial.list()
 // should be your Arduino. If not, uncomment the next
 // line by deleting the // before it, and re-run the
 // sketch to see a list of serial ports. Then, change
 // the 0 in between [ and ] to the number of the port
 // that your Arduino is connected to.
 //println(Serial.list());
 String arduinoPort = Serial.list()[0];
 port = new Serial(this, arduinoPort, 9600); // connect to Arduino

 lastTime = 0;
 fetchData();
}

void draw() {
 background( c );
 int n = (interval - ((millis()-lastTime)/1000));

 // Build a colour based on the 3 values
 c = color(peace, love, arduino);
 cs = "#" + hex(c,6); // Prepare a string to be sent to Arduino

 text("Arduino Networked Lamp", 10,40);
 text("Reading feed:", 10, 100);
 text(feed, 10, 140);

 text("Next update in "+ n + " seconds",10,450);
 text("peace" ,10,200);
 text(" " + peace, 130, 200);
 rect(200,172, peace, 28);

 text("love ",10,240);
 text(" " + love, 130, 240);
 rect(200,212, love, 28);

 text("arduino ",10,280);
 text(" " + arduino, 130, 280);
 rect(200,252, arduino, 28);

 // write the colour string to the screen
 text("sending", 10, 340);
 text(cs, 200,340);
 text("light level", 10, 380);
 rect(200, 352,light/10.23,28); // this turns 1023 into 100

 if (n <= 0) {
   fetchData();
   lastTime = millis();
 }

 port.write(cs); // send data to Arduino

 if (port.available() > 0) { // check if there is data waiting
   int inByte = port.read(); // read one byte
   if (inByte != 10) { // if byte is not newline
     buffer = buffer + char(inByte); // just add it to the buffer
   }
   else {

     // newline reached, let's process the data
     if (buffer.length() > 1) { // make sure there is enough data

       // chop off the last character, it's a carriage return
       // (a carriage return is the character at the end of a
       // line of text)
       buffer = buffer.substring(0,buffer.length() -1);

      // turn the buffer from string into an integer number
      light = int(buffer);

      // clean the buffer for the next read cycle
      buffer = "";

      // We're likely falling behind in taking readings
      // from Arduino. So let's clear the backlog of
      // incoming sensor readings so the next reading is
      // up-to-date.
      port.clear();
    }
  }
}

}
void fetchData() {
 // we use these strings to parse the feed
 String data;
 String chunk;

 // zero the counters
 love = 0;
 peace = 0;
 arduino = 0;
 try {
   URL url = new URL(feed); // An object to represent the URL
   // prepare a connection
   URLConnection conn = url.openConnection();
   conn.connect(); // now connect to the Website

   // this is a bit of virtual plumbing as we connect
   // the data coming from the connection to a buffered
   // reader that reads the data one line at a time.
   BufferedReader in = new
     BufferedReader(new InputStreamReader(conn.getInputStream()));

   // read each line from the feed
   while ((data = in.readLine()) != null) {

     StringTokenizer st =
       new StringTokenizer(data,"\"<>,.()[] ");// break it down
     while (st.hasMoreTokens()) {
       // each chunk of data is made lowercase
       chunk= st.nextToken().toLowerCase() ;

       if (chunk.indexOf("love") >= 0 ) // found "love"?
         love++; // increment love by 1
       if (chunk.indexOf("peace") >= 0) // found "peace"?
         peace++; // increment peace by 1
       if (chunk.indexOf("arduino") >= 0) // found "arduino"?
         arduino++; // increment arduino by 1
    }
   }

   // Set 64 to be the maximum number of references we care about.
   if (peace > 64)   peace = 64;
   if (love > 64)    love = 64;
   if (arduino > 64) arduino = 64;
   peace = peace * 4;     // multiply by 4 so that the max is 255,
   love = love * 4;       // which comes in handy when building a
   arduino = arduino * 4; // colour that is made of 4 bytes (ARGB)
 }
 catch (Exception ex) { // If there was an error, stop the sketch
   ex.printStackTrace();
   System.out.println("ERROR: "+ex.getMessage());
 }

}




i get the following error
error: 'import' does not name a type In function 'void setup()':
In function 'void draw()':
In function 'void fetchData()':

it might be because i skiped a step in the instructions:
There are two things you need to do before the Processing sketch will run correctly. First, you need to tell Processing to generate the font that we are using for the sketch. To do this, create and save this sketch. Then, with the sketch still opened, click Processing's Tools menu, then select Create Font. Select the font named HelveticaNeue-Bold, choose 32 for the font size, and then click OK.

i could not find the processings tools menu nor the font thing... if i open my tools menu there is only autoformat, copy to forum, copy as html, archive sketch, board, serialport, and burn bootloader.

I am using a arduino duemilanove
on windows 7
using version 0016 of the ide

Thanks for the help in advance and im sorry if it was a stupid question




Groove

#1
Jul 03, 2009, 08:56 am Last Edit: Jul 03, 2009, 08:57 am by GrooveFlotilla Reason: 1
That's a Processing sketch - it is meant to run on the PC, not the Arduino.
You need the Processing IDE.
Per Arduino ad Astra

Coding Badly

You're trying to run the code on the microcontroller (the Duemilanove).  The code is meant to run in Processing.

- Brian

Coding Badly


Groove

Ha! Two seconds!

OT - it's a shame that Processing (Java-based?) and Wiring (C/C++ - based) should look so similar.
Maybe if Processing were based on something more disctinctive, like FORTRAN or COBOL...   ;D
Per Arduino ad Astra

dark180

woow, i feel so stupid now, i guess there are no stupid questions but still :P

thanks for the help every1 and i am happy I found this community seems like a nice and active1! :)

Coding Badly

Quote
Maybe if Processing were based on something more disctinctive, like FORTRAN or COBOL...


A cold shiver ran down my spine as I read those words...  

But maybe you're on to something...

Quote
In 1997, the Gartner Group reported that 80% of the world's business ran on COBOL with over 200 billion lines of code in existence and with an estimated 5 billion lines of new code annually


And COBOL is now object oriented!  Yippeeeee!  :o

- Brian

Go Up