Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Совершенно ламерский вопрос  (Прочитано 8745 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« : 30-06-2004 14:00 » 

Простите за глупость, туплю сегодня чего то  :oops:

Если к сериальному порту не подрублено никакое устройство, будут ли выполнятся(в асинхронном режиме) WriteFile, ReadFile ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 30-06-2004 15:11 » 

Если работает тн software hadshake когда состояния на передачу не проверяются по-памяти - DTR RTS то будет. А читать... ну не знаю
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Alf
Гость
« Ответ #2 : 30-06-2004 20:16 » 

WriteFile тоже вполне имеет право не работать на "голом" порту.

По крайней мере, в классическом варианте микросхемы UART - 16550 - последовательный выход данных TxD блокировался, если не установлен сигнал готовности DCE к передаче - CTS. При этом выходной буфер передатчика не опустошался до появления сигнала CTS и, естественно, операция записи на этом зависала.

Если для управления потоком используется протокол XON/XOFF, то в разъеме порта COM следует установить две перемычки: RTS-CTS и DTR-DSR-DCD. Кстати, давненько не паял порты, но есть подозрение, что и без сигнала DSR UART тоже будет заблокирован. Поэтому рекомендую установить в порт заглушку с указанными перемычками, хуже никоим образом не будет.

Хотя все сказанное относится к микросхеме 16550, думаю, что в современных реализациях интерфейса с интегрированными портами ситуация должна остаться той же, уж больно хорошо они совместимы со своими классическими предшественниками.
Записан
Anchorite
Гость
« Ответ #3 : 01-07-2004 02:34 » 

С помощью SetCommState порт можно настроить на игнорирование DTR/RTS.
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #4 : 01-07-2004 04:21 » 

Понятно Улыбаюсь А то простейший код
Код:
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"


void main()
{
HANDLE  hCOM=CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (hCOM!=INVALID_HANDLE_VALUE)
{
cout << " Ok Open COM1" << endl;
char buffer[25];
memset(buffer,0,sizeof(buffer));
                strcpy(buffer,"Hello COM ");
  DWORD dw;
OVERLAPPED ov;
for (int x=0;x < 3;x++)
if(!WriteFile(hCOM,buffer,sizeof(buffer),&dw,&ov))
{
cout << "\nImpossible to write to port!" << endl;
}
CloseHandle(hCOM);
}
else cout << "Error Open" << endl;
}
Выдаёт : Impossible to write to port!
Хотя, если делать без FILE_FLAG_OVERLAPPED, т.е. в синхронном режиме, то всё проходит без ошибок.
« Последнее редактирование: 29-11-2007 15:50 от Алексей1153++ » Записан

MCP, MCAD, MCTS:Win, MCTS:Web
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #5 : 01-07-2004 04:22 » 

Цитата: Джон
Если работает тн software hadshake когда состояния на передачу не проверяются по-памяти - DTR RTS то будет. А читать... ну не знаю


тн software hadshake  :?: поподробней пожалуйста  :oops:
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 01-07-2004 07:25 » 

MOPO3,  Блин, ...  Времени нет. Воообще то это теория.  Попробую коротенько. Сделай поиск по след. ключам "Software flow control" "Xon/Xoff"
У СОМ порта могут быть различные handshake. Например при передаче данных
в Software flow control или (Xon/Xoff) это соответствующие параметры структуры DCB - XoffChar и XonChar происходит передача соответствующего символа означающего начало-конец передачи. При этом данные шуруют не взирая на то, получил ли данные приёмник.

При тн "Hardware flow control" (RTS/CTS) происходит синхронизация на уровне железа. Те когда хост ждёт установки сигнала подтверждения приёма данных. Поэтому хост без приёмника будет "висеть" в ожидании.

Вот так надо установить эл-ты структуры для software handshake (конечно остальные тоже для Parity Baud и тд там где .......)
DCB dcb;
GetCommState(m_hPort,&dcb);


......


dcb.fOutX = 1;
                  dcb.fInX = 1;
                  dcb.fTXContinueOnXoff = 1;
                  dcb.fDtrControl = 1;
                  dcb.fRtsControl = 0;
                  
                  dcb.fOutxDsrFlow = 0;
                  dcb.fOutxCtsFlow = 0;
                  
                  dcb.XoffChar = любой байт (обычно 0х19);
                  dcb.XonChar = любой байт (обычно 0х17);
dcb.fParity = true;
SetCommState(m_hPort,&dcb);
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #7 : 01-07-2004 08:26 » new

Джон, спасибки, сорри что отвлекаю, пошёл читать, читать, читать......
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines