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.ArduinoPin;
import com.integreight.onesheeld.enums.UIShield;
import com.integreight.onesheeld.model.ArduinoConnectedPin;
import com.integreight.onesheeld.shields.ControllerParent;
import com.integreight.onesheeld.utils.BitsUtils;
public class KeypadShield extends ControllerParent<KeypadShield> {
private static final byte DATA_IN = 0x01;
public KeypadShield(Activity activity, String tag) {
super(activity, tag);
}
@Override
public ControllerParent<KeypadShield> init(String tag) {
return super.init(tag);
}
public KeypadShield() {
super();
requiredPinsIndex = 0;
shieldPins = new String[]{OneSheeldApplication.getContext().getString(R.string.keypad_row)+" 0", OneSheeldApplication.getContext().getString(R.string.keypad_row)+" 1", OneSheeldApplication.getContext().getString(R.string.keypad_row)+" 2", OneSheeldApplication.getContext().getString(R.string.keypad_row)+" 3",
OneSheeldApplication.getContext().getString(R.string.keypad_column)+" 0", OneSheeldApplication.getContext().getString(R.string.keypad_column)+" 1", OneSheeldApplication.getContext().getString(R.string.keypad_column)+" 2", OneSheeldApplication.getContext().getString(R.string.keypad_column)+" 3"};
}
@Override
public void setConnected(ArduinoConnectedPin... pins) {
// TODO Auto-generated method stub
super.setConnected(pins);
}
public void initPins() {
}
ShieldFrame sf;
byte rowByte = 0, columnByte = 0;
public void setRowAndColumn(int row, int column) {
ArduinoPin columnPin = matchedShieldPins.get(activity.getString(R.string.keypad_column)+" " + column);
if (columnPin != null) {
digitalWrite(columnPin.microHardwarePin, true);
}
columnByte = BitsUtils.setBit(columnByte, column);
ArduinoPin rowPin = matchedShieldPins.get(activity.getString(R.string.keypad_row)+" " + row);
if (rowPin != null) {
digitalWrite(rowPin.microHardwarePin, true);
}
rowByte = BitsUtils.setBit(rowByte, row);
sf = new ShieldFrame(UIShield.KEYPAD_SHIELD.getId(), DATA_IN);
sf.addArgument(rowByte);
sf.addArgument(columnByte);
sendShieldFrame(sf);
}
public void resetRowAndColumn(int row, int column) {
ArduinoPin columnPin = matchedShieldPins.get(activity.getString(R.string.keypad_column)+" " + column);
if (columnPin != null) {
digitalWrite(columnPin.microHardwarePin, false);
}
columnByte = BitsUtils.resetBit(columnByte, column);
ArduinoPin rowPin = matchedShieldPins.get(activity.getString(R.string.keypad_row)+" " + row);
if (rowPin != null) {
digitalWrite(rowPin.microHardwarePin, false);
}
rowByte = BitsUtils.resetBit(rowByte, row);
sf = new ShieldFrame(UIShield.KEYPAD_SHIELD.getId(), DATA_IN);
sf.addArgument(rowByte);
sf.addArgument(columnByte);
sendShieldFrame(sf);
}
@Override
public void onNewShieldFrameReceived(ShieldFrame frame) {
// TODO Auto-generated method stub
}
@Override
public void reset() {
// TODO Auto-generated method stub
}
}