Вопрос про злую ось...

Автор smallNix, 08 августа 2014, 12:23:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

smallNix

Только не кидаться...  ::) Подскажите, если кто знает - под злой осью читать из COM-порта можно только с помощью WinApi или есть возможность подцепить ifstream?!? (C++)
Заранее всем спасибо, скептицизм и оскорбления здоровая критика приветствуется  ;D
Кто-то же должен что-то делать...

qupl

В разных средах разработки/языках есть свои средства, хотя они наверняка лишь обертка для api. В дельфи давным давно были rx-компоненты. В .net через readfile.

smallNix

ReadFile, что для Delphi, что для C/C++ - это WinApi. На моей машине, тест показал, что запись через ifstream (произвольный доступ) работает в 40 раз быстрее чем WinApi'шная WriteFile. Подозреваю, что с чтением такая же история. Мне надо как можно быстрее забирать из буфера порта, а то моя 16 Мегагерцовая платка забивает компьютер с Гигарцовым процессором - несерьёзно :( В Linux'е можно com-порт открыть как файл и читать как удобно. А с ХП - окромя как через ReadFile непонятно как добраться до порта. Самое неприятное, что вроде та же функция, что и для работы с файлом, но она принимает HANDLE в качестве указателя на файл, этот HANDLE в ifstream не подсунешь. :'( Пока горожу костыли и жду - вдруг кто-то что-то подскажет.  :)
Кто-то же должен что-то делать...

ioann.sys

Вообще, на винде не получится прочитать из COM, так как этому мешает HAL (Hardware Abstraction Level). То есть, работать придется только на уровне драйвера.
Debian GNU/Linux jessie/sid on notebook ASUS N750JK

smallNix

ioann.sys, спасибо, друг. Совсем забыл про уровень абстракции. Вообще-то я надеялся, что может мелкомягкие что-то побыстрее предоставили чем ReadFile. Но видать не судьба. Буду достигать цели в обход )))
Кто-то же должен что-то делать...