Laden...

Forenbeiträge von Joetempes Ingesamt 888 Beiträge

19.07.2010 - 10:52 Uhr

Wenn's im Hyperterminal funktioniert, so liegts eindeutig an Deinem Programm.
Standardfehler sind:

  • Handshake falsch
  • Abschlusszeichen fehlt / falsch (/n der /r oder /r/n )

Probiers auch mal hiermit:

Template SerialPort

Grüße

14.07.2010 - 11:56 Uhr

Habs jetzt gelöst in dem ich die Grenzen vom Canvas direkt abfrage.
Für die Nachwelt, hier der Code.


		private void mouseMove(object sender, MouseEventArgs e)
        {
            if (sender is Image && (e.LeftButton == MouseButtonState.Pressed) && this.isMouseCaptured)
            {
                Image item = sender as Image;

                //Get Delta Pos
                double yDelta = e.GetPosition(this.canvas1).Y - this.xMousePos;
                double xDelta = e.GetPosition(this.canvas1).X - this.yMousePos;

                //Get Next Pos
                double yNext = yDelta + Canvas.GetTop(item);
                double xNext = xDelta + Canvas.GetLeft(item);

				//Check Border
                if (xNext >= 0 && xNext <= this.canvas1.Width && yNext >= 0 && yNext <= this.canvas1.Height)
                {
                    //Set New Pos
                    item.SetValue(Canvas.TopProperty, yNext);
                    item.SetValue(Canvas.LeftProperty, xNext);

                    //Update position global variables.
                    this.xMousePos = e.GetPosition(this.canvas1).Y;
                    this.yMousePos = e.GetPosition(this.canvas1).X;
                }
            }
        }

14.07.2010 - 09:20 Uhr

@Schlopp

Bewegen funktioniert tadellos, ich nutze bereits CaptureMouse() & ReleaseMouseCapture().

Mir ist nur noch unklar wie ich das bewegte Objekt ausschließlich auf dem Canvas behalte.

14.07.2010 - 08:26 Uhr

Jo Baby, Jo Baby, Jo Baby,

...danke CLS, funktioniert einwandfrei!

Noch eine Frage, zum Thema.

Ich hatte sowas schon mal in WinForms implementiert, da was war es so das ich die Objekte dann nur innerhalb des UserControls in dem sie erstellt wurden bewegen konnte.

Hier ist es jetzt so, das ich meine Bilder überall hinbewegen kann, also über den Canvas hinweg, über die gesamate Dokumentengliederung hinweg.

Wie stelle ich das ab?

14.07.2010 - 07:21 Uhr

Hallo,

folgendes Problem:

Ich habe ein Canvas, welchem ich über ein Button ein Bild hinzufügen kann.
Anschließend will ich das Bild mit der Maus auf dem Canvas bewegen.
Das zu gibt's im MSDN folgendes Beispiel:

MSDN: Objekte mit der Maus bewegen

Mein Problem ist, dass in der MousMove()-Methode an der Stelle wo ich die aktuelle Position des Bildes auslese immer NaN rauskommt:

(double)item.GetValue(Canvas.TopProperty);

Über Google habe ich rausgefunden, das ich da wohl nicht der Einzoge bin mit diesem Problem und man solle statt dessen das hier verwenden:

(double)item.RenderTransform.Value.OffsetY

Da kommt bei mir aber immer 0 raus, was auch falsch ist.

Kann mir jemand helfen?

12.07.2010 - 15:26 Uhr

Eine Artikelsammlung mit "Coding Dojos", also kleinen Übungsaufgaben für Entwickler, stellt das Fachblatt "dotnetpto" auf seiner Webseite kostenlos bereit. Bisher erschienen 5 Folgen.

DotNetPro - Coding Dojo's

10.07.2010 - 14:24 Uhr

Hallo all-finder,

das hört sich eher an als wenn das ein Problem Deiner Hardware ist.
Der Serialport bringt leider kein Timeout bei Close() mit.

Grüße

09.07.2010 - 15:17 Uhr

Danke, genau sowas hab ich gesucht.
Es ja wirklich unglaublich das Teil!

09.07.2010 - 14:42 Uhr

Hallo,

ich suche einen Effekt in WPF womit man eine Seite/ Bild umblättert.
Ähnlich wie auf dem iPad oder hier:

Katalog blättern

Gibt's Ansätze dafür?

09.07.2010 - 14:38 Uhr

Ok, es geht. Aber nicht native, es läuft dann auf ne Art Virtualisierung raus.
Scheint massig Produkte zu geben.
Z.B. http://www.serial-port-splitter.com/

09.07.2010 - 13:02 Uhr

Du kannst mit beliebig vielen Anwendungen auf einen COM-Port mittels SerialPort zugreifen. Für ein Open() aus einer Anwendung muss der COM-Port allerdings geschlossen sein. Split oder dergleichen gibt es nicht.

09.07.2010 - 08:11 Uhr

Hallo Fabian,

ich kann Dir was empfehlen.

Es gibt ein Bildungssystem, das in Zusammenarbeit mit den Schulen sowie Brockhaus und Duden-Verlag entwickelt wurde und schon den Comenius-Preis erhalten hat, geeignet für Kinder ab Grundschulalter bis Abitur/Studium.

Dazu bekommt man insgesamt 11 Lexika-Bücher, eine DVD sowie einen persönlichen Zugangscode zum Wissenscenter (übers Internet). Im Wissenscenter kann man sich alle Informationen altersentsprechend herunterladen oder zuschicken lassen.

Als Schülerservice antworten Lehrer direkt, was Lernhilfe ersparen soll!

Empfehlen kann ich es dir deshalb, weil ich dafür einen 2 wöchigen Testzugang hatte.
Die Lehrer in den Foren antworten wirklich schnell und kompetent. Und deren Motto ist Hilfe zur Selbsthilfe....

Preis war ~30€ / Monat auf 24 Monate oder so. Falls Interesse solltest Du Dir einen Vertreter nach Haus kommen lassen.

Grüße

07.07.2010 - 11:43 Uhr

Hallo ViperNeo,

Du könntest auch ein kleines Demo-Program schreiben, in dem du z.B. in einer Schleife
Images, Pens, Brushes, oder ähnliches erzeugst ohne Dispose() aufzurufen. Dabei hast Du den Taskmanager offen und kannst zeigen wie die verwendeten GDI-Objekte rapide ansteigen --> irgendwann gibt's keine Handles mehr.

Als weiteres praktischen Argument (von Microsoft) könntest du im VisualStudio die statische codeanalyse aktivieren, die sagt Dir genau, wann und warum Dispose() zu implementieren ist.

Grüße

07.07.2010 - 09:52 Uhr

Hallo herbivore,

er soll die Eigenschaften der Controls nach XML serialisieren, und dieses dann in der DB speichern. So hat er in der DB nur eine Tablle mit 2 Spalten (ID, Blob). Verlagert halt automatisch das Auslesen auch wieder in den Code.

07.07.2010 - 08:00 Uhr

Oder nach XML serialisieren und als BLOB in die DB jagen.

01.07.2010 - 13:03 Uhr

Ich trainiere 1x die Woche (1.5h) stilübergreifenden Kampfsport mit Schwerpunkt Fitness und Selbstverteidigung, also keinen Wettkampfsport.

Las ich das ne Woche aus, fühle ich mich eingerostet und mieslaunig.
Was mir dabei besonders gefällt ist die Konzentration auf den Körper und nicht wie bei der Arbeit (Programmieren) aufs Gehirn.

28.06.2010 - 12:47 Uhr

Hallo talla,

bin grad am Durcharbeiten Deines Artikels. Die Downloads sind, wie bereits erwähnt, alle ungültig.

Könntest Du die nochmal bereitstellen? So wie es für dich am einfachsten ist, vielleicht alle in einem Paket?

Danke & Grüße

24.06.2010 - 09:16 Uhr

Vielleicht mach ich's ja auch falsch, aber ich machs mir ganz einfach.
Jede Schicht hat einen Verweis auf log4Net und jede schicht loggt.
Dabei werden Exceptions immer nur in der UI Schicht geloggt, und in der UI Schicht wird der Logger auch konfiguriert.

21.06.2010 - 13:08 Uhr

Wie soll ich das denn sonst machen?

Mach aus 3 Schichten --> 4 Schichten, schon haste das Problem nicht mehr.

BL (Buisiness Layer) & BO (Buisiness Objects)

BL hat dann einen Verweis auf DA, und BO kann jeder kennen, da BO sowieso nur stupid Objects enthält!

19.06.2010 - 17:43 Uhr

@lousek,

kannst du uns Dein Werk mal vorstellen, vielleicht unter Projekte posten?

18.06.2010 - 08:14 Uhr

Setz doch mal ein Dispose() hinter dem Close();

11.06.2010 - 13:29 Uhr

Hallo JAck30lena,

herzlichen Glückwunsch zu Deinen ersten 10.000 Post. Du bist wahrlich eine große Bereicherung für das Forum. Weiter so!!!

Hab zufällig bei 9.998 Post Deinen Counter gesehen, und dann angefangen Dir "nach zu spionieren". Die "Mühe" war es Wert, hier ein Live-Screenshot dieses historischen Momentes.

Grüße

Joe

10.06.2010 - 08:30 Uhr

Hallo TheGear,

schickes Teil gefällt mir, danke für die Sourcen.

25.05.2010 - 16:04 Uhr

Hat sich als Bug in der Fremdkomponente rausgestellt, daher Thema erledigt.

25.05.2010 - 08:19 Uhr

Ich mach das immer so, dass ich noch zusätzlich zu den 3 Schichten ein weiteres Projekt habe (BO - Buisiness Objects). Mein Startprojekt (in Deinem Fall GUI) ließt dann die Settings ein und reicht das einfach an die nächste Schicht durch, und diese wieder an die Nächste. Alle Layer kennen BO.

24.05.2010 - 13:40 Uhr

HTerm sollte Dir helfen...

20.05.2010 - 07:55 Uhr

Hier gibts reichlich Beispiele:

"Alles" über Sockets

17.05.2010 - 12:58 Uhr

Hallo,

ich betreibe grad Schnittstellenentwicklung mit Fremdkomponenten.
Dabei muss ich als Client eine Verbindung zu einem Server aufbauen. Intern verwendet diese Verbindung laut Dokumentation .NET Remoting.

Der Server läuft in einer VM unter Windows XP, der Client im Host System unter Windows 7. Die Verbindung wird kurz aufgebaut, aber anschließend sofort wieder vom Server getrennt. Als Fehlermeldung kommt dann immer: "The table [GlobalHold] is not ready for transmission".

Starte ich Client und Server im selben Betriebssystem, also lokal, funktioniert alles.
Starte ich den Client und den Server jeweils in einer eigenen XP VM funktioniert auch alles.

Firewall ist deaktiviert.

Jemand eine Idee?

Danke & Grüße

10.05.2010 - 11:43 Uhr

Da ich grad wieder mit der seriellen SS arbeite, hat sich ein Update angeboten.
Neue Version oben hinzugefügt.

10.05.2010 - 08:13 Uhr

Spitze, Glückwunsch!

07.05.2010 - 16:29 Uhr

AutoCopy (Kopieren beim Markieren)
Linkification (Aus Text wird HyperLink)
BugMenot (Passwort Datenbank)

05.05.2010 - 07:59 Uhr

@telnet
Das kann ich in keinster Weise bestätigen. Ich habe soviel Zeug (Waagen, Scanner, Bluetooth-Module, Kartenleser, uvm) über die SerialPort-Klasse angesteuert und nie, aber wirklich nie, Probleme gehabt. Meist liegen die Probleme in Schicht 8 oder weil keiner die serielle SS oder das Gerät versteht.

Und in dem Artikel über die serielle SS in der DotNetPro geht es um die Konfiguration der seriellen SS.

28.04.2010 - 14:09 Uhr

Naklar ist das möglich, dazu musst du nur mehrere Ports aufmachen.

23.04.2010 - 11:16 Uhr

Timer sind Threads. Also musst Du ein Sperrmechanismus verwenden.
Davon gibt es mehrere. Schreibe zum Beispiel folgendes über Deine Methode:

[MethodImpl(MethodImplOptions.Synchronized)]
22.04.2010 - 08:05 Uhr

Ich sehe sofort einen Fehler, du hast keinen Handshake gesetzt.
Siehe auch: Template SerialPort

21.04.2010 - 09:46 Uhr

Die Timeouts des SerialPorts sind Properties, dafür musst du kein Event registrieren.
Einfach Timeout setzen und gut, natürlich bevor Du Open() aufrufst.

MSDN - Serialport - Timeout

21.04.2010 - 08:00 Uhr

Einer Verbindung über COM Port sollte ohne weiteres möglich sein.
Spontan sehe ich das Du gar keinen HandShake gesetzt hast.
Probiers auch mal hier mit: Template SerialPort

20.04.2010 - 08:35 Uhr

Eine falsche UART-Einstellung halte ich wirklich für am wahrscheinlichsten.
Du hast auch keinen HandShake gesetzt, probier mal alle HandShake Varianten durch...

19.04.2010 - 16:06 Uhr

Hallo oli001,

das Ganze sollte sich eigentlich ziemlich einfach, da standartisiert, gestallten.

Das Problem bei der seriellen SS ist, das man nie genau weis, wann, welche Daten über die Leitung kommen. Deshalb benötigst Du ein definiertes Ende. Ich habe schon mehrere digitale Waagen über die serielle SS angesprochen und überall konnte man die Endekennung einstellen. Mein Favoriet ist immer CRLF (\r\n).

Du lauscht also auf der seriellen SS und wartest bist die Kennung kommt. Wie CRLF in Byte aussieht findest du bei Google.

Eine Beispielimplementierung findest du hier:

Template SerialPort

16.04.2010 - 07:52 Uhr

Das sollte dir helfen:

EAN-128-C BarcodeCreator