Beiträge von nomad

    hi,
    vielen dank fuer deine arbeit und muehe.
    hab dein ServiceDemoProject runtergeladen und versucht zu testen:
    - Import ok
    - dein project -> auf android 4.4
    - habs dann auf 4.1.2 umgestellt.
    - manifest
    - compile:
    - 1) save all
    - 2) refresh
    - 3) clean
    - 4) buildProject
    soweit so gut
    - Run: your project contains errors -> fix
    - da ich leider keinerlei errors entdecken kann.....

    aber trotzdem vielen dank, ich kann ja teile daraus benutzen....


    hab unterdessen ev. die loesung meiner probleme gefunden:
    im web: usb-serial-for-android -
    - Android USB host serial driver library for CDC, FTDI,
    - Arduino and other devices. - Google Project Hosting.htm
    http://code.google.com/p/usb-serial-for-android/
    oder:
    https://github.com/mik3y/usb-serial-for-android

    da gibts ein uraltes project (2011)
    vorgehen: usbSerialExample.zip runterladen, nur das project ohne die
    vorgeschlagenen jar files:
    - compile
    - device_list.xml ergaenzen
    ( orignal app starten mit otg + microcontroller)
    - neue vendor eintraege)
    - das project um libs erweitern
    - von einer anderen serialApp android-support-v4.jar einfuegen
    - da die Baud-rate im quellcode verdrahtet ist, muss man dort die gewuenschte baud-rate eintragen
    - bei mir 9600 , original 115200
    - recompile
    - run:
    - es erscheinen 2 buttons:
    - den button benutzen, welcher FTDI-Driver anzeigt
    - 2. screen:
    - run with received Bytes: + der Teststring vom Microcontroller...
    - bin damit recht zufrieden
    - simple, einwenig oldStyle :)) aber ok


    also ich wuerde meinen, dass dieser thread erledigt ist...
    nochmals vielen dank fuer deine muehe, geduld und arbeit


    als attachment die beiden geaenderten java-files (jar geht leider nicht)



    gruss nomad

    hi,
    danke fuer deine antwort.
    also:
    - 1) die beiden attachments entsprechen dem /src-folder


    - 2) Der DatenString vom Microcontroler entspricht: "$11:22:33:-44:"
    den kann ich auch in 4 einzelne variable parsen


    - 3) Die seriellen Settings sind im MyReaderService aufgefuehrt
    - die entsprechen denen von Android USB Serial Monitor Lite-Package


    - 4) Die Sache mit dem Microcontroller ist einwenig komplex
    die basis ist ein Linux project:
    - a) es sind 2 parallax propeller 32bit controller (spin)
    - kommuninziert wird via XBee (RS232) Sender (in C)
    - Linux mit XBEE (RS-232) als Empfaenger (low-level-rs-232-funktionien)
    - fuer linux ist das eine einfache serielle verbindung
    - b) vor ca. 6 wochen bekam ich das tablet in die haende:
    - da opengl GLES 20 funktioniert (incl. Stereo SideBySide)
    - rs232 funktioniert ja auch.....
    -also hab ichs mal ausprobiert.....:)


    - b) android sieht dies auch als serielle verbindung an.
    - also hier sind keine probleme


    - 5) in der zwischenzeit hab ich ein BindDemo im web gefunden
    package: von: edu.dartmouth.cs.binddemo"
    - da liefert MyService.java (den Teststring $11:22:33:-44:) der
    - MainActivitiy.java
    - da hab ich i.A. das problem die serielle function einzubauen- .)


    ich hab nochmals dein posting durchgelesen:



    koenntest du mir bitte erklaeren wie das mit dem Callback funktioniert.
    die sache mit Services, ist auf meinen mist gewachsen....:)

    dass koennte ev.die loesung fuer meine probleme sein.
    also mein ziel:


    - mainActivity
    - (opengl mit einem button) start -> serielle kommunication
    - init, open serialStuff)


    - im RunLoop holt sich die opengl-function dann die daten
    - zeichnet die 3d-objecte



    - zwischenschritt:
    mainactivity textview mit 1 button


    vielen dank fuer deine hilfe
    nomad

    hi,
    also zu den fragen.
    meine urspruengliche frage sollte eigentlich erledigt sein.
    hab ein bisschen ueber die straenge geschlagen....
    funktioniert jetzt einigermassen


    hab das ganze jetzt Services umgestellt.
    leider ist die urspruengliche app eigentlich ein schrittezaehler :)
    aber ich nehm was ich finde...


    an fuer sich laeuft das ganze (also der serielleTeil)
    folgendes Problem(e)
    in MainActivity

    Code
    private EreignisHandler ereignisHandler = new EreignisHandler();
      
    	private class EreignisHandler extends Handler {
    		@Override
    		public void handleMessage(Message msg) {
    			textView.setText(Integer.toString(msg.what));
    			//textView.setText(msg);
    			//textView.append(msg);
    		}
    	}


    und in MyReaderService



    ich schaff es im augenblick nicht den erhaltenen String vom Controller also
    "$11:22:33:-44:"
    im service in eine string message um zuwandeln ????
    grosse verstaendnisschwierigkeiten.


    dasselbe im service.
    im web findet man schon snippets, die aber voellig ohne zusammenhang auskommen.


    ueber hinweise weise waere ich sehr froh.


    als attachments:
    - MySerialReader.zip (project) kann nicht rauf geladen werden zu gross 1.52mb :)
    - MainActivity.zip (main)
    - MyReaderService.zip (service)


    gruss nomad

    hi marco
    vielen dank fuer deine antwort:
    also
    die ursprung app ist "AndroidSerialMonitorLite -> google play und als project


    der grund fuer diese app:
    das tablet als HMD - system benutzen (oculus rift)
    - Stereo SideBySide mit opengl GLES 20 -> das funktioniert schon
    - HeadTracker fuer HMD -> 2 Microcontroller (compass und gyroscope) -> daher der SerialReader
    - die serielle verbindung ist eigentlich eine drahtlose XBEE verbindung
    - beim tablet benutz ich ein OTGkabel + xbee (das funzzt auch)
    - hab das ganze schon mit Linux gemacht, alles ok


    unterdessen versuch ich den reader als Service mit Messages hin zu bekommen
    also 1.main-activity start, stop, + Textview


    da funktioniert noch nicht alles.


    sobald ich an meinen windows sitze schick ich dir mal paar zip files....
    vielen dank
    gruss nomad

    hallo,
    da logCat nicht benutzbar, hab ich einfach am ende von run() ein mStop=true;
    dann bleibt mal alles stehen:


    hab jetzt einige sachen gefunden:


    tokens ist ein string array:
    myString = $11:22:33:44:


    - in: tokens = myStr.split(delims);


    - tokens[0] ist leer
    - tokens[1] = 11
    - ....
    tokens[4] = -44


    das waere vermutlich der 1.fehler


    kann jetzt immerhin mit


    - gx = Integer.parseInt(tokens[1]);
    gy = Integer.parseInt(tokens[2]);
    gz = Integer.parseInt(tokens[3]);
    compass = Integer.parseInt(tokens[4]);


    meine vars zuweisen und ausdrucken.


    aber sobald kein mStop vorhanden (true) dann kommt es zu Abbruechen.
    vermutlich hat das etwas mit dem thread (Runnable - Run()) zu tun ???
    Thread.sleep zum beispiel ???


    da diese app eigentlich nur ein subprogramm eines opengl programms werden soll
    frag ich mich ob es moeglich ist die serialReader-App ganz ohne Threads zu
    entwickeln also:


    1. activity openglProg:
    - 1 -> 2. activity -> SerialReader
    -> SerialReader (open SerialPort mit Init)
    - 2 -> while loop (opengl)
    -> (serialRead)
    -> calculations
    -> drawing 3d-cubes
    - 3) on exit:
    - 1) -> SerialRead (close SerialPort)
    -> exit SerialRead
    - 2) -> exit opengl


    waere so was moeglich....


    fuer hinweise waere ich dankbar


    gruss nomad

    hallo,


    Hardware Assus Tablet MemoPad
    Android: 4.1.2


    im augenblick versuche ich Daten eines microcontroller via usb-Otg kabel
    zu lesen.
    mit hilfe von original: Android SerialMonitorLite funktioniert das auch.
    keine Probleme
    da ich nur lesen moechte, hab dann eine kleine app entwickelt.
    dass funktioniert auch.


    nun die fehler:
    - wenn ich nur den code ohne den ausdokumentierten teil laufen lasse
    ist alles ok


    - sobald der ausdokumentierte code ins spiel kommt
    - Fehler: Applikation wurde leider beendet


    da ich das im augenblick nicht debuggen kann , haengt ja am controller.
    in der entwicklung von apps bin ich ein newbie . mach das erst seit ca.4 wochen.


    im ausdokumentierten teile ist auch code-varianten die ich ausprobiert habe


    ich waere froh, wenn mir jemand helfen koennte
    ich moechte aus dem InputString: "$11:22:33:-44:" via convert ein integer tokArray machen, dann
    anschliessend die werte des array einzelnen variable zu weisen.


    um tips tricks hinweise waere ich dankbar
    gruss stephan


    als attachment: SerialReader.java