Laden...

Forenbeiträge von PPK Ingesamt 157 Beiträge

29.03.2015 - 00:12 Uhr

Hm wie sind deine Messgeräte denn verbaut? Also in welche Richtung beweglich und in welche nicht. Ich selbst hab mein FEZCerbot beigebracht auf den Hinterrädern zu "stehen", weil ich dass mal in einem Youtube-Video gesehen hab.
Dabei hab ich die gleiche Formel wie deine erste benutzt. Mein Cerbot selbst kann, wenn er steht, nur in eine Richtung kippen. Daher ist der Acc-Winkel. Auf der Y-Z-Koordinate abzulesen. (X-Achse = der Achse der Hinterräder)

25.03.2015 - 02:21 Uhr

Hier mal ein Codebeispiel, damit du verstehst was gemeint ist:


  byte[] buffer = ....; //irgend eine Nachricht
  int i = buffer.Length;
  byte[] length = BitConverter.GetBytes(i);
  stream.Write(length);
  stream.Write(buffer);


  byte[] length = new byte[4];
  stream.Read(length,0,4);
  int i = BitConverter.ToInt32(length);
  
  byte[] buffer = new byte[i];
  stream.Read(buffer,0,i);

_
Dies ist nur ein Beispiel des obengenannten Protokolls. Es wurde nicht getestet und auch nich in einer Entwicklungsumgebung geschrieben._

09.03.2015 - 13:21 Uhr

Deine Variable neuerText wurde nicht in der while Schleife deklariert,
sondern in Zeile 6. Besser ist es aber, du definierst es gleich:

string neuerText = null;

Das Problem ist aber, dass du neuerText immer überschreibst, das zu korrigieren ist ein bisschen mehr Arbeit glaub ich.
Aber ich habe einen einfachen Vorschlag für dich:
verwende einfach String->Replace, du benötigst ja keine Regex, da deine Zeichenfolge feststeht.

return text.Replace("  ","\r\n");

Wenn du trotzdem Regex benutzten möchtest, dann nutze dafür auch die Replace-Funktion der Regex Klasse. 😉

08.03.2015 - 14:14 Uhr

Ich hab jetzt ein bisschen getestet, um den Algorithmus für das Zeichnen offenzulegen. (Standarteinstellung). Er scheint bei mir immer von unten nach oben zu zeichnen, solltest du also mal keine Symmetrie haben, so muss gelten, dass:
Intervallgröße*n = -min, mit n ist eine Natürliche Zahl und min <0, max>0. Also wenn du

chart1.ChartAreas[0].AxisY.Interval =-min / i;

wählst mit i ist eine Natürliche Zahl.
Nur dann gibt i nicht die Anzahl der Itervalle an, sondern nur die Anzahl der Intervalle zwischen min und 0. Für eine bestimmte Anzahl an Intervalle müsstest du dann i in Abhängigkeit von max wählen.


int intervalCount = ...;
double max =..., min = ...;
double intervalSize = (max-min) / intervalCount;
i = Math.Max((int)Math.Round(-min/intervalSize),1);
chart1.ChartAreas[0].AxisY.Interval =-min / i;

Das haut zwar mit der Anzahl der Intervalle nicht immer genau hin, da i ja eine Natürliche Zahl sein muss, aber es liefert meiner Meinung dennoch ein ausreichendes Ergebnis (nur bei |min|<<|max|, min viel kleiner als max) führt es zu vielen Intervallen.

08.03.2015 - 13:11 Uhr

Ist es notwendig, dass das Diagramm symetisch ist? Wenn du

chart1.ChartAreas[0].AxisY.Maximum = double.NaN;
chart1.ChartAreas[0].AxisY.Minimum = double.NaN;

lässt, sollte er eigentlich die Grenzen so wählen, dass eine 0 Achse zu sehen ist.

Alternativ kannst du auch einfach die


 chart1.ChartAreas[0].AxisY.Interval

Eigenschaft überschreiben.
Mit

chart1.ChartAreas[0].AxisY.Interval = (max-min) / i;

sollten (wenn max≥0 und min ≤0, max > min,|max|=|min| und i%2 = 0) eigentlich i+1 Datenlinien zu sehen sein, wobei eine durch den Ursprung geht. Da |max|=|min|, max≥0, min≤0 bei dir durch die symmetrie ja gegeben ist, max > min sowieso gegeben ist, sollte es eigentlich funktionieren. Vergiss nicht i%2=0, da du eine ungrade Anzahl von Linien benötigst und du eine Linie mehr hast als Intervalle.

08.03.2015 - 12:22 Uhr

Du benutzt DGram/Udp versuch spaßeshalber mal die Codezeile

sck.Connect(epRemote);

zu löschen.
Dann musst du die Codezeile


 sck.Send(msg);

durch


 sck.SendTo(msg,new IPEndPoint(IPAddress.Parse(textIP2.Text), Convert.ToInt32(textPort2.Text)));

ersetzen.
Ich hatte es schon, dass durch ein Verlagerung der Problematischen Codezeile ein anderer Fehler generiert wird. Warum es bei deinem Rechner nicht funktioniert, kann ich dir nicht sagen. Was für ein BS oder Antiviren Programm / Firewall nutzt du?

16.09.2012 - 11:40 Uhr

Wie gesagt das ist möglich:


<Style>
  <Style.Triggers>
    <Trigger Property="..." Value="...">
      <Setter .../>
      <Setter .../>
    </Trigger>
  </Style.Triggers>
</Style>

Quelle: http://openbook.galileocomputing.de/visual_csharp_2010

15.09.2012 - 22:07 Uhr

Wenn ich mich nicht irre, dann ist das möglich.

15.09.2012 - 12:53 Uhr

Danke für die Antworten.
Ich nutze jetzt eine Kombination aus beidem, da ich die Schiffe selbst nicht als Objekt benötige.
Meine Schiffsklasse speichert alle wichtigen Werte, die das Schiff betreffen und die Anzahl der Schiffe.
Ein Schiff erzeuge ich über eine statische Funktionen, der ich ein Enum und die Anzahl der Schiffe übergebe.

12.09.2012 - 18:44 Uhr

Das war auch erst mein Gedanke, nur war ich mir nicht sicher, ob es wegen dem größeren Speicherbedarf ein bessere Lösung gibt,
da ja viele Schiffe einer Art, sonst immer ein neues Objekt wäre, mit gleichen Werten.

Bsp. 10.000 Auroras --> komplett gleiche Werte

Man könnte auch beides verknüpfen: In dem man die Anzahl in der Klasse als Eigenschaft definiert.

12.09.2012 - 18:34 Uhr

Hallo community,
Ich arbeite gerade an einem Programm, dass bei einem Browsergame alle Daten ausliest usw.
Nun gibt es allerdings auch Schiffe mit Atk, Hülle, usw...
Sollte ich nun für jedes Schiff eine eigene Klasse anlegen oder sollte ich lieber in einer Klasse Flotte alle Schiffe als int speichern und die Eigenschaften über Funktionen auslesen (Atk, Hülle, etc.).
Das Gleiche gilt ja auch für Forschung und Gebäude.

Ich tendiere eher zu letzterem.

11.09.2012 - 18:41 Uhr

Verständlich, auch wenn das nicht viel wäre:
(hab bisher auch nicht mit unsicherem Code gearbeitet)


            unsafe
            {
                // d ist double[10,10]
                // fixed, andere Möglichkeit, um an p zu kommen, kenn ich nicht...
                // irgend etwas mit Marshal glaub ich...
                fixed (double* p = d)
                {
                    double* pUnfixed = p;
                                 // statt 10 -> i*array.GetLength(1)
                    pUnfixed+= 10;

                    double[] test = new double[10];                    
                    // in ein entsperechendes Array kopieren
                    Marshal.Copy(new IntPtr(pUnfixed),  test,0, 10);                    
                }
            }
        }

11.09.2012 - 18:20 Uhr

Naja über unsicheren Code ⚠ kann man die Elemente auf jedenfall herauskopieren in ein double[64] Array, bzw. den entsprechenden Pointer übergeben.

11.09.2012 - 18:07 Uhr

Kann den deine AddData-Methode überhaupt ein Array entgegen nehmen?

28.03.2012 - 19:26 Uhr

Ich vermute mal, dass das ein Problem mit 64bit-Systemen ist:
Ich denke, dass der Registrypfad
HKEY_LOCAL_MACHINE\SOFTWARE*Wow6432Node*\Microsoft\Windows NT\CurrentVersion
ist und nicht
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Du versuchts zwar den zweiten zu öffnen, doch das Betriebsystem ändern den Pfad zum ersten, da du keine 64bit Programm startest.
Was du aber gegen diese Änderung tun kannst, weiß ich nicht?

16.03.2012 - 13:15 Uhr

Wo genau liegt jetzt dein Problem?

12.03.2012 - 10:36 Uhr

Ich weiß nicht wie man es am besten macht, aber du könntest doch am Anfang der Daten den Verwendungszweck mit schicken also:

  1. Datei Nr. sowieso
  2. Append
  3. Länge der Daten
  4. Daten
10.03.2012 - 17:28 Uhr

Versuch mal Combobox.Items[ComboBox.SelectedIndex] oder Combobox.SelectedItem

08.03.2012 - 20:00 Uhr

Typische Fall von [FAQ] Warum blockiert mein GUI

Ich empfehle das WebBrowser.DocumentCompleted Ereignis zu verwenden.

06.03.2012 - 16:58 Uhr

Ich glaube der fachbegriff heißt Kubische Splines

06.03.2012 - 16:47 Uhr

Kann der Pfad auch relative sein?
Ausonsten solltest du Prüfen ob die TextBox leer ist, ob ungültige Zeichen in der Pfadangabe vorhanden sind und ob 2 \ im späteren Pfad hintereinander sind.

06.03.2012 - 16:44 Uhr

Welcher Grad soll die erhaltene Funktion haben?
Abhängig von der Länge des Arrays?

12.02.2012 - 14:33 Uhr

Spontan fällt mir da nur ein, das Projekt als Consolenanwedung zu starten.
Dann hat man aber immer dieses hässliche schwarze fenster.

12.02.2012 - 14:17 Uhr

Nein ich habe es mal als WindowsForms Anwendung gestart und da funktioniert es mit xcopy nicht.
Als Test habe ich xcopy durch cmd ersetzt und siehe da es funktioniert.

12.02.2012 - 13:56 Uhr

Bei mir funktioniert es (stdOut enthält die Daten). Allerdings starte ich als Consolenanwendung



             Process process = new Process();
 
            process.StartInfo.FileName = "xcopy.exe";
             process.StartInfo.Arguments = "/?";
             process.StartInfo.UseShellExecute = false;
             process.StartInfo.RedirectStandardOutput = true;
 
            process.Start();
 
           string stdOut = process.StandardOutput.ReadToEnd();
             //Ausgabe von process einlesen mit StreamReader                         
            process.Close();
     

12.02.2012 - 13:32 Uhr

Das crypter.FlushFinalBlock() muss gleich hinter dem letzten Schreibvorgang. Dann funktioniert das auch.

12.02.2012 - 12:42 Uhr

Schon mal was von Flush gehört. Du schreibst zwar die Daten in den MemorySteam rufst aber nicht crypter.FlushFinalBlock() auf.

11.02.2012 - 19:42 Uhr

Wie sieht denn user.BeginConnect aus?

10.02.2012 - 16:11 Uhr

Befinden sich beide PC's im Intranet?

28.01.2012 - 14:28 Uhr

Wie wäre es wenn du einenen DateiStream erstellst und die Bitmap über diesen öffnest:


FileStream fs = new FileStream("C:\\Bild.bmp",FileMode.Open);
Bitmap bmp = new Bitmap(fs);
fs.Close();

27.01.2012 - 18:09 Uhr

über Hole punching z.B.
Ein Vermittlungsserver schickt die IPEndPunkte an beide Clients, die schicken Daten an den jeweiligen. Alle von dort kommenden Daten werden dann als Antwort interpretiert --> sie werden nicht geblockt (Bsp.: Skype)

27.01.2012 - 15:24 Uhr

Es könnte an deinem Router liegen.
In der Regel blockieren die Router von außenkommende Packete, wenn keine Portweitergabe definiert wurden ist, und du selber nicht das erste Packet geschickt hast.
Wenn sich also einer der beiden Clients (der Server) hinter einer Firewall (seiner eigenen oder die des Routers) versteckt, dann werden alle ankommenden Packete blockiert. Durchgelassen werden sie erst, wenn du die Funktion deaktivierst, oder wenn du der Server ein Packet an deinen CLient sendet, da dann die ankommenden Packete als Antwirt interpretiert werden.

(siehe auch UDP Hole punching)

24.01.2012 - 17:06 Uhr

Woher soll jetzt dein Client auch wissen, wie viel er lesen soll?
Und für ReadLine musst du auch ein Zeilenende schreiben.

18.12.2011 - 16:15 Uhr

Hibt es nicht auch eine Eigenschaft isReadOnly?

14.12.2011 - 19:04 Uhr

Die Close Methode verwirft doch das Objekt, wenn ich mich nicht ganz irre, daher kann es sein, dass nach der Close-Methode diese object keine Verbindung mehr aufbauen kann (cath-Fehlermeldung abfange)
Disconnect statt Close, wenn es sowas gibt, könnte helfen, oder du erstelltst ein neues Object.

Ansonsten ist die frage: Wieso öffnset du eine Verbindung un schließt sie dann wieder?

12.12.2011 - 19:04 Uhr

Eigentlich ist UDP verbindungslos, deshalb funktioniert es vielleicht nicht richtig.

05.12.2011 - 10:32 Uhr

Wie die Links werden nicht schnell genug geladen?

Schauh dir mal html an. Solche eingaben werden immer über ein Formular geregelt (<form ...>...</form> und auf der Seite gibt es nur ein <form...> Tag

02.12.2011 - 20:29 Uhr

Schonmal daran gedacht, dass http://adfoc.us nicht die Seite ist um diech einzuloggen?
Hab mal den Quelltext schnell überflogen und glaube, dass die seite http://adfuc.us/?login=1

02.12.2011 - 18:13 Uhr

Toll das du es allein hinbekommen hast. Aber bitte poste das nächste mal die Lösung in einer extra Frage, damit nicht immer Ohne Antwort: davor steht.

27.11.2011 - 17:40 Uhr

Hier die erste Seite die ich bei google gefunden habe:
What is the structure of the RAR header?

21.11.2011 - 19:43 Uhr

Wenn du damit meinst, dass du den Thread nur für PING PONG nutzen willst, dann nein, da du auch Antworten ließt, die KEIN PING sind.
Alle Abfragen werden ansonsten in einen Extrea Thread gepackt, da sonst die GUI blockiert. Eine verarbeitung passiert dann durch events (siehe auch asynchrone Vorgänge)

21.11.2011 - 19:31 Uhr

Ja (das ist auch in meinem link nachzulesen)

21.11.2011 - 19:21 Uhr

Ich hab dein Programm mal getestet und bekomme keinen time out sondern eine Verbindung.

[EDIT]
Er hat ja gleich die erste Zeile ausgegeben und erhält schon einen time out. Selbst wenn, dann müsste er erst ein Ping bekommen

21.11.2011 - 19:03 Uhr

Und was ist jetzt genau dein Problem?
Was bekommst du den als Antwort vom Server?

21.11.2011 - 18:48 Uhr

Ist der Server passwort geschützt?
Hier eine gute Seite zu IRC

09.11.2011 - 17:23 Uhr

Da würde ich dir eher WPF empfehlen. Ich glaube das geht so garnicht mit den normalen Mitteln.

07.11.2011 - 20:01 Uhr

Es gibt bestimmt eine Eigenschaft SelectedIndex. Diese musst du dann auf -1 setzen.

07.11.2011 - 17:53 Uhr

"\." oder @"."
. entspricht jedes belibige Zeichen

07.11.2011 - 17:16 Uhr

Stoppt der Debugger wirklich dort oder nicht eher bei AcceptTcpClient?
Testes du dein Programm zufällig auf nur einem Rechner?
Dann gebe ich dir den Tipp Binde den Client nicht an einen EndPoint und schon garnicht an dem des Servers, wenn ich das Richtig sehe

IPEndPoint endpoint = new IPEndPoint(targetAdress, 5500);
client = new TcpClient(endpoint);
client.Connect(targetAdress, 5500);

this.tcpListener = new TcpListener(IPAddress.Any, 5500);

07.11.2011 - 17:03 Uhr

Den Port kann man über Windows-Firewall>Erweiterte Einstellungen>Eingehende Regel>Neue Regel freigeben, wenn mich nicht alles täuscht.