I have problems with List class
I am a bit confused in a process of placing things in order. I have an idea to test the principle of a program. I need to record some sequence of key pressing and later (and my program is still at recording faze) 9 led display must repeat exact appearance of keys pressed. So I am hoping that my idea to use the list class is good and somebody could help me to program it properly.
this is the code:
import stamp.core.*;
import stamp.util.*;
public class Project03 { // class declaration
static int A=136;
static int C=198;
static int H=137;
static int off=255;
//static int[noparse]/noparse mytextstring;
//static mytextstring = new int [noparse][[/noparse]120]; // Create testarray with 120 elements
public static void main() {
List mylist = new ArrayList();
CPU.writePin(CPU.pins[noparse][[/noparse]8],true);
CPU.writePin(CPU.pins[noparse][[/noparse]9],true);
CPU.writePin(CPU.pins[noparse][[/noparse]10],true);
CPU.writePin(CPU.pins[noparse][[/noparse]11],true);
CPU.writePin(CPU.pins[noparse][[/noparse]12],true);
CPU.writePin(CPU.pins[noparse][[/noparse]13],true);
CPU.writePin(CPU.pins[noparse][[/noparse]14],true);
CPU.writePin(CPU.pins[noparse][[/noparse]15],true);
Timer t = new Timer();
t.mark();
int i = 0;
while (i < mylist.size)
{
if ( t.timeout(100) ) { // Check for a 100ms timeout.
add(off, mylist); //mytextstring=off;
t.mark();
++i;
} // end if
switch ( Terminal.getChar() ) {
case 'a':
add(A, mylist); //mylist=A;
//i++;
break;
case 'c':
add(C, mylist); //mylist=C;
//i++;
break;
case 'h':
add(H, mylist); //mylist=H;
break;
}
} // end while
} // end void
}
this is the code:
import stamp.core.*;
import stamp.util.*;
public class Project03 { // class declaration
static int A=136;
static int C=198;
static int H=137;
static int off=255;
//static int[noparse]/noparse mytextstring;
//static mytextstring = new int [noparse][[/noparse]120]; // Create testarray with 120 elements
public static void main() {
List mylist = new ArrayList();
CPU.writePin(CPU.pins[noparse][[/noparse]8],true);
CPU.writePin(CPU.pins[noparse][[/noparse]9],true);
CPU.writePin(CPU.pins[noparse][[/noparse]10],true);
CPU.writePin(CPU.pins[noparse][[/noparse]11],true);
CPU.writePin(CPU.pins[noparse][[/noparse]12],true);
CPU.writePin(CPU.pins[noparse][[/noparse]13],true);
CPU.writePin(CPU.pins[noparse][[/noparse]14],true);
CPU.writePin(CPU.pins[noparse][[/noparse]15],true);
Timer t = new Timer();
t.mark();
int i = 0;
while (i < mylist.size)
{
if ( t.timeout(100) ) { // Check for a 100ms timeout.
add(off, mylist); //mytextstring=off;
t.mark();
++i;
} // end if
switch ( Terminal.getChar() ) {
case 'a':
add(A, mylist); //mylist=A;
//i++;
break;
case 'c':
add(C, mylist); //mylist=C;
//i++;
break;
case 'h':
add(H, mylist); //mylist=H;
break;
}
} // end while
} // end void
}
Comments
you can better use a char array. Saves you
alot of code space and your code runs faster.
I replaced the list in your program by a char[noparse]/noparse.
regards peter
import stamp.core.*;
import stamp.util.*;
public class Project03 { // class declaration
static int A=136;
static int C=198;
static int H=137;
static int off=255;
//static int[noparse]/noparse mytextstring;
//static mytextstring = new int [noparse][[/noparse]120]; // Create testarray with 120 elements
static char[noparse]/noparse keystrokes = new char[noparse][[/noparse]120]; //120 keys
static int keys = 0; //remember next free entry
//also number of keys in array
public static void main() {
//List mylist = new ArrayList();
CPU.writePin(CPU.pins[noparse][[/noparse]8],true);
CPU.writePin(CPU.pins[noparse][[/noparse]9],true);
CPU.writePin(CPU.pins[noparse][[/noparse]10],true);
CPU.writePin(CPU.pins[noparse][[/noparse]11],true);
CPU.writePin(CPU.pins[noparse][[/noparse]12],true);
CPU.writePin(CPU.pins[noparse][[/noparse]13],true);
CPU.writePin(CPU.pins[noparse][[/noparse]14],true);
CPU.writePin(CPU.pins[noparse][[/noparse]15],true);
Timer t = new Timer();
t.mark();
int i = 0;
while (i < mylist.size)
{
if ( t.timeout(100) ) { // Check for a 100ms timeout.
//add(off, mylist); //mytextstring=off;
keystrokes[noparse][[/noparse]keys++] = (char)off;
t.mark();
++i;
} // end if
switch ( Terminal.getChar() ) {
case 'a':
//add(A, mylist); //mylist=A;
keystrokes[noparse][[/noparse]keys++] = (char)A;
//i++;
break;
case 'c':
//add(C, mylist); //mylist=C;
keystrokes[noparse][[/noparse]keys++] = (char)C;
//i++;
break;
case 'h':
//add(H, mylist); //mylist=H;
keystrokes[noparse][[/noparse]keys++] = (char)H;
break;
}
} // end while
} // end void
}