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

C++

Войти
Регистрация
Восстановить пароль
 
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76
#1

Hex to Ascii - C++

29.01.2016, 18:03. Просмотров 608. Ответов 4
Метки нет (Все метки)

Всем привет!
Работаю с АЦП, и ему надо отправить ascii код (55H 55H 00H 00H AAH). (в виде char будет (UU ª), просто так отправить не удалось)
Попробовал отправить hex (55 55 00 00 AA), не принимает.
Кто-нибудь может мне помочь вывести строчку "UU ª" хотя бы на командную строку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2016, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Hex to Ascii (C++):

Сохранить Hex файл - C++
У меня есть Hex файл, мне его надо ипортировать, мне нужно сохранить Hex файл на с++, помогите пожалуйста.

Вывод данных в HEX по указателю - C++
Скрывать не буду, совсем не силен в указателях в c++. Путаюсь сильно со звездочками. Исходные данные: Имею структуру (названия все...

Ввод зарезервированных символов ASCII - C++
Здраствуйте! Есть консольная программа(си++,ос хр)... как в консоли ввести "крякодзябы"? мне нужно ввести в консоль символы...

Как правильно создать ModBus ASCII запрос? - C++
Адрес - 26 Код функции 03h начало - 0000 Количество -0004 расчет LRC char calculateLRC( char b, int n){ char lrc...

Отправка HEX на COM - C++ Builder
Подскажите пожалуйста. нужно отправить на com порт запрос в виде "00 01 7E 80". каким образом это сделать? пытаюсь таким образом: void...

Считывание значения HEX - C++ Builder
Пытаюсь написать программку, которая будет считывать значения HEX. http://изображения файлы выкладывайте на форум Например вот эти FF,...

4
Alexandr_1982
177 / 75 / 17
Регистрация: 04.11.2013
Сообщений: 384
Записей в блоге: 4
29.01.2016, 19:30 #2
printf у вас есть? Шестнадцатеричные константы начинаются с \x
C
1
2
printf("\x55\x55\x00\x00");
printf("\xaa\n");
0
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76
29.01.2016, 20:14  [ТС] #3
Alexandr_1982, Спасибо, что ответили.

По-разному попробовал отправить, АЦП не отвечает.

C++
1
2
3
sprintf(str,"\x55\x55\x00\x00\xAA");
    qDebug("ASCII: %s", str);
    port->write(str);
С помощью Matlab я отправляю так, работает, но работает медленно, поэтому и перешел на С++
Matlab M
1
2
3
4
obj1 = serial('COM3');
ascii_codes = [85 85 0 0 170];
h1=char(ascii_codes);
 fwrite(obj1,h1);
0
Alexandr_1982
177 / 75 / 17
Регистрация: 04.11.2013
Сообщений: 384
Записей в блоге: 4
29.01.2016, 21:17 #4
Может нужно port->read после port->write, чтобы узнать ответ от АЦП?
Командная строка на АЦП (индикатор?)?
\x0 является окончанием строки, поэтому может потребоваться разбить отправку.
0
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76
31.01.2016, 13:15  [ТС] #5
Alexandr_1982, Вы правы, \x0 является окончанием строки, и ascii код полностью не передается.

После port->read у меня есть port->write, и он ничего не выдает (а в matlabe работает...)

Отправку я могу разбить, но вот не понимаю, как передать hex (00)?

Если передать

C++ (Qt)
1
2
char *str = "\x00";
printf("ASCII: %s", str);
то ничего не передается (так как, как вы уже написали, "\x0 является окончанием строки")

Добавлено через 23 часа 53 минуты
Дааа, пару дней я на это потратил))
Вот решение:

C++ (Qt)
1
2
3
4
5
6
7
8
9
QByteArray ba;
    ba.resize(5);
    ba[0] = 0x55;
    ba[1] = 0x55;
    ba[2] = 0x00;
    ba[3] = 0x00;
    ba[4] = 0xaa;
 
    port->write(ba);
P.s: Если вам надо отправить NULL(NUL) вместо \x00 надо отправлять \0, но почему-то у меня не сработало..

Добавлено через 2 минуты
Может кому пригодится, все коды ASCII через Escape Sequence (не знаю как будет на русском)

C++ Reserved or Non-graphic Characters
0
31.01.2016, 13:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2016, 13:15
Привет! Вот еще темы с ответами:

Считывание HEX в Memo - C++ Builder
Доброго дня. Ребята спасайте , пытаюсь считать файлик , ну и получить содержимое в HEX к примеру в Memo . исключив все ff ff ff ff...

Создать класс HEX - C++ Builder
Создать класс Hex для работы с беззнаковыми целыми шестнадцатеричными числами, используя для представления числа массив из 100...

Конвертер из hex в bin - C++ Builder
Подскажите как в C++ Builder написать конвертер из hex в bin?

Как преобразовать hex в ascii (HEX редактор) - C++/CLI WinForms
Написал: String ^in; openFileDialog1->Filter = "hex Files|*.hex"; openFileDialog1->Title = "Select a hex File"; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.