Announcement

Collapse
No announcement yet.

Verbindung zu Pocket PC von eigener Desktop Application

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verbindung zu Pocket PC von eigener Desktop Application

    Hi wiedermal,

    wer kann mir helfen herauszufinden, wie ich eine Verbindung zu einem Pocket PC(Windows CE) über ein eigenes Programm vom Desktop aus herstelle. Das ganze soll vorzugsweise über das .Net Framwork ablaufen. Als einzusetzende Programmierspachen hierfür stehen Visual Studio .NET mit C# oder auch Delphi zur verfügung.

    Ich habe vor allem Grundlegende Probleme, den Pocket PC überhaupt anzusprechen. Über eine IP-Adresse funktioniert das bei mir zu Mindest nicht und über einen von ActivSync vergebenen Namen auch nicht.

    Letztendlich soll MS SQL-Server 2.0 CE(PPC) mit der Desktop-Datenbank(bei mir Access) syncronisiert werden.

    Brauche dringen HILFE, evtl. auch gute Links oder Buchtips zu Lösungen für speziell die beschriebene Problematik wäre mir sehr hilfreich.

    Mit besten Grüßen, Thomas T.

  • #2
    Hallo Thomas,

    ich habe das ganze über einen Webservice gelöst. Du schreibst dir also einen Webservice, der auf deinem DesktopPC läuft. Deine Application auf dem PDA ruft diesen Webservice dann auf - da stehen dir ja dann alle Wege offen. Du brauchst nur eine IP-Verbindung zwischen PDA und DesktopPC. Die hast ja aber schon, wenn du deinen PDA in die Docking-Station stellst. Hast du einen PDA mit WLan, kannst du das sogar darüber abgleichen.
    Wenn du weitere Infos brauchst, musst du noch mal schreiben.

    cu Enric

    Comment


    • #3
      Hallo Enrico,

      vielen Dank schon mal für deinen Tip, ist mir schon mal eine große Hilfe, dass ich weiß in welche Richtung meine Bemühungen laufen sollten.
      Ich habbe auch schon zwei Bücher zu dem Thema bestellt, die sind aber noch nicht da.

      Ich habe das noch nicht ganz verstanden, wie das mit der IP-Adresse vor sicht geht.
      Unter welcher IP ist mein PDA vom Desktop aus ansprechbar?
      Auf dem PDA habe ich schon einige Anstrengungen vorgenommen um eine IP-Adresse vorzugeben. Auf diese konnte aber vom Desktop aus (mit ping) nicht zugegriffen werden.

      Mein PDA ist über eine Dockingstation und ActiveSync mit dem Desktop syncronisiert, aber so wie in einerm gewöhnlichen Netzwerk üblich kann ich den PDA(Über IP oder Hostname) nicht erreichen.

      Mit .Net-Programmierung habe ich zum Thema PDA-Programmierung auch gerade angefangen. So habe ich über die Realisierung von Webservices erst ansatzweise gehört und noch keine genaue Realisierungsstrategie.

      Beispielcode oder etwas zum Lesen würde mir sehr helfen.

      Auf die SQL-Datenbank kann ich dann wohl über ADO.NET zugreifen sofern ich eine Netzwerkverbindung zwischen Desktop-Programm und PDA-Programm hergestellt habe, oder?

      Freue mich auf deine Antwort.
      Gruß, Thomas

      Comment


      • #4
        Hallo Thomas,

        welche IP der PDA bekommt kann ich dir auch noch nicht sagen, ich hab das auch noch nicht raus bekommen, das ist aber für dein Problem auch nicht von Interesse. Du brauchst nur die IP deines DesktopPC's, denn PDA greift ja auf den PC zu und nicht umgekehrt. Versuch doch einfach mal deinen PDA in die Dockingstation zu stellen und im IE auf dem PDA die IP deines PC's einzugeben (Voraussetzung der IIS läuft auf dem PC). Der müsste dir dann die Startseite anzeigen. Wenn das geht, hast du erst mal eine funktionierende Verbindung. Jetzt kannst du mit dem Webservice weiter machen. Wenn du mal in der Hilfe von VisualStudio schaust, findest du gute Anleitungen zum Einstieg in dieses Thema.

        Der Datenabgleich funktioniert dann so:
        Der PDA ruft einen Webservice auf dem PC auf, dieser gibt z.B. ein DataSet an den PDA zurück.
        Jetzt kann die Application auf dem PAD mit den Daten arbeiten. Zum Abgleichen ruft der PDA wieder einen Webservice auf und übergibt diesem das DataSet als Parameter. Der Webservice seinerseits gleicht dann die Daten mit der Datenbank (SQL-Server, Access...) ab. Das heißt, es besteht keine direkte Verbindung zwischen dem PDA und der Datenbank auf dem PC.

        cu Enric

        Comment


        • #5
          Hallo Enrico,

          danke für deine ausführliche und Erklärung.
          Mein Problem bestet darin, dass ich die Software für eine vielzahl von Kunden schreibe, von denen ich nicht erwarten kann dass die alle denn IIS installieren. Die sollen das Ding in die Dockingstation stellen und alles andere funktioniert von selbst. Vorrausgesetzt unser Desktopprogramm ist installiert.
          Hast Du da auch nen Tip?
          Für Delphi gibts ne Komponenten, die eine Verbindung zum PDA aufbaut(also sollte das auch ohne IIS gehen). Diese liest bestimmet Informationen des PDA und kann z.B. Dateien verschieben. Leider ist die Komponente recht unflexibel, so habe ich z.B. keine Datenbankunterstützenden elemente. Und ich kann auch keine DataSet's verwenden, da ich mit Delphi 5 arbeite(ohne DotNET unterstützung).
          Ich habe auch die Möglichkeit mit C# im VisualStudio zu arbeiten, da ich auch für den PDA hiermit programmiere.Ich habe auch schon ne Menge Informationen gefunden, wie ich mit ADO.NET den Datenbankabgleich realisieren kann,
          aber bei dem direkten Verbindungsaufbau mit dem PDA scheiterts bei mir.

          Wenn Du da noch ne Idee hast wäre ich Dir sehr dankbar.

          Gruß Thomas

          Comment


          • #6
            Hallo Thomas,

            also wenn du die Softwareausstattung deiner Kunden nicht kontrollieren kannst, dann ist das mit dem IIS natürlich keine gute Idee. Obwohl ich denke dass dieser in der nächsten Zeit immer mehr zur Grundausstattung eines Windows PC's gehört.

            >Die sollen das Ding in die Dockingstation
            >stellen und alles andere funktioniert von
            >selbst.

            Daran hatte ich auch schon gedacht, und ich denke, das sollte auch das Ziel das ganzen sein, denn dann ist das für den User am einfachsten. Aber leider habe ich dafür auch noch keine Lösung.

            Das ActiveSync bietet aber eine API, über die sich vielleicht so etwas realisieren lässt. Ich muss mich in der nächsten Zeit noch mal mit dem Thema beschäftigen. Wenn du eine schon eher auf eine Lösung kommst, kannst du mir einen Tipp geben.

            Einen andere Idee Dateien zu übertragen wäre über eine Socket-Verbindung. Aber auch die müsste durch ein Ereignis angeschoben werden. Das heißt der PDA müsste erkennen, wenn er in die Docking-Station gestellt wird.

            Na ja, so eine richte Lösung kann ich dir derzeit nicht bieten, aber ich bleibe mal an der Sache dran.

            cu Enric

            Comment


            • #7
              Hallo Enrico,

              ich habe mich in den letzten Tage ausführlich mit Sockets beschäftigt. Hier habe ich vorerst mit den Möglichkeiten experimentiert auf Tcp-Ebene(TcpListener und TcpClient) einfache Byte-Ströme zwischen Pocket-PC und Desktop-PC zu versenden. Das funktioniert ganz gut.
              Für den Desktop habe ich einen Server geschrieben, der auf Anfragen wartet. Und vom Pocket-PC kann ich über die IP des PC's und den erwählten Port den Server ansprechen und eine Kommunikation aufbauen.
              Leider habe ich für das direkte Versenden von DataSet's über TCP-Sockets noch nichts gefunden.
              Die Ereignisse der Dockingstation können über die Registry angestoßen werden zumindest auf dem PC. Der Pocket-PC hat aber auch eine Registry und schätze das Programme hier auch informiert werden können, wenn eingesteckt wurde.

              Sieht alles so aus, als ob ich eine Wrap-Klasse programmieren muss, die DataSet mit Hilfe eines eigenen Protokoll's versendet und auf der anderen Seite wieder zusammenbaut(ohne Datenverlust). Kann kompliziert werden. Da würde ich den Kochtopf bestimmt zweimal erfinden.

              Mir erschien die Idee interessant über das API von ActiveSync so etwas zu realisiern.
              Weißt Du wo ich Informationen zu diesem API finde?

              Ich hoffe ich konnte Dir auch etwas weiter helfen.

              Gruß Tom

              Comment


              • #8
                Hallo Thomas,
                das klinkt doch schon ganz gut, was du schreibst. Wenn du schon Daten zwischen deinem Pocket-PC und dem Desktop-PC ausgetauscht hast, dann sollte das auch mit dem DataSet kein Problem mehr darstellen. Du kannst doch das DataSet mit WriteXML in eine XML-Datei umwandeln und diese dann einfach zum Server schicken. Du musst nur aufpassen, wenn du Spalten in deinen Tabellen hast, die kompl. leer sind. Die werden dann nämlich bei ReadXML nicht mit im DataSet aufgebaut. Das ist ein Problem vom CF, da kannst du bei WriteXML nicht angeben, dass er das Schema mit speichern soll. Ich hab dann immer mit WriteXMLSchema dieses in eine extra Datei gespeichert und vor dem ReadXML erst mein DataSet mit ReadXMLSchema aufgebaut.

                Was die API von ActiveSync betrifft, geht doch mal auf die Seite http://msdn.microsoft.com/library/default.asp und suche mal nach ActiveSync. Ich denke da findest du bestimmt was.

                Also, viel Erfolg beim Weiterforschen

                cu Enric

                Comment

                Working...
                X