Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.22;
Скачать: CL | DM;

Вниз

Работа с COM портом.   Найти похожие ветки 

 
Alexsys ©   (2003-03-15 16:12) [0]

Подскажите, плиз, чем бы мне послушать COM порт? Надо сделать, чтобы прога ловила азбуку Морзе и выдавала ее же. А вот как мне выйти на COM порт, не соображу...


 
jack128 ©   (2003-03-15 18:10) [1]

э-э, как это?? Азбука Морзе это ж вроде тире и точки, то есть длинный, по времени, сигнал и короткий сигнал... и как это через ком порт сделать?? У него ж старт биты, стоп биты будут мешать формированию этих сигналов ...
Через ком порт цифровые данные передавать надо...
Вот если договариться что 0 - точка, 1 - тире, то другое дело..


 
GEN ©   (2003-03-16 00:50) [2]

Удалено модератором
Примечание: Личная переписка


 
SoftOne ©   (2003-03-16 01:46) [3]

2 jack128 © (15.03.03 18:10)
Точки и тире говорите? Ну а если за точку, к примеру, принять байт FEh, а за тире, опять же к примеру, байт E0h?


 
jack128 ©   (2003-03-16 15:05) [4]

тут проблема в уровнях сигнала.
В вашем примере сигнал - "+12 вольт",
"ноль" - "-12 вольт".
А вот что принимает за ноль и сигнал внешнее устройство - это вопрос.


 
wal ©   (2003-03-17 13:45) [5]


> Точки и тире говорите? Ну а если за точку, к примеру, принять
> байт FEh, а за тире, опять же к примеру, байт E0h?

А в СОМ-порте еще и скорость обмена есть, а азбуке Морзе, насколько я (радиолюбитель) знаю, скорость обмена не регламентируется.


 
Jack128 ©   (2003-03-17 17:18) [6]

wal © (17.03.03 13:45)
Так если она(скорость) не регламентируется, то какая разница, с какой скоростью работать???


 
Alexsys ©   (2003-03-23 07:59) [7]

Сорри, уезжал в командировку и не заглядывал сюда.
Так как, никто не знает компонентика, чтобы выставил на кокой-нибудь ноге 1 или 0, в зависимости от текста, и их же там и ловил? А насчет скорости, так некоторые ограничения все-таки есть - длина точки, длина тире, длина пауз между символами и словами. Хотя это и не очень точные значения и придется повозиться с их распознанием, а пока мне нужно только снять (выдать) сигнал с порта (на порт).
Всем спасибо!


 
Vad ©   (2003-03-23 11:32) [8]

Нужно использовать другие сигналы на COM порту
например RI.
Когда я делал подобную штуку я использовал порт джойстика.
Там есть 4 контакта для кнопок - как раз то, что надо.


 
SoftOne ©   (2003-03-24 02:19) [9]

2 Vad © (23.03.03 11:32)
По сабжу, врядли подойдет использование одного бита (RI или др.). Ведь у азбуки Морзе три состояния - "точка", "тире", "пауза".

2 Alexsys © (23.03.03 07:59)
Если хочешь работать с COM-портом, то обрати внимание на мой пост "SoftOne © (16.03.03 01:46)".
Учти при этом, что минимальный по времени сигнал, т.е. "точка" - должен быть >= 2/3 длительности бита для заданной скорости.
Далее - "тире" в стандарте, может превышать длительность "точки" в 9 раз. Если более, или точка слишком большая, то стоит "грамотно отслеживать" ошибку "framing error".


 
Vad ©   (2003-03-24 06:40) [10]

>По сабжу, врядли подойдет использование одного бита
>(RI или др.). Ведь у азбуки Морзе три состояния -> "точка", "тире", "пауза".

У азбуки морзе два состояния: есть сигнал и нету.
Или мы говорим про разные азбуки?

Отслеживать длительность сигнала и квалифицировать его
как точку или тире совсем не сложно.


 
wal ©   (2003-03-24 11:22) [11]

Например EscapeCommFunction(Handle, SETDTR)-Установит сигнал DTR в лог. 1. С сигналами TxD, RxD такой номер не пройдет


 
SoftOne ©   (2003-03-25 02:59) [12]

2 Vad © (24.03.03 06:40)
> Отслеживать длительность сигнала и квалифицировать его
>как точку или тире совсем не сложно.

Да, скореее всего не сложно, если работать в ДОС"е или писать свой драйвер порта. В противном случае, имхо, возможны ошибки.


 
Alexsys ©   (2003-03-25 04:49) [13]

wal © (24.03.03 11:22)
Например EscapeCommFunction(Handle, SETDTR)-Установит сигнал DTR в лог. 1. С сигналами TxD, RxD такой номер не пройдет

А можно ли этим сделать так: короткая 1 - точка, длинная 1 - тире? Задача именно такая. И с какого контакта тогда снимать то, что приходит? Нет ли такой же функции для проверки состояния сигнала?

Спасибо всем за ответы. Навели на размышления.


 
Anatoly Podgoretsky ©   (2003-03-25 10:18) [14]

В WinApi есть функции контроля управляющих входов-выходов DTR/DSR/CTS/RTS, используй любую пару.

А точка/тире отличаются именно длительностью, твоя задача реализовать алгоритм распознования длительности и анализ. Кроме длительности посылки надо распознавать длительность паузы.

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
3-70160
Toshanius
2003-05-02 10:39
2003.05.22
Index is out of date!


1-70244
Le!
2003-05-09 07:40
2003.05.22
Присвоение времени.


14-70435
PVOzerski
2003-04-30 15:02
2003.05.22
как нормализовать ситуацию с телефоном


1-70287
Valeris
2003-05-12 16:41
2003.05.22
Об указателях


8-70403
Друмлин
2003-02-09 20:31
2003.05.22
есть ли такая шутка?