В этих играх есть возможность отправлять телеметрию через UDP.
https:/ /answers.ea.com/t5/General-Discussion/F1-23-UDP-Specification/td-p/12632888

Как показано, вы можете выбрать скорость отправки UDP (от 10 Гц до 120 Гц)
Я отправляю UDP на тот же компьютер (IP 127.0.0.1). И я написал консольное приложение net C#, которое получает данные, а затем отправляет их через преобразователь USB-TTL. на следующий экран и на esp32, чтобы мигать светодиодами.
Код: Выделить всё
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();
}
Моя проблема в том, что если я устанавливаю скорость отправки UDP выше 30 Гц (60, 100 или 120 Гц), а светодиоды загораются с задержкой, как секунда. Если я использую частоту 30 Гц или меньше, все работает отлично.
Итак, мой вопрос: в чем проблема?
Игра не отправляет правильное количество пакетов?
Является ли мой код неэффективным (или язык программирования?
Есть ли какие-либо ограничения для интерфейса последовательного порта или usb-ttl cp210x?
У меня нет идей, у меня увеличен размер буфера, но ничего изменения.
Есть какие-нибудь подсказки?
спасибо!
Подробнее здесь: https://stackoverflow.com/questions/793 ... erial-port