| 
| 
 | Вопрос # 1 928/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Я не спец в Дельфи, но с грехом пополам написал программку для работы с виртуальным СОМ портом, использующую Win API. (на самом деле я собрал ее из различных примеров, найденных в сети). Хотел еще включить в программу контроль паритета при обмене, но примеров найти не могу. Может подскажете, как это делается или ткнете носом в примерчик. Заранее спасибо.
 
|  |   Вопрос задал: ttron (статус: Посетитель)Вопрос отправлен: 23 сентября 2008, 11:49
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, ttron!Если уж так сильно хочеться писать на АПИ - пишите. Но не стоит даром тратить время. Для работы с COM портом я использую вот эту библиотеку. Она не слишком далеко ушла от апи, но есть хорошей объёрткой. Изучение исходников ее даст ответы на многие вопросы.
 По поводу паритета. Вы должны в коде создавать структуру и заполнять её (без этого никак). вот и допишите туда такое
 
 //эти две строки обязаны быть у Вас, если у Вас АПИ
FillChar(dcb, SizeOf(dcb), 0);
  dcb.DCBlength := SizeOf(dcb);
//.....
//по типу паритета заполняем поле
  case parity of
    'N', 'n': dcb.parity := 0;
    'O', 'o': dcb.parity := 1;
    'E', 'e': dcb.parity := 2;
    'M', 'm': dcb.parity := 3;
    'S', 's': dcb.parity := 4;
  end;
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 23 сентября 2008, 12:04
 Оценка за ответ: 4
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 9 октября 2008, 20:48; участников в обсуждении: 3. 
|   | ttron (статус: Посетитель), 23 сентября 2008, 21:57 [#1]:Спасибо, но переделывать уже не хочется, тем более, что прога работает. Как устанавливать поле DCB я знаю. Видимо API возьмет на себя функции установки бита паритета в посылке при прередаче. Проблема в том, как обнаружить, что произошла ошибка паритета при приеме? Я обязательно изучу тексты библиотеки, но слету не смог там обнаружить ничего подобного. Может подскажете, где это, я попробую сделать по аналогии. Заранее спасибо. |  
|   | Вадим К (статус: Академик), 23 сентября 2008, 23:21 [#2]:Ну так это и включает. Просто сам контроль идет на аппаратном уровне и мешаться туда виндовс не даст. Если сбой произошёл - то просто потеряются данные и сгенерируется ошибка. В приведённой выше библиотеке ищите по слову ErrRxParity.
 
 Если хочеться внятных ответов надо писать конкретно что хочеться.
 
 И ещё. Если этот параметр не передаётся железякой, которая подключена к СОМ порту, то включай/не включай - толку не будет. Точнее - просто перестанет работать. Правда в некоторых случаях девайс умеет определять наличии, но это скорее исключение.
 Учитывая всё вышесказанное, подумайте, скорее всего, что бы включить контроль четности, надо будет проверить девайс. А добавить одну строку в программу - это не переделка. это так.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | ttron (статус: Посетитель), 24 сентября 2008, 10:29 [#3]:Спасибо. Под переделкой я понимал переход с АПИ на использование вышеупомянутой библиотеки, этого не хотелось бы. Одну-две строки добавить к рабочей программе, это не проблема, согласен. Боюсь, только, этим не обойдется, ну это мои проблемы. Железку я сам делал, поэтому она будет слать то, что мне потребуется
  В любом случае, спасибо за наводку.
 |  
|   | ttron (статус: Посетитель), 9 октября 2008, 20:48 [#5]:Спасибо, полезная информация. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |