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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с Com портом  (Прочитано 12065 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Noname
Гость
« : 19-08-2005 21:46 » 

Проблема, в общем, такова:
Есть железяка, подключенная к Com порту, которая что-то выдает.
Надо это "что-то" определить и затем юзать.

Собственно вопрос:
Подскажите - с чего начать? Пишу я на C++Builder, есть подозрения Улыбаюсь что оный имеет какой-то набор функций-классов для работы с Com портами. Не могли бы подсказать, что за функции(классы), или где бы почитать об этом можно.
А мож кто-то исходниками своими захочет поделиться...
Буду благодарен за любую информацию.   

Заранее спасибо Улыбаюсь 
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 22-08-2005 11:33 » 

Код:
 DCB dcb;
   HANDLE hCom;
   char buf[1024]="atdp43973";
   BOOL fSuccess;
   DWORD ByteCount;
   char *pcCommPort = "COM1";

   hCom = CreateFile( pcCommPort,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

   if (hCom == INVALID_HANDLE_VALUE)
   {
       // Handle the error.
       return;
   }

   // Build on the current configuration, and skip setting the size
   // of the input and output buffers with SetupComm.

   fSuccess = GetCommState(hCom, &dcb);

   if (!fSuccess)
   {
      // Handle the error.
      return;
   }

   // Fill in DCB: 57,600 bps, 8 data bits, no parity, and 1 stop bit.

   dcb.BaudRate = CBR_57600;     // set the baud rate
   dcb.ByteSize = 8;             // data size, xmit, and rcv
   dcb.Parity = NOPARITY;        // no parity bit
   dcb.StopBits = ONESTOPBIT;    // one stop bit

   fSuccess = SetCommState(hCom, &dcb);

   if (!fSuccess)
   {
      MessageBeep(1000);
      // Handle the error.
      return;
   }
   SetupComm(hCom,1024,1024);
   WriteFile(hCom,&buf,1024,&ByteCount,NULL);
   CloseHandle(hCom);

Здесь организована запись в ком-порт, соответственно поправь кое-что!!! просто нет времени, расписывать что и почему и как поменять, кидаю свои исходники...
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Noname
Гость
« Ответ #2 : 03-09-2005 21:24 » 

За живой код отдельное спасибо, разбираюсь Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 05-09-2005 04:44 » new

скромный я, знаю ссылку Улыбаюсь

https://club.shelek.ru/viewart.php?id=208
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines