Forum: PC-Programmierung Serial Port programm will nicht richtig


von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

Hallo
Ich hänge seit Tagen Fest und bekomme es nicht Gelöst und muss Jetzt 
Leider doch Fragen hatte Gehofft es so hin zubekommen naja.

Ich habe es so Weit das es Jetzt Optisch und Technisch(fast)Fertig ist 
nur Laufen Tuts nicht so wie ich das Will.
soll heißen wenn ich auf Port A oder B öffnen klicke kommt nur eine 
Meldung kein Port gefunden und schlisst sich wieder.

Klicke ich auf Port C oder D öffnen kommt gleich gar nix.
Und Microsoft Visual Studio 2010 findet auch keine Fehler mehr.
Könnte sich das mal wer ansehen und mir sagen was da genau nicht stimmt 
?

DANKE

von Peter II (Gast)


Lesenswert?

was soll denn dieser Block machen?

            {
                MessageBox.Show("Kein serieller Port verfügbar", "Sorry 
no Bonus, insert coin to continue the game");
                Environment.Exit(1);
            }


damit kommt doch immer eine Fehlermeldung. auch wenn alles ok ist.

von Peter II (Gast)


Lesenswert?

nachtrag:

Wenn man 4mal (fast) den gleichen Code schreibt, sollte man sich fragen 
was man tut. Oder wirst du nach Code-Zeilen bezahlt? Wenn nein, dann 
würde ich das zu einer Funktion zusammenfassen. Denn kann so etwas nicht 
passieren das Port D anderen code hat wie A und B.

von DAVID B. (bastler-david)


Lesenswert?

Der code wurde aus ein andren quelle genommen und so weit es mit ohne 
hintergrund wissen geht angepasst.

OK danke habe den tipp von dir befolgt jetzt gehen die ersten beiden 
also A und B richtig aber C und D noch nicht wie bekomme ich das hin ?

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> OK danke habe den tipp von dir befolgt jetzt gehen die ersten beiden
> also A und B richtig aber C und D noch nicht wie bekomme ich das hin ?

Du hast keine eventhandler für den Click von C und D hinterlegt. (Bei 
den Buttons muss das onClick Event mit deiner Funktion cbOpenPortX_Click 
verbunden werden)

von DAVID B. (bastler-david)


Lesenswert?

Ist doch habe grade noch mal nach gesehen gibt für alle
Heisen so
cbOpenPortA_Click
cbOpenPortB_Click
cbOpenPortC_Click
cbOpenPortD_Click

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Ist doch habe grade noch mal nach gesehen gibt für alle
> Heisen so
> cbOpenPortA_Click
> cbOpenPortB_Click
> cbOpenPortC_Click
> cbOpenPortD_Click

ja aber du hast du 2 der Buttons mit den Funktionen "verbunden" Woher 
soll denn der Computer wissen wenn du ButtonC drückst das er 
cbOpenPortC_Click
aufrufen soll?

von DAVID B. (bastler-david)


Lesenswert?

Ist doch aber hinterlegt oder nicht ?
und wenn nicht die löse ich das ?

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Ist doch aber hinterlegt oder nicht ?

vergleiche doch mal die Events der Buttons.

von DAVID B. (bastler-david)


Lesenswert?

habe ich gemacht und denke sie stimmen

von Peter II (Gast)


Lesenswert?

Laut deinen Quellcode von oben stimmt es nicht. Da es ja auch nicht geht 
scheint etwas nicht zu stimmen.

Zeige doch mal ein screenshot von den Events vom ButtonC.

von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

Hier mal ein bild und die neuen datein.

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Hier mal ein bild und die neuen datein.

ich sehe keine Events!

du musst im in den Eigenschaften vom den Button im Formulardesigner 
schauen.

von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

Ja vergessen anzuhängen sorry.

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Ja vergessen anzuhängen sorry.

ich sehe immer noch keine Events. Du musst in den Eigenschaften-Fenster 
noch den "Blitz" anklicken.

von DAVID B. (bastler-david)


Lesenswert?

SAUBER das kannte ich noch nicht SUPER jetzt geht alles DANKE DANKE :-)
Nur eine frage wie komme ich die com ports fest ?
also com1 bei A    com2 bei B    com3 bei C    und com4 bei D ?

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Nur eine frage wie komme ich die com ports fest ?
> also com1 bei A    com2 bei B    com3 bei C    und com4 bei D ?

musst die Vorauswahl der Selectboxen anpassen.

                cbSerialPortA.SelectedIndex = 0;
                cbSerialPortB.SelectedIndex = 0;
                cbSerialPortC.SelectedIndex = 0;
                cbSerialPortD.SelectedIndex = 0;

hier sagt du das das erste Element gewählt werden soll, das musst du 
ändern. Aber beachte das eventuell nicht immer alle ComPort bei anderen 
Leuten verfügbar sind.

von DAVID B. (bastler-david)


Lesenswert?

Ich schreibe das Programm für mich und EIN freund da sind diese frei.
wenn alles so läuft wie ichs will lasse ich hier eine Version für andere 
forum user wo diese frei sind erscheinen für leute die so was suchen.

wenn ich an stelle der 0 eine 1-4 vergebe muss ichs selber aus wählen.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

Warum braucht hier 4-ComPort um ein par dinge zu steuern? Das kann man 
doch bequem über einen ComPort machen.

von Lutz H. (luhe)


Angehängte Dateien:

Lesenswert?

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new SerialSignals.Form1());
        }
    }
}

Diese Änderung musste ich in der Main machen.
Dann habe ich auf taste  C  und D (doppelt)mit Maus gedruckt. War kein 
Code vorhanden.

von DAVID B. (bastler-david)


Lesenswert?

Peter II schrieb:
> Warum braucht hier 4-ComPort um ein par dinge zu steuern? Das kann man
> doch bequem über einen ComPort machen.

Wie das ?
würde nur mit controler gehen was ich aber nicht verwalten kann mache 
das mit mosfet und relais.

DANKE lutz habe ich schon gesehen.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

lutz h. schrieb:
> Diese Änderung musste ich in der Main machen.
> Dann habe ich auf taste  C  und D (doppelt)mit Maus gedruckt. War kein
> Code vorhanden.

ich verstehen nicht was du damit sagen willst

> Wie das ?
> würde nur mit controler gehen was ich aber nicht verwalten kann mache
> das mit mosfet und relais.

Wenn man es nicht selber bauen kann/will dann kaufen

http://www.ebay.de/itm/like/320980238170?lpid=91&_configDebug=ViewItemDictionary.ENABLE_PAYMENTS_IN_HLP:true

oder gleich übers Netzwerk

http://www.pollin.de/shop/dt/NjI5OTgxOTk-/Bausaetze_Module/Bausaetze/AVR_NET_IO_Fertigmodul.html

von DAVID B. (bastler-david)


Lesenswert?

meine version kost 15€ und habe alles hier. aber danke
ich muss nur die com ports fest bekommen

von Lutz H. (luhe)


Lesenswert?

Peter II schrieb:
> ich verstehen nicht was du damit sagen willst

Peter II schrieb:
> ich sehe keine Events

Was wollte ich sagen?
Etwa das gleiche, durch Doppelclick im Designer wird der Event Handler
für einen Click angelegt.

Ich kenne keine Spezifikation, bei der mehrere Geräte an einer Seriellen 
Schnittstelle kommunizieren dürfen. Ich kenne diese nur als Punkt zu 
Punkt Verbindung.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

lutz h. schrieb:
> Waswollte ich sagen?
> Etwa das gleiche, durch Doppelclick im Designer wird der Event Handler
> für einen Click angelegt.

er hat aber die Funktion schon, er soll keine neu Anlegen. Dafür kann 
man sie einfach in der Combobox bei dem OnClick Event auswählen.

> Ich kenne keine Spezifikation, bei der mehrere Geräte an einer Seriellen
> Schnittstelle Kommunizieren dürfen. Ich kenne diese nur als Punkt zu
> Punkt Verbindung.
wer sagt dann das es mehre Geräte sein müssen. Er braucht ja nur 8IO 
Anschlüsse. Das geht doch geht sogar ohne µC mit einem einfachen Serial 
zu Parallel Schaltkreis.

von DAVID B. (bastler-david)


Lesenswert?

Peter II schrieb:
> wer sagt dann das es mehre Geräte sein müssen. Er braucht ja nur 8IO
> Anschlüsse. Das geht doch geht sogar ohne µC mit einem einfachen Serial
> zu Parallel Schaltkreis.

Wie würde das gehen ?

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Wie würde das gehen ?

bin kein Spezi für so "altes" Zeug. Google liefert mir z.b.

http://www.ti.com/lit/ds/symlink/sn74lv8153-q1.pdf

Ich würde es selber mit einem µC machen. Da kann ich unendlich viele ein 
und Ausgänge und Eingänge an einen Seriellen Anschluss hängen.

von DAVID B. (bastler-david)


Lesenswert?

ne das wird mir zu schwer.
ich bin noch am Anfang und kein profi :-(

Sagt mir bitte noch einer wie ich die com ports festlege ?
DANKE

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Sagt mir bitte noch einer wie ich die com ports festlege ?

steht doch schon da:

Autor:  Peter II (Gast)
Datum: 16.11.2013 20:40

von DAVID B. (bastler-david)


Lesenswert?

du schreibst aber nur ich muss es ändern aber nicht in was wenn ich 1-4 
vergebe muss ich jeden port im tool selber aus wählen weils keine vor 
wahl gibt.

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> ne das wird mir zu schwer.

der Chip von TI ist aber doch wirklich recht einfach. Man kann sogar 8 
stück an eine Serielle Schnittstelle anschließen und dann bis 64 
Anschlüsse verwenden. Einfacher geht es kaum. Braucht auch wenig externe 
Bauteile.

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> du schreibst aber nur ich muss es ändern aber nicht in was wenn ich 1-4
> vergebe muss ich jeden port im tool selber aus wählen weils keine vor
> wahl gibt.

ich würde einfach

                cbSerialPortA.SelectedIndex = 0;
                cbSerialPortB.SelectedIndex = 1;
                cbSerialPortC.SelectedIndex = 2;
                cbSerialPortD.SelectedIndex = 3;

schreiben

von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

ah ok danke hatte nicht mit null angefangen.
DANKE erledigt

Und wie versprochen die fertige exe für andere user.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Und wie versprochen die fertige exe für andere user.

ist zwar nett von dir, aber wie hoch ist die Wahrscheinlichkeit das 
jemand die gleiche unbekannte Hardware und auch Strohkugeln hat damit er 
irgendetwas mit der exe anfangen kann?

Du solltest wenn dann auch den Quellcode mit anhängen, dann könnte es 
jemand noch anpassen. Aber der Quellcode ist leider nicht so "schön" das 
er als gutes Beispiel durchgeht.

von Lutz H. (luhe)


Lesenswert?

Die Zuordnung kann auch in der Systemsteuerung gemacht werden,
dort werden die Namen Com1  und so weiter vergeben.

Die Frage nach der Baugruppe richtet sich danach ,was das Gerät 
erwartet, was
angesteuert wird.
In dem COM- Programm hier wird, wenn ich es richtig überflogen habe, ein 
Signal auf der COM Buchse geschaltet und es sind 4 COM Buchsen 
ansteuerbar. Diese Ausgangssignale sind irgendwas im Bereich -15V bis 
15V und einige mA.

Angesteuert werden Lampen, die haben etwa  220V 1A , und noch irgendwas 
soll in der Helligkeit geändert werden.

Um geeignete andere Möglichkeiten zu finden braucht es genauere 
Informationen.

Peter II schrieb:
> Ebay-Artikel Nr. 320980238170

Solche Relais sind sicherlich geeignet das, Licht ein und auszuschalten.

von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

Die exe hat nummern 1-8 an und 1-8 aus und heist auch anderes.
und schaltung naja diode an RTS und elko plus mosfet und relais ist ganz 
analog.

und ob das schön ist oder nicht muss jeder selber wissen wie oft habe 
ich mich schon geärgert weil user zu geizig waren ihre erfolge zu 
teilen.

von Peter II (Gast)


Lesenswert?

DAVID ------ schrieb:
> Die exe hat nummern 1-8 an und 1-8 aus und heist auch anderes.
> und schaltung naja diode an RTS und elko plus mosfet und relais ist ganz
> analog.

und warum setzt du denn die ganze Parameter wie Geschwindigkeit, Anzahl 
Datenbits, Parität und Stopbits?

von DAVID B. (bastler-david)


Lesenswert?

Die Felder müssen da sein zum deduggen sonst gehts nicht den ich weis 
nicht in was die alles Trine hängen geschweige zu was die gut sind.
Sie waren im orginal auch da und da habe ich sie mit genommen.

ICH brauchen nur an und aus und das tuts jetzt endlich DANK EUCH !

: Bearbeitet durch User
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.