package com.uxxu.konashi.lib.util;
import com.uxxu.konashi.lib.Konashi;
/**
* Created by e10dokup on 2015/09/22
**/
public final class UartUtils {
private UartUtils() {
throw new AssertionError("constructor of the utility class should not be called");
}
public static boolean isValidBaudrate(int baudrate) {
return baudrate == Konashi.UART_RATE_9K6 || baudrate == Konashi.UART_RATE_19K2 ||
baudrate == Konashi.UART_RATE_38K4 || baudrate == Konashi.UART_RATE_57K6 ||
baudrate == Konashi.UART_RATE_76K8 || baudrate == Konashi.UART_RATE_115K2;
}
public static boolean isValidMode(int mode) {
return mode == Konashi.UART_DISABLE || mode == Konashi.UART_ENABLE;
}
public static byte[] toFormattedByteArray(String baseString) {
return toFormattedByteArray(baseString.getBytes());
}
public static byte[] toFormattedByteArray(byte[] baseArray) {
int length = baseArray.length;
byte[] byteArray = new byte[length + 1];
byteArray[0] = (byte) length;
for(int i=0; i<length; i++){
byteArray[i+1] = baseArray[i];
}
return byteArray;
}
/**
* 送信するbyte[]の長さが許容範囲内か判定
* 先頭1byteは送信するbyte列の長さなのでそれを含めてUART_DATA_MAX_LENGTH + 1 byteに収まるか判定
* @param length
* @return
*/
public static boolean isValidLength(int length) {
return length >= 0 && length <= (Konashi.UART_DATA_MAX_LENGTH + 1);
}
public static boolean isLengthTooShort(int length) {
return length < 0;
}
public static boolean isLengthTooLong(int length) {
return length > (Konashi.UART_DATA_MAX_LENGTH + 1);
}
public static byte[] removeLengthByte(byte[] base) {
byte[] value = new byte[base.length-1];
System.arraycopy(base, 1, value, 0, base.length - 1);
return value;
}
}