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

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

ru
Offline Offline

« : 19-11-2011 13:40 » new

Всем добрый вечер, у меня есть функция для посылки в устройство некоего кода, которая выглядит так:
Код: (C++)
int W_F(LPVOID lpBuffer, DWORD nNumberOfBytesToWrite, int)
 {
 _COMSTAT comstat;      //структура текущего состояния порта, в данной программе используется для определения количества принятых в порт байтов
 DWORD btr, temp = CE_RXPARITY, mask, signal;
ClearCommError(hCom, &temp, &comstat);          //нужно заполнить структуру COMSTAT
btr = comstat.cbInQue;
btr=btr + nNumberOfBytesToWrite;
if(btr>87)                                             
PurgeComm(hCom,PURGE_TXCLEAR);

WriteFile(hCom, lpBuffer, nNumberOfBytesToWrite, &btr, 0);     //записать байты
            counter+=btr;                //увеличиваем счётчик байтов
return 12;
 }
хотелось бы у вас узнать как правильно вызвать эту функцию(что использовать в качестве параметра lpBuffer)
PS: вообще этот параметр должен содержать определенный код, например 20h(в 16-й форме) который заставляет устройство начать работать, а вот в какой форме это записать в буфер я не пойму
буду признателен за вашу помощь
« Последнее редактирование: 19-11-2011 15:28 от Finch » Записан
v2
Помогающий

ua
Offline Offline

« Ответ #1 : 19-11-2011 20:18 » 

Код: (C++)
char Buff[87];
Buff[0] = 0x20;
W_F(Buff,1,0);
PS: но это, скорее всего, не уменьшит количества твоих вопросов
Записан
ALIMOE
Новенький

ru
Offline Offline

« Ответ #2 : 23-11-2011 11:37 » 

снова всех приветствую, у меня возник небольшой вопрос, может немного не по теме, но мб кто-нибудь сталкивался....создал в VirtualBox машинку с Win XP, и хочу что бы у нее был хотя бы 1 виртуальный СОМ порт, создал для этого общую папку, в опциях включаю СОМ, задаю вывод в файл, который находится в общей папке, но при запуске виртуалки в диспетчере устройств отображается 1 LTP порт, прошу помощи, может кто знает где я мог ошибиться?
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #3 : 23-11-2011 14:29 » 

Цитата
мб кто-нибудь сталкивался
Попробуй "вручную" установить драйвера на последовательный порт.

Пуск - Настройка - Панель управления - Установка оборудования  - Да - Добавление нового устройства - .. выбранного из списка вручную - Показать все устройства - (Стандартные порты) - Последовательный порт

Цитата
общую папку
вроде как не нужно, просто имя и путь к файлу на  хосте.
« Последнее редактирование: 23-11-2011 14:34 от v2 » Записан
ALIMOE
Новенький

ru
Offline Offline

« Ответ #4 : 24-11-2011 08:49 » 

спс, помогло
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines