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

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();
}
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!