Форум программистов, компьютерный форум, киберфорум
C/C++: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 04.12.2016
Сообщений: 9

Отправить Ctrl+Z по UART

24.12.2016, 11:41. Показов 5630. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Устройство отменивается данными с sim900 AT коммандами, проблема в том, что в конце сообщение необходимо закрыть комбинацией Cntrl+Z она же \032 оно же \x1a в общем виде порядок передаваемых комманд выглядит так
AT+CMGF=1
AT+CMGS="phone#"
message
Ctrl-Z

Множество проб и ошибок передать комбинацию цифр как Ctrl-Z к успеху не привело, потратил несколько часов на поиске в интернете, где нашел кучу каких-тообрывочных данных, о каких-о пролемах с буфферизацией символа, необходимости его передать с конечной длинной, что вообщем-то мне ни о чем не говорит. Вот мой код, он отлично отрабатывает до Cntl+Z что я вижу через Com-порт, нет только закрывающего символа, очень прошу помочь --

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char MySmsText [] = "All Normal" ;// переменная хранения сообщения
char MyNumberPhone [] ="+88888888888"; // Переменная для хранения номера
int message(char MySmsText [],char MyNumberPhone []){
 FILE *fptty = fopen("/dev/ttyS2", "w");
fprintf(fptty, "AT+CMGF=1\r\n");  //Инициация передач смск -- AT+CMGF=1<enter>
delay (5000);
fprintf(fptty, "AT+CMGS="%s"\r\n", MyNumberPhone);   // AT+CMGS=(номер телефона)<enter>
delay (4000);
fprintf(fptty, "%s", MySmsText);   // "All Normal", GSM module!
delay (1000);
 fprintf(fptty, "\032");  // Строка которая должна отправить Ctrl +Z, но вместо этого отправлся   032 ))
 fclose (fptty);
         }
main(){ 
 message(MySmsText,MyNumberPhone);
}
Добавлено через 3 часа 2 минуты
что-то там связано с передачей нулевого символа кажись, может кто знает как его передать в этом коде?

Добавлено через 4 часа 42 минуты
Эта проблема каким-то образом разрешается через отправу символа с каким то символическим нулем, в общем вот этот код, но я не понимаю как его прикрутить к моей задаче

C
1
2
3
4
5
6
7
bzero (buffer, sizeof(buffer));
read(fd, buffer, sizeof(buffer));
strcpy(buffer, "AT+CMGS ="+60125649001"\r\nhello\n");
buffer[strlen(buffer)+1] = '\0';
buffer[strlen(buffer)] =(char)0x1A;
write (fd, buffer, strlen(buffer)+1);
wait();
человек что-то отписался на английском --
Well, It was my mistake. I generalized the size of the data sent t following 0x1A meant. To solve this I used strlen to send the real size of the char * sent to the serial port.o the serial port. I think since the sent size defined was larger, the values following the ctrl-z hex value 0x1A were garbage values. So my command could not save the sms in memory as it did not know the values
и вот вроде , как то еще вот так можно символ подсунуть
C
1
char ctrlZ[]={0x1A,0x00};
применяя strcpy кто-нибудь что-нибуд в этом понимает? программисты здесь вообще бывают?))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2016, 11:41
Ответы с готовыми решениями:

Как отправить Ctrl+V через SendKeys.Send()?
Скажите пожалуйста как сделать ctrl+v. Все перепробовал ничего не робит.

Отправить нажатие Ctrl+F9 программе работающего в фоном режиме
Доброго, гуглил вопрос и нашел массу не работающих решений :) - не получается отправить нажатие Ctrl+F9 программе работающего в фоном...

Как отправить в активное окно комбинацию клавиш Ctrl+T?
Как отправить в активное окно комбинацию клавиш Ctrl t ?

2
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
24.12.2016, 16:20
Лучший ответ Сообщение было отмечено Антон Бутов как решение

Решение

Цитата Сообщение от Антон Бутов Посмотреть сообщение
C++
1
fprintf(fptty, "\032"); // Строка которая должна отправить Ctrl +Z
Для начала попробуй так (вместо процитированного):
C++
1
fprintf(fptty, "\x1A");
1
0 / 0 / 0
Регистрация: 01.11.2024
Сообщений: 1
28.04.2025, 22:23
Для STM32 + sim800l

C
1
2
3
char ctrlZ[]={0x1A,0x00};
char str[128] = {0};
sprintf(str,"Hello!%s",ctrlZ);
И отправил это дело в UART. Все сработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2025, 22:23
Помогаю со студенческими работами здесь

Как отправить форме сочетание клавиш - Ctrl+C - для копирования выделенного текста?
Всем доброго дня. Вопрос в следующем. На форме есть некий выделенный текст, нужно его скопировать нажатием на кнопку или при выборе пункта...

JTextPane, функции Ctrl+A, Ctrl+C, Ctrl+X перенести на кнопку
Класс JTextPane поддерживает нажатие клавиш таких как Ctrl+A, Ctrl+C, Ctrl+X и т. д. Вопрос заключается в том, чтобы функции, которые...

Как отловить нажатие ctrl+v ctrl+c ctrl+x key_Press
Как правильно отловить нажатие ctrl+v ctrl+c ctrl+x в событии key_Press? я пробую так: private void textBox_ServerIP_KeyPress(object...

Не работает ctrl+c, ctrl+v, ctrl+a, ctrl+x в ubuntu 12.04
Здравствуйте, не работают такие горячие клавиши, может кто уже стыкался з данной проблемой. Как можно устранить такое?

Сообщения для 2 UART выводятся в 1 UART, STM32F103C8T6
Почему может неправильно работать uart? Подключил 1 uart к пк через usb/uart переходник, а второй к gsm модему. В первый уарт вывожу инфу...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru