Я получаю сообщение об ошибке при записи в последовательный порт (COM1) на компьютере с Windows. Возвращенная ошибка — 112 (DISK_FULL). Поскольку это последовательный порт, я не понимаю, что означает ошибка.
Может ли быть так, что буфер заполнен? Я так не думаю, так как я получаю сообщение об ошибке при первом запросе, который я отправляю после открытия порта.
Подобные ошибки ввода-вывода генерируются драйвером устройства. Который в наши дни редко является стандартным драйвером последовательного порта Windows, предоставляемым Microsoft, он работает только на реальном оборудовании последовательного порта. Последовательные порты очень часто эмулировать с помощью драйверов устройств, которые используют пользовательское оборудование для реализации связи. Bluetooth и USB например. Но все идет.
Это удобно для производителя устройства, потому что они не должны предоставлять пользовательскую DLL, которая позволяет использовать устройство в вашем собственном коде. Эмуляция последовательного порта позволяет вам просто использовать стандартные функции winapi для общения с устройством.
Но главное, что проблема заключается в том, что вы на самом деле не используете оборудование последовательного порта. И еще один факт, что эти производители устройств не очень хорошо пишут собственные драйверы. Особенно USB-драйвер славится своим низким качеством. Что совсем не помогает, так это то, что последовательные порты не поддерживают технологию plug-and-play, они слишком примитивны для поддержки обнаружения устройств. Простые вещи, такие как определение номера порта, подключенного к устройству, и отключение устройства во время его использования являются серьезными препятствиями.
Так что, конечно, код ошибки «диск заполнен» ничего не значит. Модуль записи драйвера устройства захватил код ошибки для какого-либо состояния ошибки, характерного для устройства. Единственный способ узнать, что на самом деле означает ошибка — это спросить продавца.
Других решений пока нет …