INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Chat



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.07.2009, 19:54
Beitrag #11

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Chat
Kleiner "Fehler":

Wenn ich, während ich Connected & eingeloggt bin, kann ich auf Disconnect gehen. Login-LED bleibt weiterhin grün. Gehe ich dann wieder auf Connect, dann bin ich als wieder eingeloggt, aber ohne Username.

Vielleicht sollte man da einfach einiges in der Ablaufreihenfolge der Bedienung sperren.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2009, 21:45
Beitrag #12

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Chat
Ja, stimmt. Mache ich. Aber wie schon gesagt, jeder kann sich seinen Client so programmieren, wie er willBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2009, 15:12 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2009 16:05 von eg.)
Beitrag #13

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Chat
Hallo!

Nach den erfolgreichen Test habe ich viel Feedback von Benutzern bekommen. Nun habe ich jetzt eine neuere Version erstellt:

- Eingabe befindet sich jetzt unten (wie von anderen Chat-Programmen gewohnt)
- Neue Nachrichten werden nun unten angezeigt und "klettern" nach oben
- Enqueue Lossy (erst ab LV Version 8.6) mit meinem eigenen Buffer ersetzt, jetzt wird LV >= 8.2 unterstützt
- Doppelklick auf Usernamen fügt ihn in die Messageeingabe (Fokus und Cursor werden auf die Eingabe gesetzt)
- Connect wird automatisch beim Start gemacht und Disconnect am Schluss (vereinfachung)
- Logo verlinktBig Grin
- Button zum Senden wurde entfernt, das Senden passiert beim Value Change des Eingabeelements

Viel Spass beim Chatten!

Lv82_img


Angehängte Datei(en)
Sonstige .zip  Client.zip (Größe: 228,46 KB / Downloads: 447)

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2010, 20:24
Beitrag #14

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Chat
Cool, der Server läuft immer noch. Das Ding scheint richtig robust zu seinBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2010, 21:37
Beitrag #15

Dennis.Moser Offline
Administrator
Administrators

Beiträge: 3.045
Registriert seit: Aug 2004

5.1 : 7.1 : 8.x : 20xx
1997
DE_EN

57589
Deutschland
Chat
OFFtopic: warum auch nicht ?Big Grin ehehhe... wir haben im LVF ja auch nur die besten Server ! (versteht sich...)Tongue

Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt!

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!

BC: 14vqy6mgfswpX6z7HLVxk1h3sHAvzE4aZG
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2010, 12:52
Beitrag #16

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Chat
Offtopic: Warum nicht? Wenn die Codequalität so wie beim Client ist, wundert es mich schon (ein wenig) Rolleyes

Trotzdem danke für das Teil. Ich weiss... einem geschenkten Gaul... Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.07.2010, 12:58 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2010 13:05 von eg.)
Beitrag #17

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Chat
Hi!

Kritik nehme ich gerne an. Was ist genau mit der Codequalität? Prinzip und Struktur sind IMHO übersichtlich.

Gruß, eg

P.S. habe zuerst geschrieben, dass das BD kommentiert ist, aber es ist erst kommentiert in dieser Version:
http://labviewportal.eu/download/file.php?id=2974

Da ist übrigens der Server mit dabei.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2010, 16:51
Beitrag #18

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Chat
Meine Gedanken die ich beim drüberschauen hatte.

- Keine echte Reconnect Logik -> Bei Verbindungsabbruch beendet sich untere Schleife und obere läuft noch!?
- Mglw. sinnvoll in unterer Schleife Cases vertauschen, also zuerst auf Fehler prüfen und dann Daten interpretieren.
- Keine Typedefs bei shared Datentypen (Client <-> Server Messages). Macht keine Spass sowas zu pflegen, daß würde ich bei einem Codereview als KO Kriterium sehen
- Warum TCP Längeninfo nur als U16? Messages mit mehr als 65000 Bytes sind fürn Chat erstmal ausreichend. Könnten aber schnell zu wenig sein (z.b. beim Connect soll eine allgemeine, vom Server verwaltete, History übertragen werden.) Beim Senden könnte es jetzt also schon vorkommen, daß der gesendete String länger ist als die Längenangabe, da Stringlänge nicht begrenzt wird.
- Button "Login" und Client.lvclass halten beide die Info ob logged in? Wer hat recht? => Racecondition beim schnellem Klicken auf login. In unterer Schleife wird lokale Variable von Login geschrieben und zusätzlich wird ein User Event nach oben geschrieben. Warum beides?
- Taste Logo wird auch von beiden Schleifen beschrieben. Von der Art ist's eh eher eine Anzeige. Vorschlag: Umwandeln in Indicator und nur ein einer Stelle das Terminal direkt beschreiben (z.b. in Client User Event "connected") und Logo Value change Event in MouseDown ändern.
- Client Deinit.vi mglw. sinnvoll außerhalb der äußeren Casestruktur bzw. auch deren Fehlercase benutzen. Ist noch nicht wichtig, da im Init selbst nur Event Create selbst schiefgehen könnte, wenn das Programm allerdings wächst besteht immer die Gefahr, daß dort die Referenz geöffnet wurde und das Deninit nicht durchlaufen wird.
- (Nur als Hinweis: Das "Get Date / Time String" Primitive ist buggy und liefert ab ca. 2040 Mist)


Mit Kommentaren ist die Codequalität auch deutlich besserSmile

P.S.
Sorry... ich weiß ich bin pingeligCool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2010, 17:38
Beitrag #19

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Chat
Das nenne ich aber gesunde Kritik.

1. Reconnect Logik. Ja, genau deshalb fliege ich ab und zu aus dem Chat raus. Da ich aber den Server nicht mit dem "ständigen" Verbindungsaufbau belästigen wollte, habe ich es so gelassen.

2. Das lasse ich LabVIEW mit dem automatischen Error-Handling machen. Der Error-Cluster ist ja dazu da (nur wenn angeschlossen), dass wenn ein Fehler auftritt, die nachfolgenden VIs nicht ausgeführt werden.

3. Stimmt, ich war einfach zu faul. Normalerweise müssen Typedefs in den Ordner "Common" kommen.

4. Ach, so weit habe ich nicht gedacht. Ich denke aber, es ist so schon ok.

5. Hmm, also Button klicken->Message an Server schicken->Message unten vom Server empfangen->Button setzen->Flag nach oben über User Event schicken. Im Endeffekt ist das Flag und nicht der Button entscheidend, der Button ist nur für die Anzeige da. Aber etwas Richtung Race Condition kann ich mir an dieser Stelle gut vorstellen.

6. Taste Logo ist gleichzeitig Control und Indicator. Das mag ich zwar nicht, aber wie sollte man beim Indicator Value Change abfangen? Oder wäre Mouse Klick besser? Habe noch nie Maouse Click Event bei Indicatoren abgefangen. Muss mal probieren.
Ansonsten ist es oben klar: Klick auf den Button->Sofort in den Urzustand wechseln. Da kann meinermeinung nach nichts schlimmes passieren.

7. Deinit.vi. Ist für mich so und so ok.

8. Get Date/Time String. Hm, wo was? Ein Bug? Hast du Info dazu?

Vielen Dank fürs Anschauen, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 17:00
Beitrag #20

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
Chat
zu 8.
   
   
eine CAR habe ich dazu nicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: