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.util.PwmUtils; import java.util.UUID; import info.izumin.android.bletia.BletiaErrorType; /** * Created by izumin on 9/18/15. */ public class PwmDutyAction extends KonashiWriteCharacteristicAction { private static final UUID UUID = KonashiUUID.PWM_DUTY_UUID; private int mPin; private int mDuty; private int mPeriod; public PwmDutyAction(BluetoothGattService service, int pin, int duty, int period) { super(service, UUID); mPin = pin; mDuty = duty; mPeriod = period; } @Override protected void setValue() { byte[] value = new byte[5]; value[0] = (byte) mPin; value[1] = (byte) ((mDuty >> 24) & 0xff); value[2] = (byte) ((mDuty >> 16) & 0xff); value[3] = (byte) ((mDuty >> 8) & 0xff); value[4] = (byte) (mDuty & 0xff); getCharacteristic().setValue(value); } @Override protected BletiaErrorType validate() { if (!PwmUtils.isValidPin(mPin)) return KonashiErrorType.INVALID_PIN_NUMBER; else if (!PwmUtils.isValidDuty(mDuty, mPeriod)) return KonashiErrorType.INVALID_DUTY_RATIO; else return KonashiErrorType.NO_ERROR; } }