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

Hex to Ascii - C++

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

Hex редактор C++
C++ Работа с HEX
C++ Перевод из HEX в ASCII и ещё кое - что
C++ Запись в файл значения int (hex,ascii)
C++ std::ios::hex или std::ios.hex
Перевернуть hex C++
string в hex C++
C++ Builder Отправка HEX на COM
C++ hex редактор на с++
C++ hex редактор
HEX в BIN C++
C++ Из Hex в Dec

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandr_1982
175 / 71 / 17
Регистрация: 04.11.2013
Сообщений: 382
Записей в блоге: 4
29.01.2016, 19:30     Hex to Ascii #2
printf у вас есть? Шестнадцатеричные константы начинаются с \x
C
1
2
printf("\x55\x55\x00\x00");
printf("\xaa\n");
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76
29.01.2016, 20:14  [ТС]     Hex to Ascii #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);
Alexandr_1982
175 / 71 / 17
Регистрация: 04.11.2013
Сообщений: 382
Записей в блоге: 4
29.01.2016, 21:17     Hex to Ascii #4
Может нужно port->read после port->write, чтобы узнать ответ от АЦП?
Командная строка на АЦП (индикатор?)?
\x0 является окончанием строки, поэтому может потребоваться разбить отправку.
HyPuK
4 / 4 / 1
Регистрация: 24.01.2013
Сообщений: 76
31.01.2016, 13:15  [ТС]     Hex to Ascii #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
Yandex
Объявления
31.01.2016, 13:15     Hex to Ascii
Ответ Создать тему
Опции темы

Текущее время: 07:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru