-
Вот ещё не понятна одна вещь. В руководстве к SysLibCom написано, что все функции для чтения/записи/закрытия порта должны принимать дескриптор порта (который был возвращён функцией SysComOpen при открытии порта). А на деле во всех примерах вместо дескриптора просто подставлен номер порта (тип PORTS), а на значение, возвращаемое функцией SysComOpen, просто забивают. И биб-ка ComService тоже не выдаёт никакого дескриптора. Получается, в руководстве ошибка, и обращение к порту идёт тупо через его номер.
-
А что, принять тот факт, что дескриптор совпадает с номером порта, неполучается?
-
Если честно, не очень, хотя бы потому, что дескриптор должен возвращаться функцией. И постоянным он быть вовсе не обязан от открытия к открытию. Так в руководстве ошибка?
-
Почему это не должен быть постоянным это в документации прочитали? Не путаете с хешем дескриптор
-
Ну потому что так во всех системах программирования, когда программа получает доступ к какому-то аппаратному ресурсу, файлу на диске и т. д., она работает с его дескриптором, и он почти всегда разный.
-
Назовите такую систему программирования, я хоть посмеюсь над создателем
-
Да хоть С++. Будете смеяться над Бьерном Страуструпом? Уточню (если вдруг мы о разном) - дескриптор в смысле синоним англ. handle, или указатель.
-
Хоть файл это и не аппаратное устройство, но File file = new File("path");
Приблизительно во всех одинаково, так file же неизменен, да его экземпляр имеет уникальный хеш но в проге, Вы будете использовать только имя file
-
В принципе тут я соглашусь с Boris_K'ом. Но само возвращаемое значение в данной конкретной системе всегда постоянное.
И на всякий напомню, авторы syslibcom - немцы.
-
Ещё одна непонятка с этой ComService. После открытия порта она ждёт 100 циклов, а затем применяет к порту настройки с помощью функции SysComSetSettings (из SysLibCom). При этом в руководстве об этой ф-ии написано, что "Возвращает TRUE при успешной установке параметров, иначе FALSE". А в блоке же ComService это возвращённое значение обрабатывается так:
Ready := NOT SysComSetSettings(Settings.Port, ADR(Settings));
И с какого бодуна там стоит NOT? :confused: То есть получается, что при успешной установке параметров выходное значение Ready (которое сигнализирует о полной готовности порта к работе) будет FALSE. А на деле, при работе оно TRUE, мол вроде как всё готово, а выходит что при этом установка параметров прошла неуспешно. Что за бред??