package com.integreight.onesheeld.shields.controller; import android.app.Activity; import com.integreight.onesheeld.sdk.ShieldFrame; import com.integreight.onesheeld.OneSheeldApplication; import com.integreight.onesheeld.R; import com.integreight.onesheeld.enums.UIShield; import com.integreight.onesheeld.model.ArduinoConnectedPin; import com.integreight.onesheeld.shields.ControllerParent; import com.integreight.onesheeld.utils.BitsUtils; import com.integreight.onesheeld.utils.Log; public class ToggleButtonShield extends ControllerParent<ToggleButtonShield> { private int connectedPin; private boolean isButtonOn; private static final byte DATA_IN = 0x01; public ToggleButtonShield() { super(); requiredPinsIndex = 0; shieldPins = new String[]{OneSheeldApplication.getContext().getString(R.string.toggle_button_pin_name)}; } public ToggleButtonShield(Activity activity, String tag) { super(activity, tag); } @Override public void setConnected(ArduinoConnectedPin... pins) { connectedPin = pins[0].getPinID(); super.setConnected(pins); } public boolean isButtonOn() { return isButtonOn; } private ShieldFrame sf; private byte toggle = 0; public void setButton(boolean isButtonOn) { if (connectedPin != -1) { this.isButtonOn = isButtonOn; digitalWrite(connectedPin, isButtonOn); Log.sysOut(connectedPin + " " + isButtonOn); } toggle = isButtonOn ? BitsUtils.setBit(toggle, 1) : BitsUtils.resetBit( toggle, 1); sf = new ShieldFrame(UIShield.TOGGLEBUTTON_SHIELD.getId(), DATA_IN); sf.addArgument(toggle); sendShieldFrame(sf); } public boolean getButton(){ return isButtonOn; } @Override public void refresh() { // TODO Auto-generated method stub } @Override public void onNewShieldFrameReceived(ShieldFrame frame) { // TODO Auto-generated method stub } @Override public void reset() { // TODO Auto-generated method stub } }