/*
This file is part of JOP, the Java Optimized Processor
see <http://www.jopdesign.com/>
Copyright (C) 2010, Thomas Hassler, Lukas Marx
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @author Thomas Hassler e0425918@student.tuwien.ac.at
* @author Lukas Marx lukas.marx@gmail.com
* @version 1.0
*/
package ttpa.protocol;
import com.jopdesign.io.*;
import util.Timer;
public class Transmit
{
public static SerialPort sp;
/**
* initialize serial port connection
*/
public static void initConnection()
{
IOFactory fact = IOFactory.getFactory();
sp = fact.getSerialPort();
sp.setParityMode(SerialPort.PARITY_EVEN);
}
/**
* send the given firework byte
*
* @param sendValue fw byte to send
*/
public static void sendFWByte(byte sendValue)
{
sp.setParityMode(SerialPort.PARITY_ODD);
sp.write(sendValue);
sp.setParityMode(SerialPort.PARITY_EVEN);
}
/**
* send data byte
*
* @param sendValue send the given data byte
*/
public static void sendByte(byte sendValue)
{
sp.write(sendValue);
}
/**
* receive a fw byte
*
* @return received firework byte
*/
public static byte recvFWByte()
{
sp.setParityMode(SerialPort.PARITY_ODD);
while ( !sp.rxFull() ) {
}
if (sp.parityError()) {
return (byte) 0;
}
sp.setParityMode(SerialPort.PARITY_EVEN);
return (byte) sp.read();
}
/**
* receive a data byte
*
* @return received data byte
*/
public static byte recvByte()
{
/* wait until the byte is sent */
int t = Timer.getTimeoutUs(1205);
while (!Timer.timeout(t)) {
;
}
if (sp.parityError()) {
return (byte) 0;
}
return (byte) sp.read();
}
}