Forum: PC-Programmierung Pocket-PC, Windows CE, COM-Schnittstelle


von Jörg Zinke (Gast)


Lesenswert?

Hallo,

für eine Kopplung zwischen einem µC (CII von Conrad) und meinem 
Pocket-PC (iPAQ 1915) möchte ich über die serielle Schnittstelle eine 
Langzeiterfassung meiner Solaranlage realisieren.
Ich habe auch schon embedded Visual Basic 3.x einigermaßen verstanden 
und auch eine COM-Applikation auf meinen Pocket-PC draufgekriegt.
Das Programm scheint zu funktionieren. Beim Starten der Funktion zum 
Öffnen der COM-Schnittstelle meldet der Pocket-PC aber einen Fehler 
"port unavailable". Ich habe den ganzen Pocket-PC durchsucht um so eine 
Art Systemsteuerung zum Einstellen der COM-Ports zu finden. Leider nicht 
erfolgreich.
Muss man die Einstellungen im System des Pocket vornehmen? In der 
Routine zum  Öffnen des Ports stehen eigentlich alle Sachen drin 
(Geschwindigkeit, Protokoll ...). Und wenn ja, wo finde ich die 
Einstellungen?

Gruß Jörg

von Christian R. (supachris)


Lesenswert?

Sicher, dass du die DCB Struktur richtig initialisiert hast? Bei mir 
ging es sogar mit der Bluetooth-COM Schnittstelle einwandfrei (XDA 
mini).


void CCAN_BTDlg::OnConnect()
{

  hFile=CreateFile(TEXT("COM5:"),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL 
);
  CString text = "Keine Verbindung!";

  if (hFile == NULL)MessageBox(text);
  else
  {
    DCB dcb;
    COMMTIMEOUTS WTimeOuts;
    dcb.DCBlength = sizeof (DCB);
    GetCommState(hFile,&dcb);
    dcb.fBinary = TRUE;
    dcb.BaudRate = 115200;
    dcb.ByteSize = 8;
    dcb.Parity = NOPARITY;
    dcb.StopBits = ONESTOPBIT;
    SetCommState(hFile,&dcb);
    memset(&WTimeOuts,0,sizeof(COMMTIMEOUTS));
    SetCommTimeouts(hFile,&WTimeOuts);
  }
}

void CCAN_BTDlg::OnDisconnect()
{
  CloseHandle(hFile);
}

von Markus (Gast)


Lesenswert?

Hi Jörg,

ein beliebtes Problem unter Windows Mobile sind die im Hintergrund 
weiterlaufenden Programme, die man vermeintlich beendet hat. Hast Du mal 
geschaut, ob evtl. ActiveSync noch läuft (Start -> Einstellungen -> 
System -> Speicher -> Ausgeführte Programme). Das hält nämlich den 
COM-Port geöffnet, über den Du Deine Daten übertragen müßtest. Er ist 
dadurch für andere Anwendungen "unavailable". Bist Du außerdem sicher, 
daß Du den richtigen COM-Port geöffnet hast? COM2: ist i.d.R. die 
IR-Schnittstelle, COM5: oder auch COM8: sind Bluetooth zugeordnet. 
Welches der COM-Port der Dockingstation (des Adapterkabels) ist, kann 
ich Dir aber leider nicht so ohne weiteres sagen, ich habe ihn bislang 
noch nicht benötigt.

Gruß
Markus

von Jörg Zinke (Gast)


Lesenswert?

Hallo Markus,

an der Sache scheint was dran zu sein. Ich habe mal das Programm auf 
verschiedene COM-Port-Nummern geändert. Die Funktion ComOpen 
funktioniert nur  mit der Nummer 3. Das wiederum ist aber wahrscheinlich 
nicht die Schnittstelle von meinem Kabel.
Der gesamte Beipack enthielt nur einen Schnelleinstieg und bla bla bla. 
Über Eigenschaften der Schnittstellen steht dort leider nichts.
Jetzt bin ich zwar schon einen Minischritt weiter, aber von einer 
Verbindung zu Hyperterminal auf dem Desktop noch weit entfernt.
Übrigens hatte ich schon mindesten 2 mal an hp gemailt. Ich habe nie 
eine Rückmeldung erhalten.

Trotzdem vielen Dank

Gruß Jörg

von Jörg Zinke (Gast)


Lesenswert?

Hallo Christian,

das sieht mir nach einer C-Funktion aus. Ich hatte mich damals für 
Visual Basic entschieden, weil mir das einfacher erschien.

Gruß Jörg

von J. S. (engineer) Benutzerseite


Lesenswert?

Ich rate mal wieder zu wxwidgets. Das bekommst Du ohne Umbau sowohl auf 
den Wn-PCs als auch auf den PDAs rasch zum Laufen.

von T.Danielzik (Gast)


Lesenswert?

Hallo Jörg,

Com3 wird vermutlich die IR Schnittstelle sein.
Besorg dir mal da Programm "PHM Registry-Editor" unter
www.phm.lu/products
dort kanst du suchen welchen ComPort die Schnittstelle hat.

von Christian R. (supachris)


Lesenswert?

Jo ist C. Hatte keine Lust auf VB Gefrickel und dann noch die riesen 
runtime auf den PPC knallen....da is eh schon immer so wenig Speicher 
frei ;)

von Tobi O. (der_ossi)


Lesenswert?

welche schnittstelle vom iPAQ nutzt du? Oben den Slot oder unten die USB 
anschlussstelle?
Ich arbeite selber mit so einem modell... COM6 ist die breite 
schnittstelle oben ;)

von Jörg Zinke (Gast)


Lesenswert?

Hallo Tobias,

endlich mal jemand der so was schon mal benutzt hat.
Ich hab mir so ein Verbindungskabel von hp besorgt. Über die die untere 
Schnittstelle habe ich das ganze mit der seriellen Schnittstelle vom PC 
verbunden. Über Hyperterminal habe ich keine Verbindung zustande 
gekriegt.
Auch über ActiveSync habe ich mal versucht, aber über die COMs geht gar 
nichts. Auch die Com-Einstellung von PC habe ich mal auf 19200 
angepasst. Auch vergeblich.
Oben ist bei mir nur ein Speicherkarten-Slot, kann man da auch einen 
Adapter reinstecken?
Was für eine Verbindung haßt Du aufgebaut?

Gruß Jörg

von Matti (Gast)


Lesenswert?

Hi Jörg,

ich hatte mir mal ein Programm für meinen Casio Cassiopeia geschrieben, 
um über die serielle Schnittstelle Daten von meinem Garmin zu laden.
Dabei hatte ich erst das gleiche Problem, da auf dem Pocket-PC ständig 
Active-Sync lief und COM1 blockiert hat. Das mußte ich dann regelmäßig 
mit einem vernünftigen Task-Manager (aktuell benutze ich "Magic Button") 
Active-Sync beenden und dann lief mein Programm!
Will man mit dem PC+Hyperterm testen, dann muß dort natürlich auch 
Active-Sync für diesen COM-Port deaktiviert sein.
Aktuell benutze ich einen MDA-compact; der hat dummerweise keine 
serielle Schnittstelle mehr. Aber mit einem Bluetooth/seriell-Modul 
funktioniert es jetzt auch (nur dass ich da die CommTimeouts nicht so 
setzen kann und die Übertragung von Einzelzeichen sehr langsam ist).

von Tobi O. (der_ossi)


Lesenswert?

Hi Jörg,

sorry, aber ich hab lange nimmer reingeschaut g

In den Speicherkartenslot kann man vieles Stecken. Mann muss nur immer 
mal was umlöten. Ich steuere damit einen Controller, den ich in einer 
Hülle einer Compact Flash Karte habe.

Also wenn du deine Langzeiterfassung über den Speicherkartenslot laufen 
lassen willst (COM 6) findest du im I-Net viel hilfe, wie du das richtig 
umlötest :) brauchst halt eine CF-Card, der du den Anschluss rausnehmen 
kannst :)

Aber jetzt lese ich gerade nochmal von dir "...Da ist nur ein 
Speicherkartenschacht..."
Normalerweisse sind in der kompletten IPAQ - Reihe die breiten 
Speicherkartenschächte drin.

Was kommt denn für eine Meldung, wenn du versuchst den Port zu öffnen? 
Oder bekommst du den Port auf, erhältst halt bloß keine Daten?

gruß Tobias

von shade (Gast)


Lesenswert?

kann mir da bitte jemand weiterhelfen, hab da riesige probleme. addet 
mich in icq oder so, shade oder mail an mah09XXX@web.de (ohne die Xe 
natürlich)
danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.