Hola gente del Foro!!!!
Este es mi primer post y mi primer post en español. realmente no lo puedo creer!! siempre tuve que escribir en ingles y no es lo mismo....bueno. aca va mi problemita:
Esta mañana me ha llegado mi placa OLIMEX A20 Olinuxino MICRO corriendo Android. Esta placa la voy a utilizar para fabricar un PLC y ya que la placa cuenta con GPIO incluidas quiero poder usarlas. El problema es que no se como hacer esto. tengo mi programa desarrollado en Basic4android porque no quiero complicarme con el C o con java pero veo que no es tan facil la cosa. La ayuda de Olimex para desarrollos sobre android dice lo siguiente:
*) GPIO using Android SDK
Basicly you should read and write to the filesys. Make sure that
your app is running as root, or else nothing will happen.
The demo program toggle LED1 on every button press.
All read/write methods are realized in GPIO.java file.
Es posible leer y escribir el archivo filesys desde Basic4Android???
El archivo GPIO.java es el siguiente:
Alguien tiene alguna idea como puedo hacer para controlar las GPIO de la placa desde Basic4Android???
Muchas gracias,
Andres
Este es mi primer post y mi primer post en español. realmente no lo puedo creer!! siempre tuve que escribir en ingles y no es lo mismo....bueno. aca va mi problemita:
Esta mañana me ha llegado mi placa OLIMEX A20 Olinuxino MICRO corriendo Android. Esta placa la voy a utilizar para fabricar un PLC y ya que la placa cuenta con GPIO incluidas quiero poder usarlas. El problema es que no se como hacer esto. tengo mi programa desarrollado en Basic4android porque no quiero complicarme con el C o con java pero veo que no es tan facil la cosa. La ayuda de Olimex para desarrollos sobre android dice lo siguiente:
*) GPIO using Android SDK
Basicly you should read and write to the filesys. Make sure that
your app is running as root, or else nothing will happen.
The demo program toggle LED1 on every button press.
All read/write methods are realized in GPIO.java file.
Es posible leer y escribir el archivo filesys desde Basic4Android???
El archivo GPIO.java es el siguiente:
B4X:
package olimex.a10s.toogleled;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GPIO{
public String port;
public String ext;
public int pin;
public boolean output(int value) {
String command = String.format("echo %d > /sys/class/gpio_sw/%s/data", value, port);
try {
Runtime.getRuntime().exec(new String[] {"su", "-c", command});
return true;
} catch (IOException e) {
return false;
}
}
public String readinput(){
Process p;
String command = String.format("cat /sys/class/gpio_sw/%s/data", port);
try {
p = Runtime.getRuntime().exec(new String[] {"su", "-c", command});
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder text = new StringBuilder();
String line;
while((line = reader.readLine()) != null){
text.append(line);
text.append("\n");
}
return text.toString();
} catch (IOException e) {
return "";
}
}
public boolean setcfg(int cfg){
String command = String.format("echo %d > /sys/class/gpio_sw/%s/mul_sel", cfg, port);
try {
Runtime.getRuntime().exec(new String[] {"su", "-c", command});
return true;
} catch (IOException e) {
return false;
}
}
public String readcfg(){
Process p;
String command = String.format("cat /sys/class/gpio_sw/%s/mul_sel", port);
try {
p = Runtime.getRuntime().exec(new String[] {"su", "-c", command});
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder text = new StringBuilder();
String line;
while((line = reader.readLine()) != null){
text.append(line);
text.append("\n");
}
return text.toString();
} catch (IOException e) {
return "";
}
}
public int input(){
char ch;
String cfg;
cfg = readinput();
if(cfg.isEmpty())
return -1;
else{
ch = cfg.charAt(0);
if(Character.isDigit(ch))
return Character.getNumericValue(ch);
else
return -1;
}
}
public int getcfg(){
char ch;
String cfg;
cfg = readcfg();
if(cfg.isEmpty())
return -1;
else{
ch = cfg.charAt(0);
if(Character.isDigit(ch))
return Character.getNumericValue(ch);
else
return -1;
}
}
//Constructor
public GPIO(String port, String ext, int pin){
this.port = port;
this.ext = ext;
this.pin = pin;
}
}
Alguien tiene alguna idea como puedo hacer para controlar las GPIO de la placa desde Basic4Android???
Muchas gracias,
Andres