<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1159347</guid>
        <pubDate>Fri, 30 Jun 2006 05:10:07 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1159347</link>
        <description><![CDATA[medved_68: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1156252'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>medved_68 &#064; <time class="tag-quote__quoted-time" datetime="2006-06-28T09:51:41+04:00">28.06.06, 05:51</time></span><div class='quote '>Просто обнули DCB.Flags и хлопни нужные маски Or.<br>
flags<br>
dword fbinary: // режим проверки символа eof - включение данного режима windows<br>
// не поддерживает ( по крайней мере сейчас). Маска &#036;01<br>
dword fparity: //Контроль четности Маска &#036;02 - включение контроля четности<br>
dword foutxctsflow: // Маска &#036;04 - Включение контроля сигнала cts при выводе байтов.<br>
dword foutxdsrflow: // Маска &#036;08 - Включение контроля сигнала dsr при выводе байтов.<br>
dword fdtrcontrol: // Маска &#036;30 - Тип контроля сигнала dtr: значения<br>
dtr_control_disable деактивация сигнала.<br>
dtr_control_enable конкретное значение сигнала можно задавать через <br>
вызов escapecommfunction.<br>
dtr_control_handshake Автоматическое управление сигналом.<br>
dword fdsrsensitivity: // Маска &#036;40 - Включение контроля сигнала dsr.<br>
dword ftxcontinueonxoff:1; // xoff continues tx<br>
dword foutx: // Маска &#036;100. Включение режима работы по xon xoff при передаче<br>
dword finx: // Маска &#036;200 -//- при приеме<br>
dword ferrorchar: // Маска &#036;400. Разрешение замещения при ошибочном приеме<br>
// (несовпадение четности) принятого байта на член структуры errorchar.<br>
dword fnull: // Маска &#036;800 enable null stripping - пропускать при приеме символы null<br>
dword frtscontrol: // Маска &#036;3000. Тип контроля:<br>
rts_control_disable<br>
rts_control_enable<br>
rts_control_handshake Аналогично сигналу dtr<br>
rts_control_toggle - Высокий уровень пока, есть данные для передачи.<br>
<br>
dword fabortonerror // Маска &#036;4000. Прекращение операций<br>
// чтения - записи при возникновении ошибок<br>
dword fdummy2:17; // Не используются<br>
</div></div><br>
<br>
Это все что он содержит, не знаю почему у тебя не качает &lt;_&lt; Я это взял прям из аттача. :yes:<br>
Важные моменты:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">dword foutxctsflow: // Маска  - Включение контроля сигнала cts при выводе байтов.</div><div class="code_line">dword foutxdsrflow: // Маска  - Включение контроля сигнала dsr при выводе байтов.</div><div class="code_line">dword fdtrcontrol: // Маска  - Тип контроля сигнала dtr: значения</div><div class="code_line">dtr_control_handshake Автоматическое управление сигналом.</div><div class="code_line">dword frtscontrol: // Маска 00. Тип контроля:</div><div class="code_line">rts_control_handshake Аналогично сигналу dtr</div><div class="code_line">dword fabortonerror // Маска 00. Прекращение операций</div><div class="code_line">// чтения - записи при возникновении ошибок</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1157560</guid>
        <pubDate>Wed, 28 Jun 2006 17:39:39 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1157560</link>
        <description><![CDATA[Prince: чё-то файл не скачивается]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1156252</guid>
        <pubDate>Wed, 28 Jun 2006 05:51:41 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1156252</link>
        <description><![CDATA[medved_68: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">А как правильно настроить?</div></ol></div></div></div></div><br>
Просто обнули DCB.Flags и хлопни нужные маски Or. Файл в аттаче. :rolleyes:]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1155871</guid>
        <pubDate>Tue, 27 Jun 2006 17:15:30 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1155871</link>
        <description><![CDATA[Prince: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Да,если ты правильно настроишь TDCB.Flags</div></div><br>
 А как правильно настроить?]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1153227</guid>
        <pubDate>Mon, 26 Jun 2006 08:43:45 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1153227</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Testudo</strong><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1153053'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Testudo &#064; <time class="tag-quote__quoted-time" datetime="2006-06-26T07:27:30+00:00">26.06.06, 07:27</time></span><div class='quote '>И плохо, что думать не хочешь. </div></div><br>
Изобретать велосипед конечно полезно, но зачем??? :wacko:]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1153053</guid>
        <pubDate>Mon, 26 Jun 2006 07:27:30 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1153053</link>
        <description><![CDATA[Testudo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1151674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>medved_68 &#064; <time class="tag-quote__quoted-time" datetime="2006-06-24T11:17:27+00:00">24.06.06, 11:17</time></span><div class='quote '>Значит неправильно настроил порт на аппаратный контроль. По умолчанию плевать он хотел на все управляющие сигналы.   <br>
А по самопалу могу сказать, что я по прерыванию от порта на микроконтроллере сразу выставляю CTS, затем считываю байт из регистра приемника, обрабатываю его, и только потом снимаю CTS. Т.е. делаю как ты говорил, но только со стороны самопала, со стороны компа это все уже <strong class='tag-b'>продумали за меня.</strong> </div></div>И плохо, что думать не хочешь.]]></description>
        <author>Testudo</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151674</guid>
        <pubDate>Sat, 24 Jun 2006 11:17:27 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151674</link>
        <description><![CDATA[medved_68: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1151212'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T16:42:55+00:00">23.06.06, 16:42</time></span><div class='quote '>Другими словами, нужно просто включить аппаратный контроль и забыть про этот самый контроль? Драйвер всё сделает сам? А мне остаётся только написать команду writefile и ждать, пока она не выполнится?</div></div><br>
Да,если ты правильно настроишь TDCB.Flags. Надо ожидать завершения writefile и анализировать сколько байт передано, хотя она все равно не вернет управление пока все заявленное не передаст,если не выставлен таймаут по времени записи. Но его надо устанавливать при каждой операции, если передаешь блоки разной длинны, или на время передачи самого длинного блока, тогда нужен анализ, сколько байт передано, если меньше чем нужно, то повторить writefile с передачей того что не допередал.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1151212'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T16:42:55+00:00">23.06.06, 16:42</time></span><div class='quote '>А можно ли избежать зависания, выставив таймауты? </div></div><br>
Именно для этого они и придуманы&#33;&#33;&#33;&#33;<br>
 <strong class='tag-b'>Testudo</strong><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1151455'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Testudo &#064; <time class="tag-quote__quoted-time" datetime="2006-06-24T06:04:25+00:00">24.06.06, 06:04</time></span><div class='quote '>Я же сказал, что работал с самодельными устройствами. У них делал все как положено, но аппаратный контроль ничего не проперал. </div></div><br>
Значит неправильно настроил порт на аппаратный контроль. По умолчанию плевать он хотел на все управляющие сигналы. :D  :lool: <br>
А по самопалу могу сказать, что я по прерыванию от порта на микроконтроллере сразу выставляю CTS, затем считываю байт из регистра приемника, обрабатываю его, и только потом снимаю CTS. Т.е. делаю как ты говорил, но только со стороны самопала, со стороны компа это все уже продумали за меня.]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151455</guid>
        <pubDate>Sat, 24 Jun 2006 06:04:25 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151455</link>
        <description><![CDATA[Testudo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150872'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>medved_68 &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T12:13:55+00:00">23.06.06, 12:13</time></span><div class='quote '>Если настроен аппаратный контроль, то драйвер сам будет приостанавливать передачу по сбросу CTS и ждать пока пока модем его выставит. </div></div>За модем не отвечаю. <br>
Я же сказал, что работал с самодельными устройствами. У них делал все как положено, но аппаратный контроль ничего не проперал.]]></description>
        <author>Testudo</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151212</guid>
        <pubDate>Fri, 23 Jun 2006 16:42:55 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1151212</link>
        <description><![CDATA[Prince: Другими словами, нужно просто включить аппаратный контроль и забыть про этот самый контроль? Драйвер всё сделает сам? А мне остаётся только написать команду writefile и ждать, пока она не выполнится?<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>ты можешь отправить сразу хоть все данные только при работе в синхроне writefile тебе не вернет управление пока все не отправит. А если в этот момент случится авария на линии то все зависнет, причем наглухо.</div></div><br>
А можно ли  избежать зависания, выставив таймауты?]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150872</guid>
        <pubDate>Fri, 23 Jun 2006 12:13:55 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150872</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Testudo</strong><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150858'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Testudo &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T12:03:16+00:00">23.06.06, 12:03</time></span><div class='quote '>Если в синхроне, то отправлять данные модему желательно по одному байту, при этом проверяя сигнал CTS</div></div><br>
Почему???<br>
Если настроен аппаратный контроль, то драйвер сам будет приостанавливать передачу по сбросу CTS и ждать пока пока модем его выставит.]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150858</guid>
        <pubDate>Fri, 23 Jun 2006 12:03:16 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150858</link>
        <description><![CDATA[Testudo: Если в синхроне, то отправлять данные модему желательно по одному байту, при этом проверяя сигнал CTS. Если он установлен - писать можно. Если нет - нужно подождать.]]></description>
        <author>Testudo</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150724</guid>
        <pubDate>Fri, 23 Jun 2006 10:49:31 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150724</link>
        <description><![CDATA[medved_68: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150659'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T10:18:36+00:00">23.06.06, 10:18</time></span><div class='quote '>А как именно с ними работать?<br>
Вот я отправляю какой-то буфер командой writefile. Как узнать, какой размер данных можно отправить за раз?<br>
И когда можно отправлять новую порцию данных? </div></div><br>
ты можешь отправить сразу хоть все данные только при работе в синхроне writefile тебе не вернет управление пока <strong class='tag-b'>все не отправит</strong>. А если в этот момент случится авария на линии то все зависнет, причем наглухо. Я же тебе говорю: &quot;переходи на асинхрон&quot;. Тогда структура Overlap тебе вернет количество реально переданных в линию байт, даже если случится внезапный Break. А момент когда можно отправить очередную порцию отслеживается наблюдением за событием EV_TXEMPTY (из буфера передачи послан последний символ). В это же время и произойдет установка события Overlap.Event, привязанного к записи.]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150659</guid>
        <pubDate>Fri, 23 Jun 2006 10:18:36 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150659</link>
        <description><![CDATA[Prince: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Аппаратный контроль данных - работа с линиями RTS/CTS. Они включаются модемом или компом, когда их буфер приема заполнен полностью.<br>
Есть еще DTR/DSR. Они устанавливаются когда приемный буфер заполнен на 3/4. (тоно насчет доли не уверен) </div></div><br>
А как именно с ними работать?<br>
Вот я отправляю какой-то буфер командой writefile. Как узнать, какой размер данных можно отправить за раз?<br>
И когда можно отправлять новую порцию данных? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2006-06-23T10:22:55+00:00">23.06.06, 10:22</time></span></span><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>После открытия порта выполняется команда SetCommState (Handle,lpDCB)(за синтаксис не ручаюсь),которая настроит порт согласно тем данным, которые ты занес в структуру DCВ, а если в дельфях то TDCВ.Flags. И после этого только можно с ним работать.  Может у тебя все в норме в проге и просто порт не настроен, судя по твоему последнему письму??? </div></div> <br>
А, понял. Да, через  DCB. Ну я посмотрел вначале настройки через GetCommState, а что именно и как нужно настроить для передачи голосовых данных, не знаю. Работает - и работает. Хотя вот уже знаю, что должен быть включён аппаратный контроль данных. Буду пробовать.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150655</guid>
        <pubDate>Fri, 23 Jun 2006 10:15:37 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150655</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Prince</strong><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150476'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T08:49:46+00:00">23.06.06, 08:49</time></span><div class='quote '>Что такое TDCВ? Я пример приводил, как я с портом работаю. </div></div><br>
Ты с портом работаешь через WriteFile, readFile. Это я понял. Но как ты его настраиваешь перед работой, после того как открыл CreateFile???? Откуда он у тебя знает с какой скоростью работать, какие таймауты и т.д. Поэтому я и спрашиваю:<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150156'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>medved_68 &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T05:54:58+00:00">23.06.06, 05:54</time></span><div class='quote '>Ты работаешь с Сом портом через TDCВ???</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150476'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T08:49:46+00:00">23.06.06, 08:49</time></span><div class='quote '>Что такое TDCВ? </div></div><br>
Обволакивающий класс для структуры DCВ, в которой должны быть прописаны настройки компорта при его открытии. После открытия порта выполняется команда SetCommState (Handle,lpDCB)(за синтаксис не ручаюсь),которая настроит порт согласно тем данным, которые ты занес в структуру DCВ, а если в дельфях то TDCВ.Flags. И после этого только можно с ним работать. :yes: Может у тебя все в норме в проге и просто порт не настроен, судя по твоему последнему письму??? &lt;_&lt;  <br>
<strong class='tag-b'>Testudo</strong><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150501'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Testudo &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T09:03:08+00:00">23.06.06, 09:03</time></span><div class='quote '>Интересно. Особенно схематика подключения к линии.</div></div><br>
Сегодня пороюсь в архивах.Там только был небольшой нюанс - вероятность определения 50-70%, а на блокированных линиях вообще грустно где то 10-20%, но у нас сейчас почти их не осталось, хотя кто его знает. Помню только, что сама линия заводилась на устройство через обычный диодный мост на КЦ407. Тогда меня порадовало одно-отсутствие ложных срабатываний, типа когда никто трубку не снял, а датчик сработал. И еще не сделал в свое время усреднение в зависимости от АТС к кому подключаешься, там несильно, но были различия во времени ответа станции. Но шел путем АОНа на ВМ80 + АОНа на Z80 это я точно помню.]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150501</guid>
        <pubDate>Fri, 23 Jun 2006 09:03:08 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150501</link>
        <description><![CDATA[Testudo: Аппаратный контроль данных - работа с линиями RTS/CTS. Они включаются модемом или компом, когда их буфер приема заполнен полностью.<br>
Есть еще DTR/DSR. Они устанавливаются когда приемный буфер заполнен на 3/4. (тоно насчет доли не уверен) <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2006-06-23T09:04:27+00:00">23.06.06, 09:04</time></span></span><br>
Это нужно в первую очередь для модема, иначе он может не успеть обработать твои данные и освободить буфер. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2006-06-23T09:06:19+00:00">23.06.06, 09:06</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150156'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>medved_68 &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T05:54:58+00:00">23.06.06, 05:54</time></span><div class='quote '>Года 2 назад я эту проблему решил путем подключения дополнительного девайса на МК51 к компу. Если интересно, могу поподробнее. </div></div><br>
Интересно. Особенно схематика подключения к линии.]]></description>
        <author>Testudo</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150476</guid>
        <pubDate>Fri, 23 Jun 2006 08:49:46 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150476</link>
        <description><![CDATA[Prince: Что такое TDCВ? Я пример приводил, как я с портом работаю.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150156</guid>
        <pubDate>Fri, 23 Jun 2006 05:54:58 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150156</link>
        <description><![CDATA[medved_68: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1150122'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-23T05:39:53+00:00">23.06.06, 05:39</time></span><div class='quote '> Как организовать аппаратный контроль данных? </div></div><br>
Ты работаешь с Сом портом через TDCВ???Если да, то в DCB.Flags проверь биты установки режима HandShake для fDTRControl,FDsrSensitivity,fRTSControl.И обязательно должен быть включен fOutCTSFlow. Какие биты я не помню,но в нете по Flags полно инфы. Да кстати по поводу снятия трубки на другом конце. Года 2 назад я эту проблему решил путем подключения дополнительного девайса на МК51 к компу. Если интересно, могу поподробнее.]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150122</guid>
        <pubDate>Fri, 23 Jun 2006 05:39:53 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150122</link>
        <description><![CDATA[Prince: Сливаю чистые данные формата ADPCM, моно, 8000 Гц, 4 бита без заголовка, естественно.<br><br>Этот формат поддерживается модемом. Кроие того, он поддерживает частоты 7200Гц и 11025 Гц. И еще 2 и 8 бит. <br>Вообще модемы могут поддерживать PCM, ADPCM, и GSM6.10 в зависимости от производителя и модели.<br><br>Проиграть файл можно хотя бы универсальным проигрывателем или медиа-плеером.<br><br>У меня проблема с передачей звуковых данных. Есть много ньюансов. Оказывается, есть там всякие управляющие коды и нужен аппаратный контроль данных, чтобы не было переполнения буфера(вот только-только прочитал). Как организовать аппаратный контроль данных?<br><br>А, вот ещё какая штука. Оказывается, строки &#036;10 d , которые модем возвращал, это признак обнаружения сигнала КПВ(контроль посылки вызова). Видел несколько тем, люди справшивали, как определить, когда на удаленном конце сняли трубку. Ну вот видимо, таким способом можно.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150084</guid>
        <pubDate>Fri, 23 Jun 2006 04:59:59 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1150084</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Prince</strong>Извини уж неугомонного, но:<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1149276'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T12:53:36+00:00">22.06.06, 12:53</time></span><div class='quote '>я ему сливаю звуковой поток, а кодек модема(модем голосовой) переводит этот поток в аналог. Вот с этим и проблема.</div></div><br>
Сливаешь ему просто Wav файл???Или же чистые данные???<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1148981'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T11:18:39+00:00">22.06.06, 11:18</time></span><div class='quote '>Протокол(формат) 8000 Гц 4 бита ADPCM(вроде бы). Но как их передавать, эти данные</div></div><br>
<strong class='tag-b'>Вроде бы </strong>тут не прокатит<br>
А ты пробовал Wav файл проиграть на чем нибудь с таким форматом??? :wacko: <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">сжатие ADPCM:</div><div class="code_line">(Частота выборки) предлагаются следующие значения:</div><div class="code_line">&nbsp;</div><div class="code_line">5 кГц - приемлем только для речи; </div><div class="code_line">11 кГц - самое низкое рекомендуемое качество для короткого музыкального фрагмента; четверть стандартного значения качества CD (компакт-диска);</div></ol></div></div></div></div><br>
Что то непонятка какая-то с протоколами сжатия:wacko:  :wacko:]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149276</guid>
        <pubDate>Thu, 22 Jun 2006 12:53:36 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149276</link>
        <description><![CDATA[Prince: Это модем занимается переводом в аналог. Я ему передаю команду AT#VTX, и он переходит в режим передачи голосовых данных, возвращая СONNECT. Дальше, по идее, я ему сливаю звуковой поток, а кодек модема(модем голосовой) переводит этот поток в аналог. Вот с этим и проблема. В конце  звукового потока я  передаю модему 2 байта - &#036;10 &#036;18. Модем снова переходит в командный режим и в ответ выдаёт VCON(см. лог выше). Вот примерно так. Ну а дальше снова можно испоьлзовать обычные AT-команды.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149223</guid>
        <pubDate>Thu, 22 Jun 2006 12:33:46 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149223</link>
        <description><![CDATA[medved_68: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1149152'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T12:11:15+00:00">22.06.06, 12:11</time></span><div class='quote '>Ну да, пытаюсь. Только не со звуковухи, а из файла</div></div><br>
Поясни как ты файл звука превратишь в аналог &lt;_&lt; Что то я не догнал]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149152</guid>
        <pubDate>Thu, 22 Jun 2006 12:11:15 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149152</link>
        <description><![CDATA[Prince: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Или ты пытаешьсяпроиграть данные в линию со звуковухи. Это вообще то совсем другой коленкор </div></div><br>
Ну да, пытаюсь. Только не со звуковухи, а из файла. А как по другому это сделать?]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149024</guid>
        <pubDate>Thu, 22 Jun 2006 11:32:18 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1149024</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Prince</strong><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1148981'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T11:18:39+00:00">22.06.06, 11:18</time></span><div class='quote '>Так у меня ведь связь не с модемом, а с телефоном устанавливается. Или без разницы? </div></div><br>
Так бы и сказал. Разница есть, даже очень. Большая проблема узнать момент снятия трубки на том конце.<br>
И сразу вопрос<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1148981'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T11:18:39+00:00">22.06.06, 11:18</time></span><div class='quote '>А данные пытаюсь передавать из wav файла.</div></div><br>
А на том конце у человека звуковуха в ухе, что ли???? Или ты пытаешься<strong class='tag-b'>проиграть данные в линию</strong> со звуковухи. Это вообще то совсем другой коленкор]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148981</guid>
        <pubDate>Thu, 22 Jun 2006 11:18:39 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148981</link>
        <description><![CDATA[Prince: Так у меня ведь связь не с модемом, а с телефоном устанавливается. Или без разницы? С асинхронным режимом я пока не разобрался. Мне бы пока хоть с синхронным. А данные пытаюсь передавать из wav файла. Протокол(формат) 8000 Гц 4 бита ADPCM(вроде бы). Но как их передавать, эти данные. Есть там, видимо,  какой-то секрет, а какой?]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148926</guid>
        <pubDate>Thu, 22 Jun 2006 10:59:21 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148926</link>
        <description><![CDATA[medved_68: <strong class='tag-b'>Prince</strong><br>
Вопрос:&quot;А голосовые данные откуда берешь???&quot;<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=146157&view=findpost&p=1148803'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Prince &#064; <time class="tag-quote__quoted-time" datetime="2006-06-22T10:13:13+00:00">22.06.06, 10:13</time></span><div class='quote '>Если передаю небольшой буфер, модем вроде &quot;квакает&quot; что-то. Если передаю большой буфер, например 10000 байт, функция writefile виснет. </div></div><br>
А чтобы не было зависаний перейди на асинхронный режим работы с портом и периодически проверяй Overlap.Event,которая привязана к writefile, только Event с ручным сбросом. После того как модем выдаст тебе CONNECT<br>
проверяй событие порта EV_RLSD (связь модемов установлена), и только при наступлении этого события можно начинать работу с данными, ну а какой будет протокол решать тебе. :rolleyes:]]></description>
        <author>medved_68</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148803</guid>
        <pubDate>Thu, 22 Jun 2006 10:13:13 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1148803</link>
        <description><![CDATA[Prince: Вот результаты &quot;исследований&quot;.<br>
Для обмена с модемом используется вот такая функция<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function SendCommand(const command:string):string;</div><div class="code_line">var writed,readed:dword;</div><div class="code_line">&nbsp;&nbsp; &nbsp;buffer:array[1..64]of byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;i:byte;</div><div class="code_line">&nbsp;&nbsp; &nbsp;c:string;</div><div class="code_line">&nbsp;&nbsp; &nbsp;evtmask,mask:dword;</div><div class="code_line">begin</div><div class="code_line">result:=&#39;&#39;;</div><div class="code_line">c:=command+char({text}d)+char({text}a);</div><div class="code_line">for i:=1 to length(c) do buffer[i]:=byte(c[i]);</div><div class="code_line">PurgeComm(COMPort,PURGE_TXCLEAR or PURGE_RXCLEAR);</div><div class="code_line">if s&#60;&#62;&#39;&#39; then</div><div class="code_line">if not writefile(COMPort,buffer,length(c),writed,nil) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">mask:=EV_RXCHAR;</div><div class="code_line">setcommmask(COMPort,mask);</div><div class="code_line">if not WaitCommEvent(COMPort,mask,nil) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">sleep(100);</div><div class="code_line">if not readfile(COMPort,buffer,64,readed,nil) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">if readed=0 then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">for i:=1 to readed do</div><div class="code_line">result:=result+char(buffer[i]);</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Дальше передаю команды<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">s:=&#39;AT#CLS=8 #VSR=8000 #VBS=4&#39;;</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div><div class="code_line">s:=&#39;ATD80973595377&#39;;</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div><div class="code_line">&nbsp;</div><div class="code_line">sleep(5000);</div><div class="code_line">&nbsp;</div><div class="code_line">s:=&#39;AT#VTX&#39;;</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div><div class="code_line">&nbsp;</div><div class="code_line">for i:=1 to 5 do begin</div><div class="code_line">s:=&#39;&#39;;</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">s:=char()+char();</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div><div class="code_line">s:=&#39;ATH0&#39;;</div><div class="code_line">r:=sendcommand(s);</div><div class="code_line">form1.memo1.Lines.Add(s);</div><div class="code_line">form1.memo1.Lines.Add(r);</div></ol></div></div></div></div><br>
<br>
в результате имею вот такой диалог<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">AT#CLS=8 #VSR=8000 #VBS=4</div><div class="code_line">&nbsp;</div><div class="code_line">OK</div><div class="code_line">&nbsp;</div><div class="code_line">ATD80973595377</div><div class="code_line">&nbsp;</div><div class="code_line">VCON</div><div class="code_line">&nbsp;</div><div class="code_line">AT#VTX</div><div class="code_line">&nbsp;</div><div class="code_line">CONNECT</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line">&nbsp;</div><div class="code_line">d</div><div class="code_line"></div><div class="code_line">&nbsp;</div><div class="code_line">VCON</div><div class="code_line">&nbsp;</div><div class="code_line">ATH0</div><div class="code_line">&nbsp;</div><div class="code_line">OK</div></ol></div></div></div></div><br>
Квадратики - это &#036;10.<br>
Т.е., модем дозванивается, переключается в режим передачи данных. А вот дальше какая-то загадка. Если ничего не передавать, то модем через некоторое время выдает вот эти самые строки - &#036;10d&#036;10, что-то в этом роде.<br>
Если передаю небольшой буфер, модем вроде &quot;квакает&quot; что-то. Если передаю большой буфер, например 10000 байт, функция writefile виснет. <br>
В общем, буду благодарен, если кто-нибудь знает, как передавать голосовые данные модему.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1147853</guid>
        <pubDate>Wed, 21 Jun 2006 16:29:18 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1147853</link>
        <description><![CDATA[zubr: Взять можно здесь: <a class='tag-url' href='http://res6.narod.ru/Klientservcomconnect.zip' target='_blank'>Klientservcomconnect</a>. Голосовые функции не поддерживает, есть полный Help + примеры работы с ним.]]></description>
        <author>zubr</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146990</guid>
        <pubDate>Wed, 21 Jun 2006 09:30:32 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146990</link>
        <description><![CDATA[Prince: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Попробуй отправлять просто команду &#39;AT#13#10&#39;, не помню точно, но вроде на ATH модем ответ не дает. Также можешь воспользоваться моим компонентом KlientServComConnect - он как раз предназначен для работы с модемом и COM-портом.</div></div> <br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>zubr прав, все AT команды должны заканчиваться парой CR/LF.<br>
Сразу предупрежу, что желательно использовать апаратный контроль потока данных. И перед каждым чтением проверять наличие байта в приемном буфере. Иначе функции чтения будут виснуть, и даже с использованием оверлеев, пока функция чтения не вернется, писать в порт нельзя. </div></div><br>
Так и передаю, вместе с #13#10. В ответ модем должен выдавать строку #13#10 OK #13#10, а я получаю только #13.<br>
А что такое аппаратный контроль данных. Как это реализовывается? Про оверлеи я почитал(на англ.), но не очень понял, куда их тулить. Пока понял так, что если оверлеи не используются, то команды чтения не &quot;заканчиваются&quot; до тех пор, пока не будет принят хотя-бы один символ. Это правильно? <br>
У меня так и происходит, то Wait, то Read виснут. <br>
В общем, нет у меня чёткого представления, как должен быть реализован обмен, что-то не учитываю.<br>
Я делаю так:<br>
write - команда<br>
wait  - в буфер принят символ<br>
read  - ответ.<br>
Ненадёжно работает. Первую команду отправляю, получаю один байт #13, на последующие вроде нормальную строку получаю. Чувствую, чего-то я не догоняю, как обмен происходит, там ведь еще всякие сигнал есть: DSR,CTS... <br>
Я могу и код представить. Только позориться не хочется. Пока только эксперименты.<br>
Конечная цель - дозвониться до абонента и передать голосовое сообщение(голосовой модем).<br>
zubr, а где взять KlientServComConnect? Поддерживает ли он голосовые функции? Если не получится ручками, придется, конечно, готовыми компонентами пользоваться.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146932</guid>
        <pubDate>Wed, 21 Jun 2006 09:01:43 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146932</link>
        <description><![CDATA[Testudo: <strong class='tag-b'>zubr</strong> прав, все AT команды должны заканчиваться парой CR/LF.<br>
Сразу предупрежу, что желательно использовать апаратный контроль потока данных. И перед каждым чтением проверять наличие байта в приемном буфере. Иначе функции чтения будут виснуть, и даже с использованием оверлеев, пока функция чтения не вернется, писать в порт нельзя. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2006-06-21T09:02:39+00:00">21.06.06, 09:02</time></span></span><br>
Конкретно с модемом я не работал, зато много работал с собственными устройствами по RS232 (COM).]]></description>
        <author>Testudo</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146871</guid>
        <pubDate>Wed, 21 Jun 2006 08:23:20 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146871</link>
        <description><![CDATA[zubr: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Открываю порт через СreateFile. Отправляю команду ATH через writefile. В ответ (readfie) вместо Ok получаю только один байт - &#036;13.</div></div><br>
Попробуй отправлять просто команду &#39;AT#13#10&#39;, не помню точно, но вроде на ATH модем ответ не дает. Также можешь воспользоваться моим компонентом KlientServComConnect - он как раз предназначен для работы с модемом и COM-портом.]]></description>
        <author>zubr</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146209</guid>
        <pubDate>Tue, 20 Jun 2006 16:28:43 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146209</link>
        <description><![CDATA[Pavia: 19 Connect 38400 Установлена связь на скорости 38400бит/с <br>С модемом не работал, но игрался с ком мышью. Собственно ошибок не вижу.<br><br>Решил поработать с модемом. Тав возращается не один байт, а несколько.]]></description>
        <author>Pavia</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146193</guid>
        <pubDate>Tue, 20 Jun 2006 16:03:47 +0000</pubDate>
        <title>COM-порт+модем</title>
        <link>https://forum.sources.ru/index.php?showtopic=146157&amp;view=findpost&amp;p=1146193</link>
        <description><![CDATA[Prince: Здравствуйте. Не знаю, как правильно организовать передачу АТ-команд и приём ответов от модема. Как с этими СОМ-портами работать правильно?<br>Открываю порт через СreateFile. Отправляю команду ATH через writefile.  В ответ (readfie) вместо Ok получаю только один байт - &#036;13.<br>В общем, кто разобрался с СОМ и с модемами, отзовитесь.]]></description>
        <author>Prince</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	