Shop OBEX P1 Docs P2 Docs Learn Events
I have problems with List class — Parallax Forums

I have problems with List class

AurimasAurimas Posts: 1
edited 2004-10-19 13:16 in General Discussion
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

}

Comments

  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2004-10-19 13:16
    If you only need to register key strokes,
    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

    }
Sign In or Register to comment.