Вверх ↑
Этот топик читают: Гость
Ответов: 1841
Рейтинг: 369
#1: 2009-11-16 13:21:10 ЛС | профиль | цитата
Собственно есть прибор который подключается к ПК через СОМ1 интерфейс, обычно к нему подключаюсь через HyperTerminal в винде но через него не удобно пересылать данные вот и решил сделать свою прогу.
Но вот застрял на том что при приёме дынных с прибора вместо предполагаемых строк данных посыпались крякозябры и справится с ними не как не магу...
Пробовал пропускать поток через все кодировки (компонент Charset) но так и не достиг такого эффекта как в HyperTerminal.
Собственно вот что принимает (без компонента Charset)
code_15675.txt

а вот как через HyperTerminal.
code_15676.txt
Возможно ли реализовать это?
Вот мои наработки...

Add(MainForm,2953706,21,105)
{
Width=602
Height=220
}
Add(COM,9850402,315,259)
{
Parity=2
link(onRead,243411:doAdd,[])
}
Add(Button,10242838,126,259)
{
Left=15
Top=70
Caption="Connect"
link(onClick,2581834:doEvent1,[])
}
Add(DoData,12785442,252,287)
{
Data=String(2000)
link(onEventData,9850402:doRead,[])
}
Add(Memo,243411,392,266)
{
Left=90
Top=10
Width=485
Height=165
Font=[Arial,8,0,0,204]
ScrollBars=3
}
Add(Thread,11139262,203,287)
{
link(onExec,12785442:doData,[])
}
Add(Hub,2581834,168,259)
{
link(onEvent1,9850402:doOpen,[])
link(onEvent2,11139262:doStart,[(192,272)(192,293)])
}
Add(Button,995880,336,329)
{
Left=15
Top=100
Caption="Очистить"
link(onClick,10668861:doPutText,[])
}
Add(Clipboard,10668861,392,329)
{
Point(PutText)
link(PutText,243411:Text,[])
}
карма: 1
0
файлы: 2code_15675.txt [862B] [120], code_15676.txt [407B] [113]
Ответов: 5446
Рейтинг: 323
#2: 2009-11-16 13:24:28 ЛС | профиль | цитата
CriDos, крякозябры скорее всего являются характеристиками символов (цвет буквы/фона) и/или символами управления кареткой. Надо искать документацию (старинную) о "физических" терминалах, точнее - об управляющих последовательностях.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#3: 2009-11-16 13:28:38 ЛС | профиль | цитата
мде...
------------ Дoбавленo в 14.07:
Может кто встречал аналог HyperTerminal но только под DOS?
карма: 1
0
Ответов: 2125
Рейтинг: 159
#4: 2009-11-16 15:03:15 ЛС | профиль | цитата
Кодировка, судя по всему, тут ни при чём. В первой колонке, скорее всего, должны быть цифры 0001 0002 0003... А цифры везде одинаково кодируются.
Тут я бы обратил внимание на параметры связи COM1, возможно хост передаёт 7 бит с контролем чётности, а ты принимаешь 8 бит без контроля чётности.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#5: 2009-11-16 15:05:45 ЛС | профиль | цитата
хм, поэкспериментирую...
карма: 1
0
Ответов: 2125
Рейтинг: 159
#6: 2009-11-16 15:07:47 ЛС | профиль | цитата
Посмотрел схему, скорее наоборот, ты используешь контроль чётности, а хост, возможно, просто передаёт два стоповых бита. Вобщем разбирайся с параметрами связи.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#7: 2009-11-16 15:23:54 ЛС | профиль | цитата
Ну вот с такими параметрами принимает гипер терминал:
Биты данных: 7
Чётность: Чётный
Стоповые биты: 1
Максимум попыток: 1
Отпущенной время: 10 (сек)
В компоненте COM как я понял вот здесь можно поменять эти параметры?
PortParam := 'baud=' + Int2Str(BaudRate) + ' parity=' + Parity +
' data=8 stop=1 ' +
'octs=off';

карма: 1
0
Ответов: 2125
Рейтинг: 159
#8: 2009-11-16 15:35:19 ЛС | профиль | цитата
Кабы ещё свойство было, сколько бит передавать Возможны варианты 5,6,7 или 8 бит. Да и количество стоповых бит бывает 1, 1.5 или 2.
Но кто-то решил: всегда 8 бит и один стоповый
карма: 1

1
Голосовали:CriDos
Ответов: 1841
Рейтинг: 369
#9: 2009-11-16 15:38:26 ЛС | профиль | цитата
Поменял с data=8 на data=7 и всё норм теперь
------------ Дoбавленo в 15.45:
tsdima, cпасибо за наводку
------------ Дoбавленo в 15.52:
А свойства не помешалиб
карма: 1
0
Ответов: 8930
Рейтинг: 823
#10: 2009-11-16 16:31:29 ЛС | профиль | цитата
tsdima, года три тому проверял LPT на непрерывность: подавал с СОМ пакеты, принимал через LPT с записью, было по 10 бит на знак: стартовый, 8 бит данных и стоповый; чётности не было. (Windows периодически забирала LPT на десятки миллисек, умный Galkov рассказал, как с этим бороться)
карма: 19

0
Ответов: 2125
Рейтинг: 159
#11: 2009-11-16 16:40:39 ЛС | профиль | цитата
Леонид, я понимаю, 8N1 уже практически стандарт, но вот у человека прибор есть, и он видите-ли 7E1 использует. И без переделки компонента не работает, хучь в ухо мочись...
карма: 1

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)