Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];

Вниз

COM Port. Помощь в начинании.   Найти похожие ветки 

 
Darker2   (2001-10-28 07:54) [0]

Привет всем!
Раньше занимался только БД, вот возникла необходимость осваивать и такое. Читаю литературу, как открыть его, настроить, видно из статей. Видел и ставил компоненты. А откровенно говоря без логики работы... понимаю только 30-50%.
Ну например:
Скорость - 600 бод;
1 стартовый, 8 информационных, 1 стоповый;
Байт синхронизации - 0а5Н.

После чего я эти 8 бит обрабатывать буду.

Насколько я понял, байт синхронизации нужен если я дескриптор файла привязанного к СОМу. Ну и т.п.

Ребята... кому не лень, пожалуйста объясните, или ссылочку на более понятную инфу... за все отклики заранее спасибо.


 
Darker2   (2001-10-28 08:06) [1]

Насколько я понял, байт синхронизации нужен если я дескриптор файла привязанного к СОМу. Ну и т.п.
Извиняюсь... :о)
Хотел сказать если я буду испльзовать этот дескриптор...


 
nil   (2001-10-28 13:06) [2]

не надо лезть в такие дебри. Делфи хорошо работает с СОМ портами через АРI Communication Functions. и посмртри структуру DCB в Windows SDK help


 
Darker2   (2001-10-28 14:38) [3]

То nil:
структуру DCB я посмотрел, а "АРI Communication Functions" не нашел.


 
nil   (2001-10-28 23:44) [4]

открой Delphi -> Help->Windows SDK и в index набери Communication Functions


 
Darker2   (2001-10-29 06:13) [5]

То nil:
Спасибо, нашел. Но если честно не понял, чем АРI Communication Functions лучше :о(
Я же говорю... я впервые взялся за СОМ порты, а вся инфа в основном кто уже хоть что-то понимает :о)


 
savva   (2001-10-29 09:56) [6]

как работать с портами
http://www.delphikingdom.com/mastering/ports5.htm
под билдер:
http://www.happytown.ru/prog/practika/com_win32.html

я этим пользовался...


 
TonnyS   (2001-10-29 11:04) [7]

Ком порт поддерживает максимум 115200 бит/с, т.к. порт асинхронный, то начало передачи определяется стартовым битом, потом идут биты данных (8 например) потом стоповый бит. Таким образом, для передачи 1 байта данных нужно 10 бит, следовательно 115200 бит/с = 11520 кБайт данных. А вообще это всё знать не обязательно, если через API програмить :) хотя мне было воблом с апи разбираться и я напрямую в порт писал.


 
Darker2   (2001-10-29 12:12) [8]

Всем спасибо!!!
Я нашел компонент, доволно простой(14кб), но... надеюсь его хватит :о)
Вопрос такой:
Я получаю от весов даныые с байтом синхронизации, например он (%)
соответственно если открыть порт и через 5 сек прочитать буфер -
Buf:=(рыац%йцукенгш%длоро) то информация (рыац% йцукенгш%длоро) после чего можно порт закрыть, и с помощью Str:=COPY(Buf,6,8)работать
с Str. Я прав?
Если хотите могу слить в кладовку файл компонентика


 
Darker2   (2001-10-29 12:25) [9]

Проблема в том что я этих весов и в глаза не видел :о)
Но что они посылают скорость(600) и байт синхронизации(0a5H) знаю.
Да забыл... есть еще и стоповый бит (Почему бит, а не байт?).


 
Anatoly Podgoretsky   (2001-10-29 16:03) [10]

TonnyS (29.10.01 11:04)
Ком порт поддерживает максимум 115200 бит/с

Ты отстал от жизни, у меня используются порты на 460800 и 921600 и ничего нормально работают


 
Juri   (2001-11-03 10:46) [11]

Ув. Darker2 , а весы случайно не Петровес , уж больно по протоколу похоже.
Мы такие используем и уже написана программа коммуникации с компом написана,там ничего сложного.
А по поводу стопового бита - почему бит? Ответ - потому , что бит.
При формате передчи 8-бит(1-байт) к информационним битам может присоеденяется еще бит четности и стоповый бит один,полтора или два.
Стоп бит - это просто порт находится в режиме паузы на время определяемое скорости передачи 1; 1,5 или 2 бита.









 
Darker   (2001-11-07 07:12) [12]

To: Juri
Абсолютно верно - Петровес! (вот что значит спец! :о)
Могли бы Вы пример скинуть, если не трудно. Или объяснить как он точно работает. Я эти весы в глаза не видел. У меня есть их пример на VB, у них там включается таймер на 5 сек., после чего он ждет появления чего либо в буфере, если ничего не появляется то выводит ошибку порта (пусто), если же информация есть он проверяет первый байт на синхронизацию, если нет снова включает таймер и так далее, если первый синхр. то далее идет расшифровка.
И еще вопрос: весы постоянно передают данные?

Заранее благодарен за любую информацию!


 
REL   (2001-11-09 11:20) [13]

to savva.
Привет дружище. Давно тебя не видел. Помню, как ты помог мне с портами.

Пиши, если что. Пока, Eugene (REL)


 
savva   (2001-11-09 12:21) [14]

>REL привет!!
а я долго отсутствовал....:)))


 
GennadyS   (2001-12-11 16:37) [15]

Вопрос:
В функциях АПИ есть что-то подобное обработки прерываний от СОМ порта?

Мне нужно получить информацию от прибора. Я ему посылаю команду и жду, когда он мне перешлет, по таймеру. Можно ли исключить таймер?



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

Форум: "Система";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
3-42972
--Reporter--
2002-02-12 23:27
2002.03.14
Проблема с record size в Firebird 0.9.4


1-43101
Poirot
2002-02-28 07:43
2002.03.14
Как в компонент ввести свойство типа Int4


7-43192
Schummi
2001-12-09 08:34
2002.03.14
Iexplore


3-42967
Dad
2002-02-09 13:58
2002.03.14
Как отсортировать поле по убыванию


3-42940
Konung
2002-02-12 15:55
2002.03.14
Подстановочные (lookup) поля. Создание из программы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский