Zum Inhalt springen

SpamBot

Mitglieder
  • Gesamte Inhalte

    12
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von SpamBot

  1. DateTime ist leider zu ungenau,... habs jetzt mit eine Tickcount für jedes empfangene byte versucht. Hat aber immernoch das gleiche problem, allerdings wesentlich seltener. Messgenauigkeit liegt nun etwa im 3-5 ms bereich. mfg
  2. :upps Gute Lösung, war bei mir genau das selbe Problem,... hab das allerdings als Feature verkaufen können, ist 'sicherer so' ;D
  3. Guter Thread dazu Dort findest du auch Benchmarks.
  4. Ich würde mit Vektoren arbeiten, den Mittelpunkt der Strecken finden und da dann die Bezeichung hinschreiben. mittelPunktx = 0.5 * (x1 + x2); mittelPunkty = 0.5 * (y1 + y2); oder so ähnlich
  5. SpamBot

    [C#] Sendkey und Flash

    hmm... mit reinem c# weiss ich nich wie das geht, aber die win api gibts ja auch noch SetCursorPos WindowFromPoint SendMessage, handle,WM_LBUTTONDOWN,... weiss nimmer genau, einfach mal googeln ;D
  6. Meiner Meinung nach ist .Net code meistens schneller als gleichwertiger Java code. Kommt aber wie gesagt auf die Anwendung an. .Net und Java kompilieren beide zu Bytecode, aber .Net hat den Vorteil, dass man sich den Dialekt den man schreibt (c#, vb, boo ...) aussuchen kann. Klarer Vorteil von Java ist die Plattformvielfalt. Für .Net gibts zwar Mono aber warum .Net unter Linux programmieren? Zusätzlich hat .Net (oder besser c#) einige Eigenheiten. Z.b. kann ein Interface hier keine statischen Mitglieder haben (geht in Java)
  7. Hm... also ich hab jedenfalls noch keine Messagebox gesehn. Egal welche Funktion ausgeführt wurde. Und wie machst du das mit den Timings? Ich krieg keine Zeitmessung < 10 ms hin. Ist das überhaupt möglich? Ich weiss ja nämlich garnicht wann die Daten in den Buffer geschrieben werden :?
  8. SpamBot

    C# Programmieraufgabe

    Prizipiell ja, aber keine Ahnung ob die Random Klasse wirklich zufällige Zahlen liefert _Wirklich_ zufällige Zahlen sind ja nicht so einfach zu erzeugen...
  9. SpamBot

    C# Programmieraufgabe

    public void sicker() { p = (double)trackBar1.Value / 100; double rand = randomiza.NextDouble(); int initCount = points.Count; for (int i=0;i< initCount ;i++ ) { if (rand < p) { points[i].X--; points[i].Y++; } rand = randomiza.NextDouble(); if (rand < p) { points[i].X++; points[i].Y++; } if(points[i].Y > panel1.Height) finish(); } } Als Anhaltspunkt, wird so wahrscheinlich nicht out oft the box funktionieren, solls auch garnicht. Aber die Richtung stimmt. mfg
  10. Ok. Schau dir mal die SelectedIndexChanged Ereignisse an. ->msdn Ich empfehle eine kleine XML Datenbank. ->msdn Eine neue Form erstellen mit entsprechenden Buttons welche z.b. beim schließen ein Event rausjagt dass deine Daten enthält. (google suche nach "vb.net events" oder so) mfg
  11. Benutzt du auch die Serial Port Klasse? Kannst evtl. mal ein kleines Schnipsel posten? Zu deinem Problem: Also ich denke da hast du was falsch verstanden, die DLL bietet lediglich keine Exceptions, aber wirft dir natürlich auch keine Messageboxen ins Gesicht Die Fehlerbehandlung erfolgt über so ne Art Statusenum: ftStatus = Mach_Irgendwas(bla); if ( ftStatus != FTDI.FT_STATUS.FT_OK ) { ; } else { Debug.Log("alles klar"); } mfg
  12. hi, So wie ich das sehe, ist das kein 'regulärer' .NET event sondern eher ein 'Thread event' (keine Ahnung wie das richtig heist...). Ich habe das folgendermaßen gelöst: private AutoResetEvent recvDataEvent; private BackgroundWorker worker; void open() { COM.OpenByIndex(smartBoxIndex); COM.SetBaudRate(115200); COM.SetDataCharacteristics(FTDI.FT_DATA_BITS.FT_BITS_8,FTDI.FT_STOP_BITS.FT_STOP_BITS_1,FTDI.FT_PARITY.FT_PARITY_NONE); COM.SetFlowControl(FTDI.FT_FLOW_CONTROL.FT_FLOW_NONE,0,0); recvDataEvent = new AutoResetEvent(false); COM.SetEventNotification(FTDI.FT_EVENTS.FT_EVENT_RXCHAR,recvDataEvent); worker = new BackgroundWorker(); worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.RunWorkerAsync(); } void worker_DoWork(object sender, DoWorkEventArgs e) { uint bytesToRead = 0; uint bytesRead = 0; while (true) { // wait until event is fired this.recvDataEvent.WaitOne(); // try to recieve data now if(FTDI.FT_STATUS.FT_OK == this.COM.GetRxBytesAvailable(ref bytesToRead)) { byte[] buffer = new byte[bytesToRead]; if(FTDI.FT_STATUS.FT_OK == this.COM.Read(buffer,bytesToRead,ref bytesRead)) { if (bytesToRead != bytesRead) { Log("Data length error!"); } foreach (byte b in buffer) { recvBuffer.Enqueue(; } Log(ByteArrayToHexString(buffer)); } } } } [/code] evtl nicht der eleganteste Weg, aber immerhin klappt es Eine Frage am Rande: Dein Projekt scheint so ähnlich zu sein wie das, was ich im Moment bearbeite. Nur habe ich ein Problem: Gibt es eine Möglichkeit die Zeit zu bestimmen an der die Daten im Puffer ankommen (Abweichung max. 0,5 ms) ? (bezogen auf die SerialPort klasse meine ich jetzt, da ich auch beides implementiere)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...