// *************************************************************
// The Robotics Institute
// Carnegie Mellon University
// Copyright (C) 2000 by RI.
// All Rights Reserved.
//
// File: 					sv203.cpp
// Project: 			PalmPilot Robot source code (Advanced project)
// Author: 				Greg Reshko
// Last modified: 4/03/2000
// Program:
// Implementation of SV203 class defined in sv203.h
// *************************************************************

// default constructor
SV203::SV203 () {
  SysLibFind("Serial Library", &portRef);	// find serial library
  SerOpen(portRef, 0, 9600);							// open COM port
}

// default destructor
SV203::~SV203 () {
  SerClose(portRef);											// close COM port
}

// transmit command and its parameter to board
void SV203::Tx(char *command, int parameter) {
  Err error;
  char prm_buffer[]="    ";																	// parameter buffer
  StrPrintF(prm_buffer, "%d\r", parameter);									// store param and '\r' into buffer
  SerSendWait(portRef, -1); 						 										// wait for port to clear
  SerSend(portRef, command, StrLen(command), &error); 			// send buffer
  SerSendWait(portRef, -1); 						 										// wait for port to clear
  SerSend(portRef, prm_buffer, StrLen(prm_buffer), &error); // send buffer
  
}

// receive string from board
void SV203::Rc(char *buffer) {
	Err error;
	// receive from portRef into incoming buffer using 5 bytes and 3ms timeout
	SerReceive(portRef, buffer, 4, 10, &error);	// receiver buffer
	SerReceiveFlush(portRef, 5); 								// flush receive buffers
	SerSendFlush(portRef);											// flush send buffers
}



