Здравствуйте. Есть прибор на базе STM32. На нем реализовано устройство которое передает на комп данные с частотой не менее 200 пакетов в сек. по протоколу HID. По сути все просто пара датчиков. Размер пакета 32 байта. Частота рассчитана на уровне железа, длина пакета 32 байта и отправка каждые 5 мс итого 200 фпс. Сбор пакета занимает максимум 1мс.
На компе есть программа которая эти данные принимает и выводит частоту получения.
Прием данных организовал через стандартные функции WinApi
public static bool ReadReport(IntPtr HidDeviceObject, byte[] InputReport, HIDP_CAPS Capabilities, ref uint NumberOfBytesRead)
{
bool result = false;
if (HidDeviceObject != IntPtr.Zero)
{
CancelIo(HidDeviceObject);
result = ReadFile(HidDeviceObject, InputReport, Capabilities.InputReportByteLength, ref NumberOfBytesRead, 0);
}
return result;
}
Но наблюдается какое то странное поведение. На стационарном компе Windows 7 программа показывает нормальную скорость в 200 фпс. Ту же самую прогу и устрйоство ставим на 10 и скорость падает до 60 фпс. Еще отмечу что это ноутбучная система.
Кто может подсказать что не так с этйо десяткой?? В плане ппроизводительности ноутбук достаточно матерый. 6 ядер. 16 гигов. План производительности выставлен максимальный.
Может у семерки еще где нибудь настройка для скорости?