Разбор строки принятой по UART для GRBL

Ответить
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10 янв 2020, 00:26
Имя: Александр

Разбор строки принятой по UART для GRBL

Сообщение shura2 »

Пытаюсь разобрать строку <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>

для начала внутри скобок <>

навалял такую конструкцию, но она работает как то странно, через раз, а что я сделал не так, непонятно.
Parsing_tmp.png
Что я сделал не так?


Parsing_tmp.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Разбор строки принятой по UART для GRBL

Сообщение Sancho »

[ref]shura2[/ref], Совет.
Сначала примите строку, посимвольно, когда закончите - один раз разберите.
Пример приёма 100500 раз был на форуме.
Ок, 100501
Приём строки из UART_v02.flp
Вариант 2, идеи
Заготовка Atmel_Long_String_RX.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10 янв 2020, 00:26
Имя: Александр

Разбор строки принятой по UART для GRBL

Сообщение shura2 »

разбирал я эти примеры, и их на сайте не так уж много. Так как строка все равно заполняется по одному символу из уарта, мне показалось логичным разобрать строку по мере приема. и работать уже предварительно обрезанной и проверенной стройкой.

А мой пример рабочий, ошибка была в отсылке результатов обратно в уарт - если нет изменений, то ничего не посылает, а я посылал строку одну и туже.
Аватара пользователя
DrMario
Лейтенант
Сообщения: 378
Зарегистрирован: 07 ноя 2016, 13:11
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Разбор строки принятой по UART для GRBL

Сообщение DrMario »

Проще и надежнее не бывает, я так всегда делаю.
После приема раскладывайте строку как угодно, индикатором прихода данных будет сброс приемного буфера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10 янв 2020, 00:26
Имя: Александр

Разбор строки принятой по UART для GRBL

Сообщение shura2 »

DrMario писал(а): 29 сен 2020, 06:22 Проще и надежнее не бывает, я так всегда делаю.
После приема раскладывайте строку как угодно, индикатором прихода данных будет сброс приемного буфера.
Да, делал похоже, но как-то не был уверен, что символ конца строки совпадает с концом передачи. В моем варианте это более наглядно.

Мне в контроллер надо посылать символы типа 0x18, '\n', '\0' Если \n и \0 еще понятно, то как послать все три одной строкой не доходит.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

Разбор строки принятой по UART для GRBL

Сообщение AlexCrane »

[ref]shura2[/ref], Ну так и пошли всё вместе одной строкой \x18\n\0
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10 янв 2020, 00:26
Имя: Александр

Разбор строки принятой по UART для GRBL

Сообщение shura2 »

AlexCrane писал(а): 30 сен 2020, 06:45 [ref]shura2[/ref], Ну так и пошли всё вместе одной строкой \x18\n\0
Спасибо, заработало. Только не понял почему. это же вроде разные типы данных

доделал разбор строки. Можно ли эту конструкцию упростить?
GRBL_test30_09.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

Разбор строки принятой по UART для GRBL

Сообщение AlexCrane »

[ref]shura2[/ref], Для начало хотелось бы увидеть что за строку парсите... Парсить каждый цикл одну и туже строку нет смысла, можно только при изменении строки. После блока детектора изменения строки RTrig не нужен. Это так что первое увидел.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10 янв 2020, 00:26
Имя: Александр

Разбор строки принятой по UART для GRBL

Сообщение shura2 »

AlexCrane писал(а): 03 окт 2020, 20:05 shura2, Для начало хотелось бы увидеть что за строку парсите... Парсить каждый цикл одну и туже строку нет смысла, можно только при изменении строки.
Это строка получаемая из контроллера ЧПУ станка с прошивкой GRBL - состояние, координаты. приходит в виде строки <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>. Из которой мне пока нужен только статус IDLE и координаты MPOS. Планирую же сделать автономное (без компа) управление с экраном. Из хотелок: тачскрин, графическое меню, энкодер и чтение файлов с усбфлешек.
AlexCrane писал(а): 03 окт 2020, 20:05 После блока детектора изменения строки RTrig не нужен. Это так что первое увидел.
Спасибо, поправлю
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей