Ich habe ein Arduino konfiguriert, um Dinge auf TX-Port zu schreiben, die mit meinem Raspberry Pi 3 mit Android Things Developer Vorschau 3 verbunden ist (Ich bin sicher, dass der RX/TX Kabel sind richtig konfiguriert und Spannungen sind OK).Android Things 3 kann nicht lesen von Rxtx auf Raspberry PI 3
Ich versuche eine lange Zeit, Daten zu lesen und Daten mit PeripheralManagerService von Android Things libs zu schreiben.
Es ist ein Fehler, wenn ich die app starten:
04-11 16: 26: 13,665 163-163 /? I/peripherie: type = 1400 audit (0.0: 44): avc: verweigert {read write} für name = "ttyAMA0" dev = "tmpfs" ino = 1203 skontext = u: r: peripherenman: s0 tcontext = u: object_r: Gerät: s0 tclass = chr_file permissiv = 1
04-11 16: 26: 13.665 163-163 /? Ich/peripherie: type = 1400 audit (0.0: 45): avc: verweigerte {open} für path = "/ dev/ttyAMA0" dev = "tmpfs" ino = 1203 skontext = u: r: peripherie: s0 tcontext = u: object_r: Gerät: s0 tclass = chr_file permissiv = 1
04-11 16: 26: 13.665 163-163 /? I/peripherie: type = 1400 audit (0.0: 46): avc: verweigert {ioctl} für path = "/ dev/ttyAMA0" dev = "tmpfs" ino = 1203 ioctlcmd = 5401 scontext = u: r: periphere: s0 tkontext = u: object_r: Gerät: s0 TClass = chr_file permissive = 1
Mein Code:
public class MainActivity extends Activity {
private final int BUFFER_SIZE = 64;
private UartDevice rxtx;
public void configureUartFrame(UartDevice uart) throws IOException {
// Configure the UART port
uart.setBaudrate(9600);
}
public void writeUartData(UartDevice uart, String msg) throws IOException {
byte[] buffer = msg.getBytes();
int count = uart.write(buffer, buffer.length);
Log.d(TAG, "Wrote " + count + " bytes to peripheral");
}
public void readUartBuffer(UartDevice uart) throws IOException {
byte[] buffer = new byte[BUFFER_SIZE];
int count;
while ((count = uart.read(buffer, buffer.length)) > 0) {
Log.d(TAG, "Read " + count + " bytes from peripheral");
Log.d("Message", new String(buffer));
}
}
@Override
protected void onStart() {
super.onStart();
try {
writeUartData(rxtx, "teste");
readUartBuffer(rxtx);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PeripheralManagerService manager = new PeripheralManagerService();
manager.getUartDeviceList();
List<String> portList = manager.getUartDeviceList();
if (portList.isEmpty()) {
Log.i(TAG, "No UART port available on this device:");
} else {
Log.i(TAG, "List of RXTX available ports: - " + portList);
}
try{
rxtx = manager.openUartDevice(portList.get(0));
configureUartFrame(rxtx);
}catch (IOException e){
e.printStackTrace();
}
}}
Jemand weiß, was es sein könnte?
Sie könnten viel mehr Hilfe auf SO erhalten, wenn Sie Texttext und damit verbundenen Fehler (kopieren und einfügen) anstelle von einigen Links, die schließlich in wenigen Tagen tot sein wird. Nur ein Gedanke :) –
Ok! Ich habe bearbeitet. thx – Stould
Verbindest du dich direkt mit den RX/TX-Pins (8/10) am RPi3-Header, oder ist das ein USB-TTL-Kabel? Wenn Sie den nativen UART verwenden, haben Sie den Modus korrekt für die Dokumente konfiguriert? https://developer.android.com/things/hardware/raspberrypi.html#configuring_the_uart_mode – Devunwired