import stamp.core.*;
import stamp.util.text.*;

/*
  This test program uses the Format class to transmit values as text.
*/

public class formatTest {

  static final int txPin = CPU.pin0;  //transmit pin (output), connects via levelshifter to pc receive pin (RX)
  static final int rxPin = CPU.pin1;  //receive pin (input), connects via levelshifter to pc transmit pin (TX)
  static final int rtsPin = CPU.pin2; //rts pin (output), connects via levelshifter to pc clear to send pin (CTS)
  static final int ctsPin = CPU.pin3; //cts pin (input), connects via levelshifter to pc request to send pin (RTS)

  //select either uart without or with handshake

  //tx and rx uart without handshake, 9600 baud, no parity, 1 stopbit
  static Uart txUart = new Uart(Uart.dirTransmit,txPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);
  static Uart rxUart = new Uart(Uart.dirReceive,rxPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);

  //tx and rx uart with handshake, 9600 baud, no parity, 1 stopbit
//  static Uart txUart = new Uart(Uart.dirTransmit,txPin,Uart.dontInvert,ctsPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);
//  static Uart rxUart = new Uart(Uart.dirReceive,rxPin,Uart.dontInvert,rtsPin,Uart.dontInvert,Uart.speed9600,Uart.stop1);

  static char[] text = new char[128]; //array for holding asciiz string
  static int value = 0;

  static void main() {
    Format.sprintf(text,"test program using Format class\r\n"); //use \r\n to generate CR,LF
    txUart.sendString(text);
    while (true) {
      Format.sprintf(text,"mySensor has value %6d\r\n",value); //make asciiz string with value
      txUart.sendString(text); //send the assembled asciiz string, decimal signed value is right-justified for 6 positions
      value++; //increment value
    }
  }

}
 