Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Ошибка при компилировании программы Всем привет Вот такая ситуация. При компилировании программы происходит ошибка: Подскажите, в чем проблема. Спасибо https://www.cyberforum.ru/ c-cpp/ thread1908682.html C/C++ Ошибка компиляции при подключении TLB
При подключении(#import) TLB к консольному приложению возникает ошибка "redefinition; different storage class". В tlh файле ошибки появляются в этом месте const BSTR idBeforePlace = (wchar_t*) L"beforePlace"; const BSTR idAfterPlace = (wchar_t*) L"afterPlace"; const BSTR idBeforePlace = (wchar_t*) L"beforePlace"; // Error C2370 'InDesign::idBeforePlace': redefinition; different...
C/C++ Работа с MFC. Разработка программы MiniDraw https://www.cyberforum.ru/ c-cpp/ thread1904399.html
Всем здрасте) тут такая проблемка. есть ли люди, которые немного разбираются в MFC приложении. У нас при запуске программы в окне рисуем эллипсы. Надо сделать чтобы по нажатию на ALT рисовала элипсы зеленого цвета. Помогите кто чем может) куда нужно этот обработчик закинуть по ALT
C/C++ DCOM авторизация Всем привет! Можно ли создать экземпляр удалённого COM сервера и работать с ним, не имея "одинаковых" пользователей в системах? Поэкспериментировав со структурой COAUTHINFO, получилось создать экземпляр (в рантайме задаю хост, логин и пароль), однако, вызов метода возвращает ошибку ERROR_ACCOUNT_DISABLED, при дефолтной авторизации (указатель на COAUTHINFO в структуре COSERVERINFO нулевой) и... https://www.cyberforum.ru/ c-cpp/ thread1903972.html
C/C++ Переставить листы в Excel
Всем здрасте. Хотел поменять в экселе листы местами (3-й с 4-м), но возникла проблема: item = knigi.OlePropertyGet("Item", 1).OlePropertyGet("WorkSheets"); list2 = item.OlePropertyGet("Item", 2); list3 = item.OlePropertyGet("Item", 3); list4 = item.OlePropertyGet("Item", 4); list4.OleProcedure("Move", list3, list2); Builder 6 на последней...
C/C++ Поиск текста в файле Word (VC++ 2008) https://www.cyberforum.ru/ c-cpp/ thread1888071.html
Здравствуйте ! Подскажите, пожалуйста, как в среде VISUAL C++ 2008 осуществлять поиск текста в файле WORD ? Нужно найти строку в документе WORD, которая содержит заданный фрагмент текста.
C/C++ Отправить Ctrl+Z по UART https://www.cyberforum.ru/ c-cpp/ thread1887315.html
Устройство отменивается данными с sim900 AT коммандами, проблема в том, что в конце сообщение необходимо закрыть комбинацией Cntrl+Z она же \032 оно же \x1a в общем виде порядок передаваемых комманд выглядит так AT+CMGF=1 AT+CMGS="phone#" message Ctrl-Z Множество проб и ошибок передать комбинацию цифр как Ctrl-Z к успеху не привело, потратил несколько часов на поиске в интернете, где...
Как создать DLL на С++, чтобы его можно было подключить к VBA? C/C++
Нужно, чтобы можно было создавать в VBA объекты классов, которые описаны в C++. Как подключить к VBA библиотеку с функциями, описанными вне классов и использовать их через Declare мне понятно. Но как сделать "declare" класса из DLL?
C/C++ Как в Visual C++ 2008 удалять страницы документов Word вместе с текстом? Добрый день! Подскажите, пожалуйста, как в среде MS Visual C++ 2008 удалять страницы документов Word вместе с текстом? И как удалять листы Excel вместе со всем содержимым? https://www.cyberforum.ru/ c-cpp/ thread1877050.html C/C++ Не удается открыть файл Excel Здравствуйте! Не удается открыть файл Excel в программе Visual Studio C++: // Создаем экземпляр приложения HRESULT hr = vExcel.CreateInstance( __uuidof( Excel::Application ) ); if( SUCCEEDED(hr) && (vExcel != 0) ) { // Если экземпляр приложения создать удалось try { // Открываем файл Excel https://www.cyberforum.ru/ c-cpp/ thread1875954.html
Работа с типом данных VARIANT C/C++
Всем привет. Сейчас работаю с некоторой динамической библиотекой(*.dll). Пытаюсь из этой dll использовать некую функцию GetTitleIDList. Прототип функции в Visual C++ выглядит так GetTitleIDList(VARIANT_BOOL , int, int, int*, VARIANT*,VARIANT*). В документации к dll эта функция описывается так: This method retrieves two arrays which contain the IDs and titles of all entities (in the selected...
C/C++ Программа для работы с Excel и Word документами Подскажите, пожалуйста, какими инструментами лучше воспользоваться. Требуется написать программу, которая будет извлекать данные из excel и вставлять их в word. Какой язык лучше выбрать (C++, C#, Java)? Какие библиотеки использовать? https://www.cyberforum.ru/ c-cpp/ thread1865904.html
0 / 0 / 0
Регистрация: 02.02.2017
Сообщений: 6
0

Чтение информации с весов через COM порт - C/C++ - Ответ 10069694

02.02.2017, 12:30. Показов 3336. Ответов 10
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Недавно начал изучать C++ и стоит такая задача. У меня есть программка, которая должна считывать вес через COM порт и выводить его в поле по нажатию клавиши "Read". Но вместо этого при ее нажатии, программа просто зависает. Может кто подскажет, где ошибся? Заранее спасибо.

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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include "stdafx.h"
#include <iostream>
#define STYLBTN WS_CHILD|BS_DEFPUSHBUTTON|WS_VISIBLE
#define STYLEDT WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP 
 
HINSTANCE hInst;
LPCTSTR szTitle = "Оризон-Универсал";
LPCTSTR szWindowClass = "SimpleWinClass";
LPCTSTR CLSBUTN = "BUTTON";
LPCTSTR CPBUT1 = "Open port";
LPCTSTR CPBUT2 = "Close port";
LPCTSTR CPBUT3 = "Read port";
LPCTSTR CPBUT4 = "Write port";
LPCTSTR CLSEDIT = "EDIT";
LPCTSTR CPEDT1;
LPCTSTR CPEDT2;
HWND HWNDBTN1;
HWND HWNDBTN2;
HWND HWNDBTN3;
HWND HWNDBTN4;
HWND HWNDEDT1;
HWND HWNDEDT2;
HMENU ID_BTN1 = (HMENU)101;
HMENU ID_BTN2 = (HMENU)102;
HMENU ID_BTN3 = (HMENU)103;
HMENU ID_BTN4 = (HMENU)104;
 
LPCTSTR  lpCapApp = "App message";
char  lpApp1[40] = "Open port HANDLE:";
LPCTSTR  lpApp2 = "Close port";
LPCTSTR  lpApp3 = "Data read: Ok";
LPCTSTR  lpApp4 = "Data write: Ok";
 
LPCTSTR  lpCapERR = "Error Message";
char lpERR1[40] = { "Open port Error:" };
char lpERR2[40] = { "DCB Structure ERROR:" };
char lpERR3[40] = { "SetComm Function ERROR:" };
char lpERR4[40] = { "Read port ERROR:" };
char lpERR5[40] = { "Write port ERROR:" };
char lpERR6[40] = { "Close port ERROR:" };
DWORD Mem1;
LPCTSTR Par1 = "%lu";
 
HANDLE HWNDCOM;
LPCTSTR lpNumCOM = "COM1:";
LPCTSTR COMSETTING = "Com1: baud=9600 parity=N data=8 stop=1";
char Buf[255];
DWORD LenBuf;
DCB DCB1;
 
 
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 
void PurgeBuf()
{
    int a;
    for (a = 0; a<255; a++)
    {
        Buf[a] = 0x20;
    }
    return;
}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 
    MSG msg;
    WNDCLASSEX wcex;
    HWND hWnd;
    hInst = hInstance;
 
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = (WNDPROC)WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hIconSm = 0;
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(4);
    wcex.lpszMenuName = 0;
    wcex.lpszClassName = szWindowClass;
    RegisterClassEx(&wcex);
 
    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, 20, 20, 350, 200, NULL, NULL, hInstance, NULL);
 
    if (!hWnd)
    {
        return FALSE;
    }
 
    ShowWindow(hWnd, SW_SHOWNORMAL);
    UpdateWindow(hWnd);
 
 
 
 
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
 
 
 
 
    return 0;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
{
    int wmId, wmEvent;
    int Retval;
    switch (message)
 
    {
    case WM_COMMAND:
        wmId = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        switch (wmId)
        {
        case 101:
            HWNDCOM = CreateFile(lpNumCOM, GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, NULL, NULL);
 
            if (HWNDCOM == INVALID_HANDLE_VALUE)
            {
                Mem1 = GetLastError();
                wsprintf(&lpERR1[16], Par1, Mem1);
                MessageBox(0, lpERR1, lpCapERR, 0);
            }
            else
            {
                wsprintf(&lpApp1[17], Par1, HWNDCOM);
                MessageBoxA(0, lpApp1, lpCapApp, 0);
                Retval = BuildCommDCB(COMSETTING, &DCB1);
                if (Retval == 0)
                {
                    Mem1 = GetLastError();
                    wsprintf(&lpERR2[20], Par1, Mem1);
                    MessageBox(0, lpERR2, lpCapERR, 0);
                }
                Retval = SetCommState(HWNDCOM, &DCB1);
                if (Retval == 0)
                {
                    Mem1 = GetLastError();
                    wsprintf(&lpERR3[23], Par1, Mem1);
                    MessageBox(0, lpERR3, lpCapERR, 0);
                }
 
 
            }
            break;
 
        case 102:
            Retval = CloseHandle(HWNDCOM);
            if (Retval == 0)
            {
                Mem1 = GetLastError();
                wsprintf(&lpERR6[17], Par1, Mem1);
                MessageBox(0, lpERR6, lpCapERR, 0);
            }
            else
            {
                MessageBox(0, lpApp2, lpCapApp, 0);
            }
            break;
 
        case 103:
            PurgeBuf();
            Retval = ReadFile(HWNDCOM, &Buf, 255, &LenBuf, NULL);
            if (Retval == 0) 
            {
                Mem1 = GetLastError();
                wsprintf(&lpERR4[16], Par1, Mem1);
                MessageBox(0, lpERR4, lpCapERR, 0);
            }
            else
            {
                SendMessageA(HWNDEDT1, WM_SETTEXT, sizeof Buf, (LPARAM)Buf);
                MessageBox(0, lpApp3, lpCapApp, 0);
            }
 
            break;
        case 104:
            PurgeBuf();
            SendMessage(HWNDEDT2, WM_GETTEXT, sizeof Buf, (LPARAM)Buf);
            Retval = WriteFile(HWNDCOM, &Buf, sizeof Buf, &LenBuf, NULL);
            if (Retval == 0)
            {
                Mem1 = GetLastError();
                wsprintf(&lpERR5[17], Par1, Mem1);
                MessageBox(0, lpERR5, lpCapERR, 0);
            }
            else
            {
                MessageBox(0, lpApp4, lpCapApp, 0);
            }
            break;
        default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        }
        break;
    case WM_CREATE:
        HWNDBTN1 = CreateWindowEx(0, CLSBUTN, CPBUT1, STYLBTN, 10, 10, 100, 20, hWnd, ID_BTN1, hInst, 0);
        HWNDBTN2 = CreateWindowEx(0, CLSBUTN, CPBUT2, STYLBTN, 225, 10, 100, 20, hWnd, ID_BTN2, hInst, 0);
        HWNDBTN3 = CreateWindowEx(0, CLSBUTN, CPBUT3, STYLBTN, 115, 40, 100, 20, hWnd, ID_BTN3, hInst, 0);
        HWNDBTN4 = CreateWindowEx(0, CLSBUTN, CPBUT4, STYLBTN, 115, 100, 100, 20, hWnd, ID_BTN4, hInst, 0);
        HWNDEDT1 = CreateWindowEx(0, CLSEDIT, CPEDT1, STYLEDT, 55, 70, 220, 20, hWnd, 0, hInst, 0);
        HWNDEDT2 = CreateWindowEx(0, CLSEDIT, CPEDT2, STYLEDT, 55, 130, 220, 20, hWnd, 0, hInst, 0);
 
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}


Вернуться к обсуждению:
Чтение информации с весов через COM порт C/C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2017, 12:30
Готовые ответы и решения:

Получение данных с весов, подключенных к ПЛК PSA-04.12.0220.00.00 через COM-порт over радиоканал
Помогите новичку. Появилась необходимость поправить программку, написанную на Дельфи. Исходников...

Чтение данных через COM порт
Имеется устройство, панель кнопок, связанная с компом через RS-232 т.е. COM порт. Хочу сделать...

Пересылка информации между компьютерами через com-порт
Кто-нибудь работал с com-портами на perl? Я соединил два com порта у компьютера и пытаюсь...

Ошибка в отправке информации через последовательный порт
Доброго времени суток! Снова прошу помощи. Код работал нормально, я решил немного все упорядочить...

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

Чтение/передача данных через USB порт
Задача такова: есть внешний микроконтроллер (Arduino) который связан с ПК ч/з USB (некоторый...

Чтение данных из файла и их передача через порт компьютера
Добрый день. Есть задача: в текстовый файл в реальном времени пишется поток данных (углы...

Что чтение данных через COM-порт делает с 2байтными значениями?
Я принимаю через СОМ-порт 8-байтные слова с определенного устройства. Делается это при помощи...

Подключение/чтение/отправка данных на сторонние устройства через usb COM порт
сабж: как подключить к андроид устройству сторонние девайсы по COM порту и впоследствии...

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