package com.uxxu.konashi.lib.action;
import android.bluetooth.BluetoothGattService;
import com.uxxu.konashi.lib.Konashi;
import com.uxxu.konashi.lib.KonashiErrorType;
import com.uxxu.konashi.lib.KonashiUUID;
import com.uxxu.konashi.lib.util.SpiUtils;
import java.util.UUID;
import info.izumin.android.bletia.BletiaErrorType;
/**
* Created by izumin on 11/14/15.
*/
public class SpiWriteAction extends KonashiWriteCharacteristicAction {
public static final String TAG = SpiWriteAction.class.getSimpleName();
private static final UUID UUID = KonashiUUID.SPI_DATA_UUID;
private byte[] mData = new byte[Konashi.SPI_DATA_MAX_LENGTH];
public SpiWriteAction(BluetoothGattService service, String data) {
super(service, UUID);
mData = data.getBytes();
}
public SpiWriteAction(BluetoothGattService service, byte[] data) {
super(service, UUID);
mData = data;
}
@Override
protected void setValue() {
getCharacteristic().setValue(mData);
}
@Override
protected BletiaErrorType validate() {
int length = mData.length;
if (SpiUtils.isTooLongData(length)) return KonashiErrorType.DATA_SIZE_TOO_LONG;
if (SpiUtils.isTooShortData(length)) return KonashiErrorType.DATA_SIZE_TOO_SHORT;
return KonashiErrorType.NO_ERROR;
}
}