Форум программистов, компьютерный форум CyberForum.ru

Работа с com port - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются http://www.cyberforum.ru/cpp-beginners/thread950715.html
Дано некоторое число. Вставить его перед каждым восклицательным знаком. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл в ней выполняет,заранее спасибо)
C++ Необходимо написать и отладить две программы в среде Borland C++ 3.1. Первая программа должна сформировать двоичный файл. Вторая – считать данные из э Создать двоичный файл и записать в него n целых чисел. Из файла сформировать массив, записав в него только ненулевые компоненты, находящиеся после максимального элемента. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл в ней выполняет,заранее спасибо) http://www.cyberforum.ru/cpp-beginners/thread950714.html
C++ Необходимо написать и отладить программу в среде Borland C++ 3.1 по заданному варианту с обязательным применением динамических массивов и функций
Упорядочить элементы вещественного массива следующим образом: по возрастанию элементы, расположенные в массиве до минимального, по убыванию элементы, расположенные после максимального. Создать функции для сортировки массива и определения номеров максимального и минимального элементов. все числовые данные вводятся с клавиатуры,и если можно с пояснениями как работает программа и что какой цикл...
C++ Переписать элементы массива вещественных чисел X в обратном порядке в массив Y.
Задание: Необходимо написать и отладить программу в среде Borland C++ 3.1 с обязательным применением массивов. 1.Переписать элементы массива вещественных чисел X в обратном порядке в массив Y. Вычислить процент четных, нечетных и нулевых элементов массива Y. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ...
C++ Преобразовать координаты из десятичного представления в градусы минуты секунды http://www.cyberforum.ru/cpp-beginners/thread950705.html
Добрый день! Пишу программку, очень маленькую, но мне она нужна для работы, собственно всегда то что мне нужно пересчитывал в Excel'е, но так как начал изучение С++ решил попробовать написать её. Суть в чём! Я получаю морские координаты, но в градусах и десятых градусов в таком виде N 40,1234, 39.1234 и такие же по E, мне их нужно перевести в грудусы минуты и десятые минут т.е. WGS-84 из N...
C++ Сортировка структур Ведомости про участников конкурса имеют следующую информацию: имя, фамилия, секция, адрес, набранный бал. Стоит задание вывести информацию о победителе и подсчитать средний балл по каждой секции. Не могу понять как это вообще делать, так как совсем в структурах не разобрался. Помогите пожалуйста. подробнее

Показать сообщение отдельно
djeyz
2 / 2 / 1
Регистрация: 01.04.2013
Сообщений: 70
09.09.2013, 13:23     Работа с com port
подскажите пожалуйста!!
написал программку, отправляет запрос на устройство пакет данных (без контрольной суммы), должен придти ответ и записаться в массив!порт открывается, отправляю данные, НЕ КОРРЕКТНО работает readfile()
Не пойму в чем ошибка ()
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
#include <windows.h>
#include <iostream>
 
using namespace std;
HANDLE hCom;
 
 
int main(){
    DWORD bc;
    unsigned int buf_in[10] = {0};
    unsigned int buf[10];
    buf[0] = 0x02;
    buf[1] = 0x02;
    buf[2] = 0x06;
    buf[3] = 0x04;
    buf[4] = 0x00;
    buf[5] = 0x00;
    buf[6] = 0x00;
    buf[7] = 0x00;
    
    buf[8] = 0x00;
    buf[9] = 0x00;
    
    
 
    char* pcComPort= "COM4";
    DCB dcb;
    int fSuccess;
    
    hCom=CreateFile(pcComPort, GENERIC_READ | GENERIC_WRITE, 
        0, NULL, OPEN_EXISTING, 0, NULL);
    if (hCom== INVALID_HANDLE_VALUE ){  //INVALID_HANDLE_VALUE
        printf("error open COM4!\n");
        system("pause");
        return 1;
    }
    
    GetCommState(hCom, &dcb);
     dcb.BaudRate=CBR_115200;   // Ñêîðîñòü.
     dcb.ByteSize=8;            // ГђГ*çìåð ГЎГ*éòГ*.
     dcb.fBinary=TRUE;          // Г’Г*ГЄ áûòü äîëæГ*Г®, ГЁГ*Г*Г·ГҐ Г*ГҐ Г°Г*áîòГ*ГҐГІ.
     dcb.fParity=FALSE;         // ГЌГҐГІ ñõåìû ГЇГ*ðèòåòГ*.
     dcb.fOutxCtsFlow=TRUE;     // Áóäåì èñïîëüçîâГ*ГІГј CTS ïðè îáìåГ*ГҐ.
     dcb.fOutxDsrFlow=FALSE;    // ГЌГҐ áóäåì èñïîëüçîâГ*ГІГј DSR ïðè îáìåГ*ГҐ.
     dcb.fDsrSensitivity=FALSE; // ГЌГҐ áóäåì èñïîëüçîâГ*ГІГј DSR ïðè îáìåГ*ГҐ.
     dcb.fRtsControl=RTS_CONTROL_ENABLE;  // RTS Г*Г*Г¬ Г*óæåГ*.
     dcb.StopBits=ONESTOPBIT;   // ÎäèГ* ñòîïîâûé ГЎГЁГІ.
     dcb.Parity=NOPARITY;       // ГЌГҐГІ ГЇГ*ðèòåòГ*.
     dcb.fInX=FALSE;
     dcb.fOutX=FALSE;
     dcb.fNull=FALSE;
    
     COMMTIMEOUTS cmt;
     cmt.ReadIntervalTimeout=0;
     cmt.ReadTotalTimeoutConstant=200;
     cmt.ReadTotalTimeoutMultiplier=0;
     cmt.WriteTotalTimeoutConstant=200;
     cmt.WriteTotalTimeoutMultiplier=0;    
    
    
    fSuccess=SetCommState(hCom, &dcb);
    if (!fSuccess){
        printf("popytka vyzova SetCommState error!\n");
        system("pause");
        return 1;
    }
    printf("COM port %s uspeshno sconfigurirovan\n", pcComPort);
 //--------------------------------------------------------------
    PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR); 
    
    WriteFile(hCom,buf,10,&bc,NULL);    //отправляю данные, на дисплее показывает что пришли
    ReadFile(hCom,buf_in,10,&bc,NULL);  // вот здесь перестает работать программа!!!!
    for(int i=0;i<10;i++){
            cout << buf_in[i] << " ";
            }   
    
    
    
    CloseHandle(hCom);
    
    system("pause");
    return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru