В настоящее время я пытаюсь отправить строку произвольной длины на термопринтер Boca FGL46 (принтер HID) с java. На MacOS это работает без проблем; 100-байтовая полезная нагрузка приводит к 100-байтовому выходному отчету. Однако при windows выходной отчет всегда равен 32 байта + 1 байт для идентификатора отчета (0x00). Мне удалось избежать этой проблемы, разбив данные на 32-байтовые сегменты, но я хотел бы понять причину root.
Я пробовал device.setOutputReport(reportId, data, data.length);
с обоими hid4 java и purejavahidapi . Я также попытался записать данные непосредственно в путь к устройству, используя Windows 'WriteFile. В каждом методе данные были усечены до 32 байтов. Один и тот же код на MacOS отправляет отчеты любой длины. Почему windows имеет такое ограничение, а MacOS - нет?