UDP-Senderate auf F1 UDP und seriellem PortC#

Ein Treffpunkt für C#-Programmierer
Guest
 UDP-Senderate auf F1 UDP und seriellem Port

Post by Guest »

Ich baue ein Lenkrad, um F1-Codemasters-Spiele zu spielen.
Diese Spiele haben die Möglichkeit, Telemetrie über UDP zu senden.
https:/ /answers.ea.com/t5/General-Discussion/F1-23-UDP-Specification/td-p/12632888
Image

Wie gezeigt, können Sie eine UDP-Senderate (von 10 Hz bis 120 Hz) auswählen
Ich sende das UDP an denselben PC (IP 127.0.0.1) und habe eine Net-C#-Konsolen-App programmiert, die die Daten abruft und sie dann über einen USB-TTL-Konverter an einen sendet Nextion-Bildschirm und ein ESP32 zum Blinken der LEDs.

Code: Select all

public static readonly SerialPort serialPort = new("COM7", 115200, Parity.None, 8, StopBits.One)
{
Handshake = Handshake.None
};

public static void NextionPrepare(string s)
{
var commandBytes = System.Text.Encoding.Default.GetBytes(s);
var terminatorBytes = new byte[] {0xFF, 0xFF, 0xFF};
combinedBytes.AddRange(commandBytes.Concat(terminatorBytes));
}

public static void SendNextion()
{
serialPort.Write(combinedBytes.ToArray(), 0, combinedBytes.Count);
combinedBytes.Clear();
}
Dieser Code erstellt die serielle Port-Verbindung und sendet bei Bedarf Daten. Die LEDs sind ähnlich, nur ein .ino-Code zum Blinken.
Mein Problem ist, wenn ich die UDP-Senderate auf über 30 Hz (60, 100 oder 120 Hz) einstelle und die LEDs verzögert sind, wie eine Sekunde. Wenn ich 30 Hz oder weniger verwende, funktioniert es perfekt.
Meine Frage ist also, wo liegt das Problem?
Sendet das Spiel nicht die richtige Anzahl an Paketen?
Ist mein Code (oder die Programmiersprache) ineffizient?
Hat die serielle Schnittstelle oder der cp210x usb-ttl irgendwelche Einschränkungen?
Ich habe keine Ideen mehr, ich habe die Puffergrößen erhöht, aber nichts ändert sich.
Irgendwelche Hinweise?
Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post