Jump to content
Sign in to follow this  
Patric

Erfahrungen mit Python4android / buildozer? (SIGSEGV Problem bei Servo-Brick)

Recommended Posts

Hallo zusammen,

 

ich versuche gerade, ein Tinkerforge-Programm in Python vom PC auf mein Smartphone zu portieren. Dazu benutze ich das Programm buildozer. Auf dem PC läuft das Programm, auf dem Smartphone stoppt es sofort nach Aufruf wieder. Wenn ich die hier letzte Zeile (ipcon.connect...) allerdings auskommentiere, läuft das Programm auch auf dem Smartphone, aber ist natürlich nicht nutzbar.

 

Hat jemand von Euch Erfahrung mit der Portierung und könnte mir einen Tipp geben? Müsste ich vielleicht vor der Portierung etwas bei der UUID oder dem Port ändern? Wie finde ich dann die Angaben?

 

Vielen Dank im voraus

Patric

 

Hier ein Auszug:

 


#!/usr/bin/env python
# -*- coding: utf-8 -*-  

from kivy.app import App
from tinkerforge.ip_connection import IPConnection
from tinkerforge.brick_servo import Servo

HOST = "localhost"
PORT = 4223
UID = "5VF7gc" # Change to your UID

ipcon = IPConnection() # Create IP connection
servo = Servo(UID, ipcon) # Create device object
#ipcon.connect(HOST, PORT) # Connect to brickd ####################### Programm stoppt nicht, wenn auskommentiert

 

Edit: Ich habe zwischenzeitlich etwas mehr herausgefunden und die Überschrift ergänzt.Vielleicht sollte ich dafür einen anderen Thread aufmachen, weil das Problem eventuell gar nicht bei buildozer liegt. Mir fehlen aber die Kenntnisse, um das zu beurteilen.

Share this post


Link to post
Share on other sites
Guest pbachert

Hallo nochmal,

 

länger suchen hilft vielleicht auch hier. Ich habe gerade den online-Brickviewer gesehen und werde mal schauen, ob ich damit weiterkomme.

 

Patric

Share this post


Link to post
Share on other sites

Ich habe letztens mit buildozer/kivy gearbeitet - ganz schön tricky. hast du in der buildozer.spec (application requirements) die tinkerforge-module deklariert? es gibt auch einen abschnitt

# (str) Android logcat filters to use
android.logcat_filters = *:S python:D

darin, den du aktvieren solltest. dann bekommst du beim debug eine exakte auskunft, an welcher stelle genau und warum dein programm abstürzt.

-md

Share this post


Link to post
Share on other sites

Hallo McDuff,

 

danke für Deine Hilfe. Ich hatte bisher in buildozer.spec den log level auf 2 gesetzt, dann kann ich zumindest bei der Erstellung der apk ganz gut den Prozess und die Fehler verfolgen. Ich musste z.B. noch hostpython2 in den requirements aufführen. Tinkerforge habe ich in den requirements aufgeführt und den Ordner mit den bindings in den gleichen Ordner wie main.py kopiert.

 

Wenn ich die apk-Datei erstelle, bekomme ich keine Fehlermeldungen, nur beim Aufruf auf dem Smartphone selbst stürzt sie anscheinend beim Aufruf von ipcon.connect() ab. Ich habe es mit buildozer adb logcat versucht, aber auch nichts erhalten. Ich werde es mal mit Deinem Eintrag in buildozer.spec versuchen und dann weitersehen.

 

Viele Grüße

Patric

Share this post


Link to post
Share on other sites

Ich nochmal,

 

hier die Ausgabe von adb logcat *:F

 

--------- beginning of system

--------- beginning of main

--------- beginning of crash

05-19 21:24:58.883 24698 24698 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x4 in tid 24698 (rg.test.ttrobot)

05-19 21:24:58.927 24730 24730 F DEBUG  : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

05-19 21:24:58.928 24730 24730 F DEBUG  : LineageOS Version: '14.1-20170512-NIGHTLY-serranoltexx'

05-19 21:24:58.928 24730 24730 F DEBUG  : Build fingerprint: 'samsung/serranoltexx/serranolte:4.4.2/KOT49H/I9195XXUCNE6:user/release-keys'

05-19 21:24:58.928 24730 24730 F DEBUG  : Revision: '0'

05-19 21:24:58.928 24730 24730 F DEBUG  : ABI: 'arm'

05-19 21:24:58.929 24730 24730 F DEBUG  : pid: 24698, tid: 24698, name: rg.test.ttrobot  >>> org.test.ttrobot <<<

05-19 21:24:58.929 24730 24730 F DEBUG  : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4

05-19 21:24:58.929 24730 24730 F DEBUG  :    r0 00000001  r1 00000000  r2 00000000  r3 ab5f9758

05-19 21:24:58.929 24730 24730 F DEBUG  :    r4 a8dbfcc0  r5 00000000  r6 00000000  r7 9d2cff68

05-19 21:24:58.929 24730 24730 F DEBUG  :    r8 b50e0008  r9 b4304400  sl b430448c  fp bef0e60c

05-19 21:24:58.929 24730 24730 F DEBUG  :    ip 00000002  sp bef0e440  lr 9d1d6979  pc 9d1cc63a  cpsr 400f0030

05-19 21:24:58.932 24730 24730 F DEBUG  :

05-19 21:24:58.932 24730 24730 F DEBUG  : backtrace:

05-19 21:24:58.932 24730 24730 F DEBUG  :    #00 pc 000bf63a  /mnt/expand/385d0333-6287-4832-849d-f19207f181ae/app/org.test.ttrobot-1/lib/arm/libpython2.7.so

05-19 21:24:58.932 24730 24730 F DEBUG  :    #01 pc 000c9975  /mnt/expand/385d0333-6287-4832-849d-f19207f181ae/app/org.test.ttrobot-1/lib/arm/libpython2.7.so

 

SIGSEGV-Fragen habe ich bei der Suche im Forum schon finden können, mir fehlen aber die Kenntnisse, um daraus für mich eine Antwort/Lösung zu finden.

 

Viele Grüße und vielen Dank für jede Hilfe

Patric

Share this post


Link to post
Share on other sites

Tinkerforge auf Android? Im Code lese ich localhost für die Ipconnection?

Das setzt voraus dass da im Android System ein Brick Dämon laufen müsste. Auf dem PC wird das u.u. zutreffen.

Für Android gibt es leider keine Portierung vom BrickD.

Share this post


Link to post
Share on other sites

@MacDuff, Nic,

 

vielen Dank für Eure Antworten. Ich merke daran demütig, dass das ganze Thema meine Fähigkeiten weit übersteigt und ich die ganze Problematik dahinter gar nicht überblicke. Mein kleiner Roboter wird also wohl am Laptop hängen bleiben.

 

Viele Grüße

Patric

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...