I have some switches in a fragment page that are toggling a boolean value
that should determine the pin's mode (Whether it be input or output).
Here is some of the relevant code:
*THE ARRAY OF SWITCHES AND THEIR LISTENER:*
for(int i = 0; i<digitalIOModeSwitchArray.length;i++){
digitalIOModeSwitchArray[i].setOnCheckedChangeListener(new
OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
try {
MainActivity.globalLooperRetriever().getIOIOBoardInstance().hardReset();
} catch (ConnectionLostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
__________________________________________________________
*THE globalLooperRetriever METHOD AND l1 LOOPER VARIABLE:*
* IOIOLooper l1;*
protected IOIOLooper createIOIOLooper() {
l1 = new Looper();
return l1;
}
public static Looper globalLooperRetriever(){
return l1;
}
__________________________________________________________
THE LOOPER.JAVA CLASS:
package com.example.ioiorun;
import ioio.lib.api.DigitalInput;
import ioio.lib.api.DigitalOutput;
import ioio.lib.api.IOIO;
import ioio.lib.api.exception.ConnectionLostException;
import ioio.lib.util.BaseIOIOLooper;
public class Looper extends BaseIOIOLooper {
digitalFragment digitalFragmentObject;
// The variable digitalIOs
private DigitalOutput digitalO0;
private DigitalInput digitalI0;
private DigitalOutput digitalO1;
private DigitalInput digitalI1;
private DigitalOutput digitalO2;
private DigitalInput digitalI2;
private DigitalOutput digitalO3;
private DigitalInput digitalI3;
private DigitalOutput digitalO4;
private DigitalInput digitalI4;
private DigitalOutput digitalO5;
private DigitalInput digitalI5;
private DigitalOutput digitalO6;
private DigitalInput digitalI6;
private DigitalOutput digitalO7;
private DigitalInput digitalI7;
private DigitalOutput digitalO8;
private DigitalInput digitalI8;
private DigitalOutput digitalO9;
private DigitalInput digitalI9;
// The strictly digital-inputs.
private DigitalInput digitalInput0;
private DigitalInput digitalInput1;
private DigitalInput digitalInput2;
private DigitalInput digitalInput3;
private DigitalInput digitalInput4;
private DigitalOutput[] digitalOArray = { digitalO0, digitalO1,
digitalO2, digitalO3, digitalO4, digitalO5, digitalO6,
digitalO7, digitalO8, digitalO9 };
private DigitalInput[] digitalIArray = { digitalI0, digitalI1,
digitalI2, digitalI3, digitalI4, digitalI5, digitalI6,
digitalI7, digitalI8, digitalI9 };
private DigitalInput[] digitalInputArray = { digitalInput0,
digitalInput1, digitalInput2, digitalInput3, digitalInput4 };
/**
* Called every time a connection with IOIO has been established.
* Typically used to open pins.
*
* @throws ConnectionLostException
* When IOIO connection is lost.
*
* @see ioio.lib.util.AbstractIOIOActivity.IOIOThread#setup()
*/
@Override
protected void setup() throws ConnectionLostException {
for(int i = 0; i<digitalOArray.length; i++){
if(digitalFragmentObject.getIOModeSwitch(i).isActivated()){
digitalOArray[i] = ioio_.openDigitalOutput(i + 9);
}else{
digitalIArray[i] = ioio_.openDigitalInput(i + 9);
}
}
for(int i = 0; i<digitalInputArray.length;i++){
digitalInputArray[i] = ioio_.openDigitalInput(i + 9);
}
// for (int i = 0; i < pinArray.length; i++) {
// pinArray[i] = ioio_.openDigitalOutput(i + 1, false);
// }
}
/**
* Called repetitively while the IOIO is connected.
*
* @throws ConnectionLostException
* When IOIO connection is lost.
*
* @see ioio.lib.util.AbstractIOIOActivity.IOIOThread#loop()
*/
@Override
public void loop() throws ConnectionLostException {
// led_.write(!button_.isChecked());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
for(int i = 0; i < digitalOArray.length;i++){
digitalOArray[i].write(digitalFragmentObject.getIOPowerSwitch(i).isActivated());
}
// for (int i = 0; i < pinDigArray.length; i++) {
// if(chosePin1.getValue() == i + 1){
// pinDigArray[i].write(true);
// }
}
public IOIO getIOIOBoardInstance(){
return ioio_;
}
}
__________________________________________________________________
Essentially I want to listen that the switches on the fragment page are
changed and thus the looper should reset itself and re-open the pins as
inputs or outputs corresponding to the switches... any ideas why this
implementation does not work? Thanks.
--
You received this message because you are subscribed to the Google Groups
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/groups/opt_out.