Интересно, и кто кроме меня его знает, если это именно мой COMEX имеется в виду
Почему нельзя напрямую задать мне вопрос, а не в обезличенном виде.
Почему нельзя напрямую задать мне вопрос, а не в обезличенном виде.
Многоуважаемый Nesco, я понятия не имею чей это компонент, поэтому прошу простить меня за такое обращение.
А что там понимать-то...
Ну для Вас это естественно, вы же сами говорите что это Ваш компонент...
в асинхронном режиме данные выдаются на точку onRead, но в другом потоке, эту точку нельзя использовать напрямую с интерфейсными элементами, потому, что их отрисовка и обработка их сообщений происходит в главном потоке, те в другом, по отношению к потоку чтения.
А тут можно поподробнее? Имеется ввиду, что данные нужно куда-то складывать? Если да, то куда?
Преимущество компонента COMEX перед обычным в том, что ему не нужно указывать количество байт для чтения, у него количество считанных байт определяется внутри обработчика чтения, и срабатывают точки чтения автоматически по приходу данных, так же, как, например, а компоненте TCP_Client
Если следовать логике, то из ваших слов я понял следующее: для простого компонента COM-порта нужно указать количество принимаемых(ожидаемых) байтов и именно столько он примет и выдаст, а для COMEX ничего указывать не нужно, он сам должен принять пакет байт ЛЮБОЙ длины. Но на деле происходит следующее, если в COMEX заслать строку длиной более некогорого количества символов, например больше 5, то он примет эту строку в виде двух кусков, а не целиком. Компонент "откусывает" от пакета сначала 2-3 байта, после чего принимает оставшиеся. Как именно компонент определяет конец пакета? Что можно сделать чтобы компонент не разрывал пакет?
С уважением, участник форума mark2013. Заранее благодарю за ответ.