Лучший подход к go от ввода строки до выполнения задачи? - PullRequest
0 голосов
/ 28 января 2020

Я получаю строку во встроенном приложении в формате:

SLP24h MES1x SLP1h MES2s100ms

, что в переводе гласит:

sleep for 24 часов, затем выполните измерение образца один раз, затем проведите сон в течение 1 часа, затем выполните измерения в течение 2 секунд каждые 100 миллисекунд.

Я должен получить эту и аналогичные строки и использовать их для создания расписания для измерений датчиков. Строка предоставляется пользователем во время выполнения, поэтому должна обрабатываться во время выполнения. Язык C или C ++. В платформу встроен ARM, на котором выполняется freeRTOS.

Мой первоначальный план - изучить грамматику, намереваясь написать свою собственную, и использовать ее для разбора входящей строки и создания структур из нее (содержимое структуры будет зависеть от анализируемой команды) , Я бы поместил эти структуры в вектор, и задача измерения датчика будет l oop вокруг этого вектора, выполняющего действие после действия.

Действия, вероятно, будут закодированы как события, поэтому в основном l oop в vector, читайте структуры как запрошенное действие и выполняйте действия с использованием конечного автомата.

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

Будет ли мой подход действительным? Есть ли более стандартный способ решения этого типа проблемы? Если бы кто-то мог дать совет о том, какой будет хорошая отправная точка и перечислить некоторые полезные материалы для чтения, я был бы благодарен.

...