Страница 1 из 2

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

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

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

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

Добавлено: 12 дек 2018, 15:11
pan
как в обычный массив
string s;
s[0] = 'h';
s[1] = 'e';
s[2] = 'l';
s[3] = 'l';
s[4] = 'o';

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

Добавлено: 12 дек 2018, 15:37
Sancho
eugeneb писал(а): 12 дек 2018, 14:40Как их записать в переменную типа String, чтобы получилась строка?
Штатными блоками нельзя?
Главное порядок выполнения: temp->Uart раньше, чем RessFromUart
[spoiler=Принимаю так:]
screenshot_18-12-12_15-38-21.png
[/spoiler]

Отправлено спустя 2 минуты 4 секунды:
TOF 50....100ms.

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

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

[ref=#ff8000]Sancho[/ref], интересный трюк, попробую.

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

Добавлено: 12 дек 2018, 16:31
pan
eugeneb писал(а): 12 дек 2018, 16:26Вы предлагаете сделать блок на С ?
просто ответил на вопрос

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

Добавлено: 12 дек 2018, 21:05
Ingwar
eugeneb писал(а): 12 дек 2018, 16:26Наверное так и придётся, если не найду способа сделать
это штатно. (что удивительно!)
Посмотрите в этом направлении...
чтение из порта строки.flp
В примере окончание строки ")", другие условия думаю "прикрутите". И добавьте очистку массива после окончания приема.
Тестил не в "натуре",а в Proteuse

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

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

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

Добавлено: 13 дек 2018, 01:08
rw6cm
eugeneb писал(а): 12 дек 2018, 14:40Через UART в контроллер поступает последовательность символов (char),
всегда оканчивающаяся символами '\r' и '\n'.
Принимаю их блоком "Приём из UART".
Как их записать в переменную типа String, чтобы получилась строка?
Штатными блоками нельзя?
2018_12_13_01_05_06_FLProg_4.2.0.png
только надо определится, что будет началом или концом строки

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

Добавлено: 13 дек 2018, 08:09
Sancho
[ref=#ff8000]rw6cm[/ref], Володя, это будет очень весёлая строка :)
Например, шлём "Hello, world" - сначала она будет "H", потом "Не", потом "Hel" и так далее!
Как и когда парсить?

Отправлено спустя 25 секунд:
Проверенно!!!

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

Добавлено: 13 дек 2018, 08:25
rw6cm
[ref=#ff8000]Sancho[/ref],
Не знаю что тс делает и для чего все это, но в твоем варианте строка будет всегда из одного символа,
ведь на той стороне как понял передается не строка а одиночные символы, и как часто они передаются не известно.
а чтобы небыло просмотра последовательного набора (если это не нужно) надо знать где конец или начало собираемой строки

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

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

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

Добавлено: 13 дек 2018, 08:36
rw6cm
попробуй сам ))
с терминала передать по 1 символу

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

Добавлено: 13 дек 2018, 08:59
Sancho
Приходит всегда на два больше - и чего - проблема убрать NL и CR ?

Отправлено спустя 16 минут 17 секунд:
[ref]eugeneb[/ref], Вот готовый вариант. Рабочий.
Убирает NL и CR в конце, т.е. два последних символа.

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

Добавлено: 13 дек 2018, 09:15
rw6cm
Сань с той стороны передаются одиночные чары а не строка
в твоем варианте строка из одиночных символов не соберется,
после каждого принятого символа будет сброс строки,
в результате в переменной UART будет всегда только один последний символ

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

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

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

Добавлено: 13 дек 2018, 09:27
rw6cm
Sancho писал(а): 13 дек 2018, 09:21Нет внятного описания задачи.
Согласен. Потому и выложил альтернативный твоему вариант.

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

Добавлено: 13 дек 2018, 09:46
Sancho
[ref=#ff8000]rw6cm[/ref], Володя, твой, допиленный до задачи из первого поста, вариант. Не на С++!!!
Вложение удалил - не отрабатывает как надо :(

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

Добавлено: 13 дек 2018, 10:28
rw6cm
[ref=#ff8000]Sancho[/ref],
не прокатит ) блок суммирует только чары,
мне вобще не понятно как умудрился к нему байт прицепить :smile37:
к тому же с той стороны передаются чары а не байты

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

Добавлено: 13 дек 2018, 10:31
Sancho
rw6cm писал(а): 13 дек 2018, 10:28не прокатит ) блок суммирует только чары,
мне вобще не понятно как умудрился к нему байт прицепить
к тому же с той стороны передаются чары а не байты
Володя, char A == byte 65 :)

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

Добавлено: 13 дек 2018, 10:39
rw6cm
Что чему равно я знаю, но это разные вещи...
Расскажи как подключить байты на вход чара тебе удалось )))
и как это на деле работает, у меня на дисплее пусто )