Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Как повернуть элемент в GDI+ WinAPI C++ ? https://www.cyberforum.ru/ win-api/ thread2432633.html
Здравствуйте, подскажите пожалуйста необходимо на рисунке повернуть крыло самолёта, что бы собственно с другой стороны самолёта тоже было крыло. Не могу вот сообразить как это сделать правильно. Есть...
C++ WinAPI GetClientRect не верно выводит координаты Я не понимаю как работает GetClientRect и GetWindowRect. При создании окна ввожу размер 500x500, но (Right, Bottom) выходит куда меньше (484, 441). rect {LT(0, 0) RB(484, 441) } tagRECT ... GetClientRect показывает относительные размеры рабочей области окна. GetWindowRect показывает абсолютные координаты рамки всего окна. Окно может содержать заголовок, рамку, меню, скролбары. Все эти... https://www.cyberforum.ru/ win-api/ thread2433614.html
C++ WinAPI Изменения цвета в edit box #include <windows.h> #include<iostream> #include<cstring> #include<string.h> #include "resource.h" #include<Commctrl.h> std::string str; int r, g, b; https://www.cyberforum.ru/ win-api/ thread2434705.html C++ WinAPI Передача изображения Winsock Уже третий день бьюсь. Срочно нужна ваша помощь. Хочу сделать демонстрацию экрана удаленную. Все работает отлично но буквально минуты 2 потом сервер валиться причем вроде как без ошибок. Просто не... char* buff1 = new char; data = new char; free(data); free(buff1); free(buff); https://www.cyberforum.ru/cpp-beginners/thread1260162.html#post6632976 Добавлено через 9 минут https://www.cyberforum.ru/ win-api/ thread2434560.html
C++ WinAPI Не удается импортировать DLL https://www.cyberforum.ru/ win-api/ thread2434677.html
Создала DLL с функцией Receive. Пытаюсь загрузить функцию в другой проект C++, вылетает ошибка, что функция не загружена. Подскажите, в чем может быть проблема? //Функция из DLL extern "C"... typedef void(*PFCO)(int &, char* &); typedef void(__stdcall* PFCO)(int &id, char* &msg); PFCO MyPFCO; MyPFCO = (PFCO)GetProcAddress(hLib, "Receive");
C++ WinAPI Создание нового MDI-окна
Доброго времени суток. Создаю MDI-приложение. Есть функция fram'a: LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)//функция окна { CLIENTCREATESTRUCT... #define STRICT #include <windows.h> #include <mem.h> #define CM_HELPABOUT 24346 #define CM_HELPUSING_HELP 24345 #define CM_HELPPROCEDURES 24344 #define CM_HELPCOMMANDS ...
C++ WinAPI MFC CListCtrl Отрисовка текста справа от иконки https://www.cyberforum.ru/ win-api/ thread2435638.html
Добрый день господа. Столкнулся с проблемой, использую MFC CListCtrl в стиле LVC_ICON, по умолчанию подпись иконки идет снизу, мне же необходимо отображать его с правой стороны. Весь интет облазил в... Насколько знаю MFC это надстройка над обычными функциями в частности над тем же ListView. Спасибо за подсказку. Еще варианты так же приветствуются) Добавлено через 1 час 25 минут LV_VIEW_TILE как...
Закрытие дочернего окна вызывает закрытие программы C++ WinAPI
Здравствуйте! Не могу никак разобраться, как сделать так, чтобы дочернее окно при его закрытии не закрывало всю программу. Я читал похожие темы, все равно не получается понять в моём случае, может... Заработало! Спасибо!
C++ WinAPI Mapping File. Попытка чтения или записи в защищенную память. Как исправить? Пытаюсь загрузить в память строку, а потом считать ее с помощью функций из DLL. Вот такая вот ошибка выскакивает при попытке считать информацию: "System.AccessViolationException: "Попытка чтения или... сhar* str((char*)buf + sizeof(Header)); UnmapViewOfFile(buf); return str; После UnmapViewOfFile, str будет указывать в некорректную область памяти. https://www.cyberforum.ru/ win-api/ thread2432681.html ReadFile читает полный файл вместо 512 байт C++ WinAPI
HANDLE hFile; HANDLE hAppend; DWORD dwBytesRead, dwBytesWritten, dwPos; LPCSTR fname = "a.txt"; LPCSTR fname2 = "b.txt"; char buff; hFile = CreateFile(fname, GENERIC_READ, 0, NULL,... while (dwBytesRead -= 512);
C++ WinAPI Ловушка для событий тачскрина Имеется: Развернутое в полный экран окно chrome в киоск режиме, сломанный тачскрин, который при нажатии в любую область распознает это нажатие правильно, но тут же 'бьет' себя в конкретный пиксел с... https://www.cyberforum.ru/ win-api/ thread2434028.html C++ WinAPI Трудности с работой потока
У меня вызывается поток с помощью функции _beginthreadex. При этом потоковая функция при вызове _beginthreadex--MyThreadFunc. Эта функция MyThreadFunc вызывает функцию MyInnerThreadFunc, в которой и... 2) Продолжение работы потока. Не знаю что тут, проще было бы отладить по шагам и определить в каком месте проблемы. По коду могу только предположить, что после закрытия диалога произошло бесконечное...
0 / 0 / 0
Регистрация: 07.11.2017
Сообщений: 36
0

COM-порт долго возвращает ответ от Arduino? - C++ WinAPI - Ответ 13489752

13.04.2019, 16:25. Показов 792. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Я пытаюсь получать ответ от Arduino по запросу.
В этом примере я отправляю букву H и получаю Hello, всё работает.
Но проблема в том, что приём работает ооочень долго(приходиться ждать 2-3 секунды).
Отправка работает моментально, но ответ идёт долго, что делать?

Мой код программы:
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
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <string> //for wstring
 
using namespace std;
 
int main(int argc, char* argv[])
{
  int screenWidth = GetSystemMetrics(SM_CXSCREEN);
  int screenHeight = GetSystemMetrics(SM_CYSCREEN);
  wchar_t sPortName[8] = L"COM";
  wchar_t sPortNumberStr[8] = L"";
  int sPortNumber = 0;
  wchar_t buffer[256] = L"";
  cout << "Enter COM port number: ";
  cin >> sPortNumber;
  swprintf_s(sPortNumberStr, L"%d", sPortNumber);
  wcscat_s(sPortName, sizeof(sPortNumberStr) / sizeof(wchar_t), sPortNumberStr);
  HANDLE hSerial = ::CreateFile((LPCWSTR)sPortName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if (hSerial == INVALID_HANDLE_VALUE)
  {
    if (GetLastError() == ERROR_FILE_NOT_FOUND)
    {
      wcout << sPortName << " does not exist\n";
      return -1;
    }
    cout << "Error in file\n";
    return -1;
  }
  else
  {
    //настройка параметров соединения
    DCB dcbSerialParams = { 0 };
    dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
    if (!GetCommState(hSerial, &dcbSerialParams))
    {
      cout << "Getting state error\n";
      return -1;
    }
    dcbSerialParams.BaudRate = CBR_9600;
    dcbSerialParams.ByteSize = 8;
    dcbSerialParams.StopBits = ONESTOPBIT;
    dcbSerialParams.Parity = NOPARITY;
    if (!SetCommState(hSerial, &dcbSerialParams))
    {
      cout << "Error setting serial port state\n";
      return -1;
    }
  }
  //Sleep();
  while (true)
  {
    char data[] = "H";  // строка для передачи
    DWORD dwSize = sizeof(data);   // размер этой строки
    DWORD dwBytesWritten;    // тут будет количество собственно переданных байт
    DWORD dwBytesReaded;
    BOOL iRet = WriteFile(hSerial, data, dwSize, &dwBytesWritten, NULL);
    if (!iRet)
    {
      cout << "Write error\n";
      return -1;
    }
    else
    {
      cout << dwSize << " Bytes in string. " << dwBytesWritten << " bytes sended\n";
      iRet = ReadFile(hSerial, data, 256, &dwBytesReaded, NULL);
      if (!iRet)
      {
        cout << "Read error\n";
        return -1;
      }
      else
      {
        cout << data << " " << dwBytesReaded << " bytes readed\n";
      }
    }
  }
  cout << "Press Enter to exit";
  while (_getch() != 13);
  return 0;
}
Код скетча Arduino:
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
const int ledPin = 13;
int inputSymbol = 0;
 
void setup()
{
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
}
 
void loop() 
{
    if(Serial.available())
    {
        inputSymbol = Serial.read();
        if(inputSymbol == 'L')
        {
            digitalWrite(ledPin, HIGH);
            delay(3000);
            digitalWrite(ledPin, LOW);
            inputSymbol = NULL;
        }
        if(inputSymbol == 'H')
        {
            Serial.print("Hello!");
            inputSymbol = NULL;
        }
    }
}


Вернуться к обсуждению:
COM-порт долго возвращает ответ от Arduino? C++ WinAPI
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2019, 16:25
Готовые ответы и решения:

Com порт, асинхронное чтение не возвращает весь ответ
День добрый, пишу софтинку для личного ползования, а конкретно опрос ИБП через com порт по протоколу megatec, все вроде неплохо, но...

Arduino и com порт
есть некое устройство. на него через профилик отправляются данные - comport2.Write(&quot;123456&quot;); читать ответ не требуется и...

Порт arduino nano не распознается
Здравствуйте! Недавно приехала плата arduino nano v3 из Китая. Она подключается через mini-B usb. Поискал дома такой кабель. И...

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2019, 16:25
Помогаю со студенческими работами здесь

PHP и Arduino. COM порт. Не сохраняется $_SESSION
Требуется управлять платой Arduino по usb - ком интерфейс. Ос ubuntu. Отправка в ком порт - как и в файл: fopen, fwrite. Сначала делал...

COM порт - ответ
Можно ли как-то эмулировать ответ от прибора на другом конце COM порта? Желательно самому вбивать hex строку и передавать в COM.

клон Arduino NANO - умер USB порт? лечится?
Хелло! Достал из заначки ардуину - а она, похоже, системой больше не определяется. в /div/ не видно при подключении характерного порта...

[Arduino] Как правильно распознать команду через COM- порт
Не могу правильно интерпретировать полученое на Ардуино. На нем идет считывание и считаное = отправить назад. Все он отправляет назад...

Парсинг данных полученных от Arduino через виртуальный COM порт
Добрый день уважаемые софорумчане,при реализации моего проекта возникла необходимость получать данные с блютуз устройства,задачу эту я...

0
Новые блоги и статьи
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
WebAssembly и Go: Создание высокопроизводи­­тельных веб-приложений
bytestream 03.03.2025
WebAssembly - это технология, изменившая подход к созданию высокопроизводительных веб-приложений. До появления WebAssembly JavaScript оставался единственным языком программирования, который понимали. . .
Контексты в Go: отмена, тайм-ауты и распространение
bytestream 03.03.2025
В многопоточном программировании существует множество ситуаций, когда необходимо прерывать выполнение горутин или ограничивать время их работы. Отсутствие грамотного управления параллельными. . .
WebSocket в Go: создание масштабируемых real-time приложений
bytestream 03.03.2025
Веб-приложения все чаще требуют обработки данных в режиме реального времени. Традиционный подход с использованием HTTP-запросов имеет существенные ограничения для таких сценариев. При каждом запросе. . .
Как дебажить в Go: Руководство по отладке
bytestream 03.03.2025
Отладка в Go имеет свои особенности, связаные с строгой типизацией, моделью конкурентности и управлением памятью. Go предоставляет богатый набор встроеных средств для отладки, которые дополняются. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru