package com.uxxu.konashi.lib.action; import android.bluetooth.BluetoothGattService; import com.uxxu.konashi.lib.KonashiErrorType; import com.uxxu.konashi.lib.KonashiUUID; import com.uxxu.konashi.lib.store.SpiStore; import com.uxxu.konashi.lib.util.KonashiUtils; 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 SpiConfigAction extends KonashiWriteCharacteristicAction { public static final String TAG = SpiConfigAction.class.getSimpleName(); private static final UUID UUID = KonashiUUID.SPI_CONFIG_UUID; private final SpiStore mStore; private int mMode; private int mEndianness; private int mSpeed; public SpiConfigAction(BluetoothGattService service, int mode, int endianness, int speed, SpiStore store) { super(service, UUID); mMode = mode; mEndianness = endianness; mSpeed = speed; mStore = store; } @Override protected void setValue() { byte speedInBytes[] = KonashiUtils.int2bytes(mSpeed); getCharacteristic().setValue(new byte[] { (byte) mMode, (byte) mEndianness, speedInBytes[1], speedInBytes[0] }); } @Override protected BletiaErrorType validate() { if (!SpiUtils.isValidMode(mMode)) return KonashiErrorType.INVALID_MODE; if (!SpiUtils.isValidEndianness(mEndianness)) return KonashiErrorType.INVALID_ENDIANNESS; if (!SpiUtils.isValidSpeed(mSpeed)) return KonashiErrorType.INVALID_SPEED; return KonashiErrorType.NO_ERROR; } }