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

Вниз

rs-232 и можно ли узнать запитан ли любой из его пинов?   Найти похожие ветки 

 
Zheksonz   (2013-08-23 19:19) [0]

Управление "железякой" осуществляется через контроллер на RS-232, который не имеет обратной связи, это создаёт определённые трудности, т.к. команды в порт уходят и счётчики замелькали, при этом юзверь вилку контроллера не воткнул и недоумевает, почему не работает программа.
Хотелось бы узнать, можно ли использовать незадействованные в передаче данных пины COM порта, и как при это их контролировать?


 
Германн ©   (2013-08-23 22:01) [1]

Можно. Есть специальные входы/выходы для "управления потоком". RTS+CTS и DTR+DSR


 
Anatoly Podgoretsky ©   (2013-08-23 22:20) [2]

Правда надо уточнить, что такое запитан.


 
Zheksonz   (2013-08-23 22:50) [3]


> Можно. Есть специальные входы/выходы для "управления потоком".
>  RTS+CTS и DTR+DSR


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


> Правда надо уточнить, что такое запитан.


Не надо, это для тех кто умеет не только умничать...


 
умный-преумный   (2013-08-23 23:38) [4]


> Не надо, это для тех кто умеет не только умничать...


я умею. объясни, что значит "запитан". питание есть? но там нет питания. сигнал есть? но тогда почему запитан?
а по существу, без обратной связи ничего не сделать. без переделки железяки ничего не сделать. с данным уровнем сознания ничего не сделать.


 
умный-преумный   (2013-08-23 23:41) [5]


> Германн ©   (23.08.13 22:01) [1]
> Можно. Есть специальные входы/выходы для "управления потоком".
>  RTS+CTS и DTR+DSR


где есть? на железяке? а мож там только RX и SG?


 
Anatoly Podgoretsky ©   (2013-08-23 23:49) [6]

> Zheksonz  (23.08.2013 22:50:03)  [3]

Надо Федя, надо - особенно тем кто не знает как устроен rs-232


 
Германн ©   (2013-08-24 00:19) [7]


> умный-преумный   (23.08.13 23:41) [5]
>
>
> > Германн ©   (23.08.13 22:01) [1]
> > Можно. Есть специальные входы/выходы для "управления потоком".
>
> >  RTS+CTS и DTR+DSR
>
>
> где есть?

В разъеме. Обычно этого достаточно чтобы убедиться что кабель не забыли подсоединить к компьютеру. А к железяке его можно припаять.


 
Zheksonz   (2013-08-24 09:51) [8]


> Германн ©   (24.08.13 00:19) [7]


Вижу в RS-232 такие пины и я так понимаю со стороны железяки, при её включении, нужно подать 5V например на СTS, и уже программно анализировать отсутствие или наличие питания на этом пине? Если я правильно понял, то как программно, средствами Делфи, проверять наличие питания например на CTS пине?


 
Anatoly Podgoretsky ©   (2013-08-24 10:39) [9]

> Zheksonz  (24.08.2013 09:51:08)  [8]

5V  плюс или минус.
И ничего что оно уже подано?


 
умный-преумный   (2013-08-24 11:45) [10]

5v - граничное напряжение, может вообще не отработать.

> проверять наличие питания например на CTS пине

там никогда нет питания.


 
zheksonz   (2013-08-24 13:02) [11]

Один говорит, что напряжение на этом пине
> уже подано

, другой говорит, что там не более пяти, и то которых
> там никогда нет

)))

И это в ветке для начинающих)))


 
turbouser ©   (2013-08-24 13:34) [12]


>  zheksonz

Ты бы видел что в остальных ветках творится :)


 
zheksonz   (2013-08-24 14:01) [13]


> Ты бы видел что в остальных ветках творится :)


Да то ерунда, что советов и реальной помощи даже новички здесь не получают... Главное "лицо" поумнее сделать и фразы позамудрённее и пообиднее уметь писать... тут этого в основном достаточно )))


 
turbouser ©   (2013-08-24 14:09) [14]


> zheksonz   (24.08.13 14:01) [13]

Эээээ нет. тут ты неправ. Советы дают правильные, только вот без расчета что новички поймут... эт проблема.


 
turbouser ©   (2013-08-24 14:21) [15]

Стоит ли упоминать, что тут отметились люди, которые в общении с железяками сцобаку скушали?


 
умный-преумный   (2013-08-24 15:30) [16]


> turbouser ©   (24.08.13 14:21) [15]

не стоит.

неоднократно говорилось, что"помощь" и "сделать все" - разные вещи.
в данном случае, даже второе невозможно, из-за полностью отсутствующих исходных данных. Кроме того, поправка в терминологии вызывает у истца раздражительность, и он упорно настаивает на своей формулировке. Кроме того, информация по вопросу на 99,99% присутствует в интернете, находится на первом месте в поисковиках, и более того - на русском языке.
В результате вышеперечисленного, нет желания, кроме как пофлудить.
И даже советовать замкнуть 2 и 3 на стороне железяки, чтобы получить возможность не только определить подсоединенность, но и корректность прохождения данных (целостность кабеля) простейшим loopback тоже нет желания.


 
Anatoly Podgoretsky ©   (2013-08-24 15:42) [17]


> zheksonz   (24.08.13 14:01) [13]

Опять другие виноваты и только один Д"Артаньян.
Это уже диагноз.


 
zheksonz   (2013-08-24 17:10) [18]


> И даже советовать замкнуть 2 и 3 на стороне железяки, чтобы
> получить возможность не только определить подсоединенность,
>  но и корректность прохождения данных (целостность кабеля)
> простейшим loopback тоже нет желания.


Да ладно, не было... вижу было))) Но суть не в том... Как после замыкания 2х, 4х или не важно скольки концов средствами Делфи определить что они замкнуты? Или любой из них "сел на землю"? Если есть ссылка где это расписано, то дайте плз. Только не нужно мне рассказывать, что это слишком глупый вопрос поэтому МАСТЕРА не снизойдут до того, чтобы рассказать где информация на то, как это делается. Лучше проигнорируйте, конечно если желание самоутвердиться вам позволит это сделать ; )


> В результате вышеперечисленного, нет желания, кроме как
> пофлудить.


Вот это чистая правда, и мизерное количество новичков ищущих здесь помощи лишь подтверждает эти слова.


> Это уже диагноз.


Анатолий, зачем тратить время на пустословие? Ну если ты доктор, иди лечи людей, если ты мастер, то учи их решать задачи... твой же конёк в каждой ветке, даже для новичков, называть задающих вопросы именами любимых героев... ну смысл в этом какой?


 
Zheksonz   (2013-08-24 17:28) [19]

Кстати, на одном из сайтов в интернете нашёл следующий код:
var
 Status: Cardinal;
begin
 PortHandle:= CreateFile("COM1", GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if GetCommModemStatus(PortHandle, Status) then
   begin
     if Status and MS_CTS_ON <> 0 then ; // CTS is ON
     if Status and MS_DSR_ON <> 0 then ; // DSR is ON
     if Status and MS_RING_ON <> 0 then ; // RI is ON
   end;
 CloseHandle(PortHandle);


вот и весь ответ на вопрос ))


 
умный-преумный   (2013-08-24 17:33) [20]


> Anatoly Podgoretsky ©   (24.08.13 15:42) [17]

не прав. диагноз - это при болезни. тут болезнь отсутствует.


> zheksonz   (24.08.13 17:10) [18]

про "самоутвердится" за твой счет - смешно. самоутверждение возможно, подловив мастера на ошибке. в данном же случае...


 
Zheksonz   (2013-08-24 18:54) [21]


> про "самоутвердится" за твой счет - смешно.


Вот и мне смешно))) Т.к. не за мой счёт, а в принципе и постоянно))


 
Zheksonz   (2013-08-24 18:57) [22]

В общем рано я радовался... Думал, что логическое состояние на пине изменится, когда я CTS на "землю повешу", а не тут-то было(((

А как же тогда менять логическое состояние этого пина?


 
turbouser ©   (2013-08-24 19:14) [23]


> Zheksonz   (24.08.13 18:57) [22]


> А как же тогда менять логическое состояние этого пина?

Научись правильно задавать вопросы для начала


 
Zheksonz   (2013-08-24 19:21) [24]


> Научись правильно задавать вопросы для начала


А что тебе не нравится в моём последнем вопросе?


 
умный-преумный   (2013-08-24 20:02) [25]


> Zheksonz   (24.08.13 19:21) [24]

http://segfault.kiev.ua/smart-questions-ru.html


 
ProgRAMmer Dimonych ©   (2013-08-24 20:28) [26]

> [18] zheksonz   (24.08.13 17:10)

Забавно, но именно благодаря такому стилю ответов Мастеров я лет 8 назад начал ощущать резкий прирост скиллов. И на сегодняшний день если и приходится задавать здесь вопросы, то они уже относятся не к конкретной реализации, а к общим вопросам. Потому что ответы на вопросы типа «Как включить лампочку?» всегда можно найти в гугле (все задачи уже кто-то когда-то решал), в документации лампочки или экспериментальным путём. А вот вопросы наподобие «Как лучше расположить лампочки, чтобы <…>?» могут быть действительно интересными и здешние Мастера обычно достаточно активно включаются в обсуждение и объём флуда в таких темах минимален.


 
Zheksonz   (2013-08-24 20:30) [27]


> умный-преумный   (24.08.13 20:02) [25]


Всё, прочитал! Вернее даже зазубрил!!! Теперь я могу считаться человеком, который умеет правильно задавать вопросы? Может теперь мне можно ехидничать и оскорблять тех кто что-то знает хуже меня, а заодно перейти на следующую стадию становления высокомерного человека? )))

А по теме, всем, кому понадобится использование RS-232 для передачи сигнала от устройства на компьютер, нужно замкнуть контакты 7 и 8, RTS и CTS соответственно, а считать на компьютере этот сигнал можно следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
var
 CommPort : string;
 hCommFile : THandle;
 ModemStat : DWord;
begin
 CommPort := "COM2";

 {Open the comm port}
 hCommFile := CreateFile(PChar(CommPort), GENERIC_READ, 0, nil,
 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if hCommFile = INVALID_HANDLE_VALUE then
 begin
   ShowMessage("Unable to open "+ CommPort);
   exit;
 end;

 {Get the Modem Status}
 if GetCommModemStatus(hCommFile, ModemStat) <> false then
 begin
   if ModemStat and MS_CTS_ON <> 0 then
     ShowMessage("The CTS (clear-to-send) is on.");
   if ModemStat and MS_DSR_ON <> 0 then
     ShowMessage("The DSR (data-set-ready) is on.");
   if ModemStat and MS_RING_ON <> 0 then
     ShowMessage("The ring indicator is on.");
   if ModemStat and MS_RLSD_ON <> 0 then
     ShowMessage("The RLSD (receive-line-signal-detect) is on.");
 end;

 {Close the comm port}
 CloseHandle(hCommFile);
end;


 
ProgRAMmer Dimonych ©   (2013-08-24 20:55) [28]

> Всё, прочитал! Вернее даже зазубрил!!! Теперь я могу считаться
> человеком, который умеет правильно задавать вопросы? Может
> теперь мне можно ехидничать и оскорблять тех кто что-то
> знает хуже меня, а заодно перейти на следующую стадию становления
> высокомерного человека? )))

Вы так ничего и не поняли, мсье.


 
Zheksonz   (2013-08-24 21:01) [29]


> ProgRAMmer Dimonych ©   (24.08.13 20:55) [28]
Вы так ничего и не поняли, мсье.


Я даже отрицать не буду... Вы правы))


 
умный-преумный   (2013-08-24 21:13) [30]


> Zheksonz   (24.08.13 20:30) [27]
>

нихрена ты не прочитал. если бы хоть что-то прочитал, то не стал бы здесь спрашивать, и не писал бы этот бред.

> if ModemStat and MS_DSR_ON <> 0 then
>      ShowMessage("The DSR (data-set-ready) is on.");


> нужно замкнуть контакты 7 и 8, RTS и CTS соответственно

как это между собой соотносится?
где учат такому дебильному (по-другому не назвать) совместному обозначению контактов (позиционным номер разъема, которые отличаются в разных типах, и наименованием сигналов)?
Выкини свои комплексы. Тебя бесит, что считают за глупого? Зря. Во-первых, за безграмотного, а во-вторых, ты такой и есть - совершенно безграмотный. И совершенно нечего этого стыдится, или раздражаться.
Я уже дал универсальный ответ, подходящий наибольшим образом под столь скудно озвученную задачу - ты игнорировал его, и полез в сторону. Но и там наломал дров, не изучив минимум стандарта rs-232: сигнал готовности устройства - DSR, логика единицы и ноля обеспечиваются напряжением от +-3 до +-15 вольт.
И как результат самонадеянности и необоснованной амбициозности - тупое решение


 
Германн ©   (2013-08-24 21:21) [31]


> сигнал готовности устройства - DSR

Хм.


 
Zheksonz   (2013-08-24 21:26) [32]


> умный-преумный   (24.08.13 21:13) [30]


У кого ещё какие версии что меня бесит и какие у меня комплексы? Если все считают так же, то может считать тему закрытой?


 
Zheksonz   (2013-08-24 21:29) [33]

Удалено модератором
Примечание: Достаточно, ты успел много народу оскорбить.


 
умный-преумный   (2013-08-24 21:52) [34]


> Германн ©   (24.08.13 21:21) [31]

Data Set Ready (DSR) – This is a signal turned on by the DCE to indicate to the
DTE that it is connected to the line.



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

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

Наверх





Память: 0.54 MB
Время: 0.003 c
15-1385757002
Юрий
2013-11-30 00:30
2014.06.15
С днем рождения ! 30 ноября 2013 суббота


2-1377425963
vasa777
2013-08-25 14:19
2014.06.15
сразу в результ


15-1385929802
Юрий
2013-12-02 00:30
2014.06.15
С днем рождения ! 2 декабря 2013 понедельник


15-1385489716
Абориген
2013-11-26 22:15
2014.06.15
Чего бы знатное почитать?


15-1386230442
RWolf
2013-12-05 12:00
2014.06.15
ООП





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский