Вверх ↑
Разработчик
Ответов: 26170
Рейтинг: 2127
#1: 2011-03-05 10:18:19 ЛС | профиль | цитата
AVladM писал(а):
на него может дать только автор Dilma

За этот компонент отвечает не только Dilma, но и я за него отвечаю
AVladM писал(а):
Мне нужно, чтобы COM передавал байт HEX именно как байт, а не как два символа в виде HEX

Млин, ну и упертый. Неужели впадлу применить конвертор и нужно именно доработать компонент, встраивая в него тот же конверторв -- разница в этом какая Не хочешь передавать строку передавай символ.


Add(Convertor,10256914,168,182)
{
Mode=5
link(onResult,10767894:doConvert,[])
}
Add(Convertor,10767894,217,182)
{
Mode=4
}

Ты предлагаешь все бросить и встроить вот эту схему, которую я предложил в компонент. Еще раз -- какой в этом смысл Я точно знаю, что Dilma скажет то жк самое
------------ Дoбавленo в 09.07:
AVladM писал(а):
Ваш пример манипулирует текстом и, как Вы сами понимаете, никакого отношения к HEX не имеет

Привет. А что, HEX не тест
И что, передав 0F через конвертор, на другом конце порта не получат 15 бинарным байтом (00001111)
------------ Дoбавленo в 10.18:
Я, кажется, начинаю понимать бознь пользователя передавать строку через COM порт -- действительно, если передставить,что классический текст, есть набор не специальных, а текстовых символов -- да, так оно и есть, но это если использовать классическое представление строки, как nulterminate (ограниченную нулем) набор неслужебнвых символов. Но строка, передаваемая компоненту COM, не является nulterminate строкой, она представлет собой копию участка памяти определенной длины, содержащую в себе весь диапазон сиволов от 0 до 255, те представляет собой не строку как текст, а строку, как набор символов.
Определимся с HEX. Возьмем конвертор HEXToStr и подадим на него 00010203, на выходе получим Chr(0) + Chr(1) + Chr(2)+ Chr(3) (00000000 00000001 00000002 00000003 в бинарных данных), в отладчике мы это не увидим, а вот подав эот набор символов на вход COM порта на другом конце ответного порта получим тот же набор символов -- Chr(0) + Chr(1) + Chr(2) + Chr(3)
карма: 22

0