Форум программистов, компьютерный форум, киберфорум
Наши страницы

робота с com-портом в шеснадцатиричном коде. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите понять что надо делать http://www.cyberforum.ru/cpp-beginners/thread382178.html
Доброго времени суток. Есть тема: "розробка інтерфейсу компютерних систем автоматизованої роботи менеджмента виробничої фірми" что тут делать? нужно написать программу, но что должна она делать...
C++ Банальная помощь с ошибкой directrx Добрый день,такая ситуация решил попробывать возможности directrx,скачал последнию версию directrx sdk 9.0,утановил больше ничего не делал,Так вот при созданиие проекта с++ win 32 и объявлении... http://www.cyberforum.ru/cpp-beginners/thread382176.html
СТЛ Вектор резинов? C++
Я имею ввиду есть ограничения на количество значений которое он содержит? Когда писать . . . long long x; vector <int> vect; vect.resize(x); . . .
C++ Помощь с потоковым вводом-выводом.
Доброго времени суток. можно ли как-нибудь создать/открыть файл для чтения и добавления с помощью ofstream ? Или только с fopen?
C++ Вычислить разложение косинуса с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread382155.html
A2 Вычислить: S=1- с точностью 0.0005.(cos(x)) Есть код #include <iostream> #include <math.h> using namespace std; const double eps=0.0005; double vozv_v_n_step(double x, int n) {
C++ Ошибка повторения имен переменных при использовании глобальной переменной Есть 3 файла: head.h #ifndef HeuristicKardano_probmatr_h #define HeuristicKardano_probmatr_h int m1; int m2; int m3; #endif подробнее

Показать сообщение отдельно
GIRATOR
13.11.2011, 16:50
Роботает норм. А как быть с необозанчеными символами. Тоесть вот накорявил по примерам две програми, одна считывает с 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
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <fstream>
using namespace std;
 
int main()
{
    char name[4]="com";
    char symbol='Q';
    char *number=new char;
    HANDLE hport;
    DWORD real_read;
    DCB dcb;
    BOOL succ;
    ofstream out;
 
    cout <<"TEST READING FROM COM-PORT AND WRITING IN FILE" <<endl <<endl;
    cout <<"ENTER COM-PORT NUMBER: ";
    cin >>number;
    cout <<endl;
    strcat(name,number);
    hport=CreateFile(name,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
 
    if(hport==INVALID_HANDLE_VALUE)
    {   cout <<"COM" <<number <<"  CAN'T BE OPENED" <<endl;
        getche();
        return 1;   }
 
    out.open("TEST.a32",ios::trunc);
 
    if(!out)
    {   cout <<"FILE 'TEST.a32' CAN'T BE OPENED" <<endl;
        getche();
        return 1; }
 
    dcb.DCBlength=sizeof(dcb);
    succ=GetCommState(hport,&dcb);
    dcb.BaudRate=CBR_115200;
    dcb.ByteSize=8;
    dcb.Parity=EVENPARITY;
    dcb.StopBits=2;
    succ=SetCommState(hport,&dcb);
 
    while(true)
    {   ReadFile(hport,&symbol,1,&real_read,NULL);
        if(real_read==1) { out <<symbol; cout << symbol; } }
 
    out.close();
    CloseHandle(hport);
    return 0;
}

А вторая собственно отправляет, считывает с клавы срвазу в 16-м коде, тоесть набираем 41 получаем А, 42 - В... и т.д .:

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
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
using namespace std;
 
int main()
{
    char name[4]="com";
    char *number=new char;
    HANDLE hport;
    DWORD real_write;
    DCB dcb;
    BOOL succ;
    char symbol[512];
 
 
    cout <<"TEST SENDING TO COM-PORT" <<endl <<endl;
    cout <<"ENTER COM-PORT NUMBER: ";
    cin >>number;
    cout <<endl;
    strcat(name,number);
 
    hport=CreateFile(name,GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
    if(hport==INVALID_HANDLE_VALUE)
    { cout <<"COM" <<number <<"CAN'T BE OPENED" <<endl;
        getche();
        return 1; }
 
    dcb.DCBlength=sizeof(DCB);
    succ=GetCommState(hport,&dcb);
    dcb.BaudRate=CBR_115200;
    dcb.ByteSize=8;
    dcb.Parity=EVENPARITY;
    dcb.StopBits=2;
    succ=SetCommState(hport,&dcb);
 
  int s =0;
  for (s = 0; s < 255; s++)
    {
    cout << endl <<">";
    if (feof(stdin)) break;
    fflush(stdout);
    scanf("%x", symbol);
    int i=0;
      while (symbol[i] != 0)
      { WriteFile(hport,&symbol[i],1,&real_write,NULL);
      i = i+1; }
    }        
   
    CloseHandle(hport);
    return 0;
}
И ну и тоже самое, с "FF", а если ввести 0 или чегото до 21 то вообще абракадабра...
Или ето просто програма читатель норм не может отобразить, а контролерру будет понятно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru