Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Ошибки с созданием OPC-клиента https://www.cyberforum.ru/ c-cpp/ thread1110317.html
Пользуюсь изданием: http://eknigi.org/programmirovanie/166217-programmirovanie-klientov-opc-na-c-i-c-chast-1.html Проблема возникает с кодом nServerCnt++; pServerList->GetClassDetails(&guid,&pszProgID,&pszUserType); lvItem.pszText=pszProgID;, странички 18-19. Если подключаю библиотеку Active Accessible, меняя во второй строке аргумент &guid на guid или clsid - ошибка "Debug Assertion...
C/C++ Где найти определение класса?
Делаю ОРС клиент по учебнику Дениса Федоренко. В моем приложении есть класс CClientOPC, в нем определены некоторые функции, с ними все нормально. Но самого определения этого класса в коде нет. Другие классы есть. Мне необходимо в него добавить метод. Вероятно, он где-то спрятан? Через поисковик в приложении не нашлось...
C/C++ Экспорт компонента из DLL, создание компонента в DLL https://www.cyberforum.ru/ c-cpp/ thread1097869.html
MYAPI подчеркнута с надписью "linkage specification is not allowed" #ifndef _ANIMAL_H_ #define _ANIMAL_H_ #ifdef __cplusplus #ifndef MYAPI #define MYAPI extern "C" __declspec(dllexport) #else
C/C++ Бесплатный почтовый клиент (вместо Outlook) https://www.cyberforum.ru/ c-cpp/ thread1096877.html
Нужно отсылать отчёты о работе программы (электронные таблицы OpenOffice Calc). Сделал отправку через Outlook, но хотелось бы обойтись без использования платных программ (без MS Excel уже сделал:)). Подскажите, через какие бесплатные почтовые клиенты на С++ можно сделать автоматическую отправку (как в Outlook) ? И мб поделитесь примером кода/ссылкой на литературу? p.s. C++ Builder XE4
Литература по COM технологии C/C++
Подскажите пожалуйста, чего адекватного можно почитать по COM технологии...если msdn, дайте ссылку раздела.
C/C++ Интервалы при работе c OLE https://www.cyberforum.ru/ c-cpp/ thread1084345.html
Здравствуйте. Учусь работать с OLE и наткнулся на такую проблему, нужно изменить интервал между параграфами и ни где не могу найти как это сделать. Полазив по интернету, нашёл: vVarParagraph.OlePropertyGet("Range").OleFunction("Select"); vVarApp.OlePropertyGet("Selection").OlePropertyGet("ParagraphFormat"). OlePropertySet("LineSpacing", 12); но оно ставит интервал в самом...
C/C++ Ошибка при выводе текста в doc средствами OLE Здравствуйте. Я учусь работать с OLE и наткнулся на абсолютно не понятную для меня проблему, в момент вывода текста (строки) через переменную компилятор каких-либо ошибок не выдаёт, но при работе программы выпадает ошибка на CPU. Просмотрев док файл создаваемый программой, увидел что он стопорится в момент вывода этой строки, половину (примерно) он выводит, а половину нет. Будто у него памяти не... https://www.cyberforum.ru/ c-cpp/ thread1082542.html Внутренний сервер COM как локальный C/C++
Добрый день! Есть COM сервер в dll. Если обращаться к нему как к внутреннему - все работает. Однако при попытках обратиться как local процессу(с помощью dllhost), запускается dllhost c моей дллкой, создается экземпляр сервера, но при фабрика почему-то в итоге возвращает REGDB_E_IIDNOTREG. В связи с этим вопрос - каким образом правильно сделать так, чтобы внутренний сервер COM запустить как...
C/C++ Сравнение OLE и DDE https://www.cyberforum.ru/ c-cpp/ thread1069377.html
Сравнение OLE и DDE. Маленькое сравнение.
C/C++ clsid https://www.cyberforum.ru/ c-cpp/ thread1064915.html
в приведенной программе IID что означает и за что отвечает? #include <Windows.h> #include <iostream> #include <atlbase.h> using namespace std; void trace(const char* msg) { cout << msg << endl; } // Предварительные описания GUID extern const IID IID_IX; extern const IID IID_IY;
Переместиться в начало документа Word C/C++
Здравствуйте! Очень нужна помощь, поиск по форумам почему-то не помог. Всего лишь нужно вернуться в начало документа word (производится поиск текста и его замена в документе, затем сразу же поиск другого текста, но вот он начинается не с начала документа, как хотелось бы). есть метод в Vba "StartOf()". по использованию такого через Ole ничего не нашлось. может как-то иначе решить? помогите...
C/C++ Установить пароль на Word документ Так толком нигде и не нашел ничего информативного в инете... Ситуация. Есть MDI приложение. В одном из фрейме создается Word-документ. При сохранении на диск с определенным именем надо сохранять сразу с паролем на открытие, чтобы потом можно было его открыть только после ввода пароля. Метод из WdDocument под названием SetPassword - устанавливает вроде в свойствах документа пароль, но... https://www.cyberforum.ru/ c-cpp/ thread1032926.html
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 33
0

Как очистить буфер com-порта? - C/C++ - Ответ 5855923

04.03.2014, 02:25. Показов 7430. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
В этой программе я считываю данные с lpt-порта и в зависимости от полученных значений, посылаю данные в com-порт, куда подключен микроконтроллер. Проблема в том, что в процессе работы программы com-порт лишь принимает первые данные, а остальные игнорирует, т.е микроконтроллер только один раз замыкает реле, а размыкать он их не размыкает. И теперь я не знаю как очистить буфер com-порта, для того чтобы можно было отправлять новые команды com-порту. Испробовала несколько функций( они в комментариях к программе), но все безуспешно, может я как то их не так использую?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <ctime>   
#include <stdio.h>
#include <conio.h>
#include "h.h"
#define _WIN32_WINNT 0x0500
#include <fstream>
using namespace std;
 
HANDLE hSerial;
 
int VklRele() //включаю 
 
{ 
    LPCTSTR sPortName = L"COM3";  
 
    hSerial = ::CreateFile(sPortName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    if(hSerial==INVALID_HANDLE_VALUE)
    {
        if(GetLastError()==ERROR_FILE_NOT_FOUND)
        {
            cout << "serial port does not exist.\n";
        }
        cout << "some other error occurred.\n";
    }
     
    
      if(hSerial!= NULL) //здесь как бы пытаюсь очистить буфер, но безуспешно
      CloseHandle(hSerial);
 
    DCB dcbSerialParams = {0};
    dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
    if (!GetCommState(hSerial, &dcbSerialParams))
    {
        cout << "getting state error\n";
    }
    dcbSerialParams.BaudRate=CBR_9600;
    dcbSerialParams.ByteSize=8;
    dcbSerialParams.StopBits=ONESTOPBIT;
    dcbSerialParams.Parity=NOPARITY;
    if(!SetCommState(hSerial, &dcbSerialParams))
    {
        cout << "error setting serial port state\n";
    }
    char data[] = "$KE,REL,1,1\r\n";
    DWORD dwSize = sizeof(data);
    DWORD dwBytesWritten;
    LPOVERLAPPED ov;
    
 
    BOOL iRet = WriteFile (hSerial,data,dwSize,&dwBytesWritten ,NULL);
 
    cout << dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;
 
    
    //PurgeComm(hSerial, PURGE_TXCLEAR);//  эту команду пробовала использовать
        //PurgeComm(hSerial, PURGE_RXCLEAR);//  здесь пробовала параметр сменить
    //FlushFileBuffers(hSerial);// и эта тоже не работает...
    return 0;
    
}
 
int ViklRele()// выключаю
{ 
    LPCTSTR sPortName = L"COM3";  
 
    hSerial = ::CreateFile(sPortName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    if(hSerial==INVALID_HANDLE_VALUE)
    {
        if(GetLastError()==ERROR_FILE_NOT_FOUND)
        {
            cout << "serial port does not exist.\n";
        }
        cout << "some other error occurred.\n";
    }
 
    
      if(hSerial!= NULL)
      CloseHandle(hSerial);
 
    DCB dcbSerialParams = {0};
    dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
    if (!GetCommState(hSerial, &dcbSerialParams))
    {
        cout << "getting state error\n";
    }
    dcbSerialParams.BaudRate=CBR_9600;
    dcbSerialParams.ByteSize=8;
    dcbSerialParams.StopBits=ONESTOPBIT;
    dcbSerialParams.Parity=NOPARITY;
    if(!SetCommState(hSerial, &dcbSerialParams))
    {
        cout << "error setting serial port state\n";
    }
    char data[] = "$KE,REL,1,0\r\n";
    DWORD dwSize = sizeof(data);
    DWORD dwBytesWritten;
    LPOVERLAPPED ov;
    
    BOOL iRet = WriteFile (hSerial,data,dwSize,&dwBytesWritten ,NULL);
 
    cout << dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;
 
    //PurgeComm(hSerial, PURGE_TXCLEAR);// вообщем те же самые попытки, что и в функции VklRele()
        //PurgeComm(hSerial, PURGE_RXCLEAR);//  
    //FlushFileBuffers(hSerial);//
 
    return 0;
    
}
//здесь я делаю таймер, чтобы использовать в main
 
void how2timer(int ms) { 
    int CLOCKS_PER_MSEC = CLOCKS_PER_SEC / 1000;   
    clock_t end_time = clock() + ms * CLOCKS_PER_MSEC ; 
    while (clock() < end_time) {} 
    cout << "5 seconds passed!!!\n";  
}
 
int _tmain(int argc, _TCHAR* argv[])
{ 
     while(1){
  
  cout<<"Read data from DATA register.\n"<<endl;    
 
  int data;
  data = Inp32(888); //считываю с lpt порта
  cout<<"10: "<<data<<endl;
 
  char number[20];
  itoa(data,number,2); //считываю с lpt порта
  cout<<" 2: "<<number<<endl;
    
  //здесь сравниваю значения, полученные с lpt порта
    
    if(number[0]=='1' && number[1]=='1' && number[2]=='1' && number[3]=='1' && number[4]=='1' && number[5]=='1' && number[6]=='1' && number[7]=='1')
    {
        VklRele();// если замкнулся нужный контакт, то включаю реле, т.е.какое-нибудь устройство
        how2timer(5000);//жду 5 секунд
        ViklRele();//устройство должно выключиться
    }
    
    
  }
  return 0;
 
}


Вернуться к обсуждению:
Как очистить буфер com-порта? C/C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2014, 02:25
Готовые ответы и решения:

Как очистить буфер клавиатуры?
Есть меню в котором я двигаю стрелочку кнопками вверх и вниз и нажимаю ентер. while (true) {...

Как вывести в поле Edit буфер, полученный с com-порта?
как вывести в поле Edit буффер полученный с ком порта? в Label выводится как...

Очистить буфер сокета
имеется клиент-сервер,клиент отправляет сообщение принятое std::cin и пересылает серверу,тот в свою...

Полностью очистить буфер ввода
Требуется, в конце программы, сделать небольшое ожидания для чтения того как отработала программа...

1
04.03.2014, 02:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2014, 02:25
Помогаю со студенческими работами здесь

Как очистить буфер..?
Извините, за вопрос из облатси VBA, но там в конфе глухо, да и проблема не только VBA'шная... ...

Как очистить буфер scanf() ?
Мне нужно, чтобы scanf() вызывался до тех пор, пока не будет введено целое число, но происходит...

Как очистить буфер обмена?
вот собственно и весь вопрос Заранее спасибо

Как очистить буфер обмена (clipboard)?
сабж, собственно

Как программно очистить буфер обмена
using System.Runtime.InteropServices; public static extern int...

Как из макроса Excel очистить буфер обмена?
Как из макроса Excel очистить буфер обмена?

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru