Как преобразовать символы в строку?

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Как преобразовать символы в строку?

#1

Сообщение eugeneb » 12.12.2018{, 14:40}

Чёт туплю...
Через UART в контроллер поступает последовательность символов (char),
всегда оканчивающаяся символами '\r' и '\n'.
Принимаю их блоком "Приём из UART".

Как их записать в переменную типа String, чтобы получилась строка?
Штатными блоками нельзя?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Как преобразовать символы в строку?

#2

Сообщение pan » 12.12.2018{, 15:11}

как в обычный массив
string s;
s[0] = 'h';
s[1] = 'e';
s[2] = 'l';
s[3] = 'l';
s[4] = 'o';

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#3

Сообщение Sancho » 12.12.2018{, 15:35}

eugeneb писал(а):
12.12.2018{, 14:40}
Как их записать в переменную типа String, чтобы получилась строка?
Штатными блоками нельзя?
Главное порядок выполнения: temp->Uart раньше, чем RessFromUart
Принимаю так:Показать
screenshot_18-12-12_15-38-21.png
Отправлено спустя 2 минуты 4 секунды:
TOF 50....100ms.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Как преобразовать символы в строку?

#4

Сообщение eugeneb » 12.12.2018{, 16:26}

pan писал(а):
12.12.2018{, 15:11}
как в обычный массив
Вы предлагаете сделать блок на С ?
Наверное так и придётся, если не найду способа сделать
это штатно. (что удивительно!)

Sancho, интересный трюк, попробую.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Как преобразовать символы в строку?

#5

Сообщение pan » 12.12.2018{, 16:31}

eugeneb писал(а):
12.12.2018{, 16:26}
Вы предлагаете сделать блок на С ?
просто ответил на вопрос

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Как преобразовать символы в строку?

#6

Сообщение Ingwar » 12.12.2018{, 21:05}

eugeneb писал(а):
12.12.2018{, 16:26}
Наверное так и придётся, если не найду способа сделать
это штатно. (что удивительно!)
Посмотрите в этом направлении...
чтение из порта строки.flp
(135.81 КБ) 85 скачиваний
В примере окончание строки ")", другие условия думаю "прикрутите". И добавьте очистку массива после окончания приема.
Тестил не в "натуре",а в Proteuse
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#7

Сообщение Sancho » 12.12.2018{, 22:53}

Народ.
Нахуа все эти извращения для простого приёма строки из порта??????????
Объясните мне просто?????????????
Просто собирайте переменную из приходящих символов, после дырки в поступлении присваивайте реальной - всё, парсите потом как угодно!
Иль я идиот, иль обрисуйте, в чём хитр/неправилен/... метод из поста 3.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#8

Сообщение rw6cm » 13.12.2018{, 01:08}

eugeneb писал(а):
12.12.2018{, 14:40}
Через UART в контроллер поступает последовательность символов (char),
всегда оканчивающаяся символами '\r' и '\n'.
Принимаю их блоком "Приём из UART".
Как их записать в переменную типа String, чтобы получилась строка?
Штатными блоками нельзя?
2018_12_13_01_05_06_FLProg_4.2.0.png
2018_12_13_01_05_06_FLProg_4.2.0.png (3.94 КБ) 892 просмотра
только надо определится, что будет началом или концом строки
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#9

Сообщение Sancho » 13.12.2018{, 08:09}

rw6cm, Володя, это будет очень весёлая строка :)
Например, шлём "Hello, world" - сначала она будет "H", потом "Не", потом "Hel" и так далее!
Как и когда парсить?

Отправлено спустя 25 секунд:
Проверенно!!!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#10

Сообщение rw6cm » 13.12.2018{, 08:25}

Sancho,
Не знаю что тс делает и для чего все это, но в твоем варианте строка будет всегда из одного символа,
ведь на той стороне как понял передается не строка а одиночные символы, и как часто они передаются не известно.
а чтобы небыло просмотра последовательного набора (если это не нужно) надо знать где конец или начало собираемой строки
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#11

Сообщение Sancho » 13.12.2018{, 08:32}

rw6cm писал(а):
13.12.2018{, 08:25}
Не знаю что тс делает и для чего все это, но в твоем варианте строка будет всегда из одного символа,
ведь на той стороне как понял передается не строка а одиночные символы, и как часто они передаются не известно.
а чтобы небыло просмотра последовательного набора (если это не нужно) надо знать где конец или начало строки
Володя - проверенно!!!!
Попробуй сам :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#12

Сообщение rw6cm » 13.12.2018{, 08:36}

попробуй сам ))
с терминала передать по 1 символу
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#13

Сообщение Sancho » 13.12.2018{, 08:42}

Приходит всегда на два больше - и чего - проблема убрать NL и CR ?

Отправлено спустя 16 минут 17 секунд:
eugeneb, Вот готовый вариант. Рабочий.
Убирает NL и CR в конце, т.е. два последних символа.
Вложения
Приём и разбор строки из UART_v02.flp
(102.47 КБ) 81 скачивание
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#14

Сообщение rw6cm » 13.12.2018{, 09:15}

Сань с той стороны передаются одиночные чары а не строка
в твоем варианте строка из одиночных символов не соберется,
после каждого принятого символа будет сброс строки,
в результате в переменной UART будет всегда только один последний символ
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#15

Сообщение Sancho » 13.12.2018{, 09:21}

Володя - поставить TOF на время, превышающее паузу между поступающими соседними символами :)
Или там просто нескончаемый поток? Тогда для чего?
Нет внятного описания задачи.
Ок, написать маленький ПБ. У меня куча заготовок :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#16

Сообщение rw6cm » 13.12.2018{, 09:27}

Sancho писал(а):
13.12.2018{, 09:21}
Нет внятного описания задачи.
Согласен. Потому и выложил альтернативный твоему вариант.
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#17

Сообщение Sancho » 13.12.2018{, 09:46}

rw6cm, Володя, твой, допиленный до задачи из первого поста, вариант. Не на С++!!!
Вложение удалил - не отрабатывает как надо :(
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#18

Сообщение rw6cm » 13.12.2018{, 10:28}

Sancho,
не прокатит ) блок суммирует только чары,
мне вобще не понятно как умудрился к нему байт прицепить :smile37:
к тому же с той стороны передаются чары а не байты
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как преобразовать символы в строку?

#19

Сообщение Sancho » 13.12.2018{, 10:31}

rw6cm писал(а):
13.12.2018{, 10:28}
не прокатит ) блок суммирует только чары,
мне вобще не понятно как умудрился к нему байт прицепить
к тому же с той стороны передаются чары а не байты
Володя, char A == byte 65 :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Как преобразовать символы в строку?

#20

Сообщение rw6cm » 13.12.2018{, 10:39}

Что чему равно я знаю, но это разные вещи...
Расскажи как подключить байты на вход чара тебе удалось )))
и как это на деле работает, у меня на дисплее пусто )
Win10-64, FLProg (portable)

Ответить

Вернуться в «Помогите, а то я "нимагу"»