enum signals current_signal = getSignal();
Я правильно понимаю, что enum signals — это тип? Т.е. можно сделать typedef enum signals signal_t;
А где функция getSignal? Или это просто некая не относящаяся к посту функция, которая ловит сигнал… АААААААА
ок
enum states new_state = FSM_table[current_state][current_signal];
Блин, понял. В цикле ловим сигнал и меняем стейт по таблице
А чо, класс! Два дня всего отняло понимание :-) Супер пост!
Я вот так всегда делаю: github.com/Traumflug/Teacup_Firmware/blob/master/gcode_parse.c
Т.е. если нужна последовательность «ACDA», то алгоритм такой: читаем символ, если он А и стейт «начало», идем в стейт «ждем С». Читаем символ, если он С — идем в стейт «ждем D», иначе откатываемся в начало. В случае приведенного примера не очень-то большой код получается, а вот с ростом количества сигналов и состояний можно немаленький огород вырастить.
Вроде чувствую, что в топике что-то интересное описано, а понять код не могу :-(
Все супер, только непонятно как происходит поиск проблем — автоматика какая-то или стравили слой — прошли «вручную» посмотрели, и т.д. Это сколько ж времени отнимает проверить слой, если это «вручную» делается?
Учитывая формулировки, ничего никому доказывать не надо. Дурак такой репорт не напишет.
The activity that we profile in this paper
appears to be the work of a skilled team of
developers and operators collecting intelligence
on defense and geopolitical issues – intelligence
that would only be useful to a government. We
believe that this is an advanced persistent
threat (APT) group engaged in espionage
against political and military targets including
the country of Georgia, Eastern European
governments and militaries, and European
security organizations since at least 2007. They compile malware samples with Russian
language settings during working hours
consistent with the time zone of Russia’s major
cities, including Moscow and St. Petersburg.
Не, ну это правда офигенно! с 9-00 до 18-00 пон-пятн. Таких ушей еще ни разу по-моему не торчало :-)
Т.е. люди приходят к 9 на работу, пропуска там проштамповали — режимный объект. В 18: кончил — не кончил, собрался пошел домой. Блин, класс :-) Тоже плачу.
Случайность добавляет сложности точного предсказания (делает его принципиально невозможным), однако это плохой, «читерский» способ. Настоящая «глубокая» физика позволяет строить все более точные модели (ценой вычислительной сложности или более продвинутых алгоритмов), случайность же не дает этой глубины.
ВОт это мощная мысль, до которой я не додумался, предлагая ввести случайную составляющую. Посмотрел еще твои комментарии к другим топикам — жалко ты чаще не пишешь…
А вот есть ощущение, что весь этот цирк — необходим был? Почему не сделать тупо «оптическое» отражение шайбы от борта? Зачем все эти расчеты непонятные, дающие +-5точек? Уверен, что на поведение шайбы это бы не сказалось _никак_.
Неа, не до конца ты разобрался. Там каждый тик идет проверка — где мы? За полем, ок, _просто инвертируем скорость_. Т.е. шайба уже за полем, а мы целый тик только скорость инвертнули. Ок, на след тик она поехала в обратном направлении. Если выехала в ринг обратно — все хорошо, нехай катится. А вот если нет — координата меняется вручную. А как — фиг поймаешь. Есть только ощущение, что как-то строится нормаль к стенке, берутся отношения отрезков радиуса и т.д. В общем — магия!
Подождите, я все равно не понял. Изменение скорости — это всегда 1/4 от скорости ДО удара. Там без графиков за минуту это очевидным становится (но инструмент мне освоить надо, спасибо!). А вот изменение координаты на десяток пикселей, если шайба слишком глубоко погружается в стенку — вот тот чертополох мне непонятнен.
И я ничего не понял про главный алгоритм :-( «Параметризуется» — значит интерполяция, т.е. перебор не по набору ускорений [-1, 0, 1]? Что значит абзац про выход под определенным углом и соезинение двух траекторий коцами? :-(
..., например, написали бы каммент на хабре!
я даже листать устал
enum signals current_signal = getSignal();
Я правильно понимаю, что enum signals — это тип? Т.е. можно сделать typedef enum signals signal_t;
А где функция getSignal? Или это просто некая не относящаяся к посту функция, которая ловит сигнал… АААААААА
ок
enum states new_state = FSM_table[current_state][current_signal];
Блин, понял. В цикле ловим сигнал и меняем стейт по таблице
А чо, класс! Два дня всего отняло понимание :-) Супер пост!
PeStudio winitor.com показывает не только дату изменения файла, но и дату создания (см. file headers). Не то?
github.com/Traumflug/Teacup_Firmware/blob/master/gcode_parse.c
Т.е. если нужна последовательность «ACDA», то алгоритм такой: читаем символ, если он А и стейт «начало», идем в стейт «ждем С». Читаем символ, если он С — идем в стейт «ждем D», иначе откатываемся в начало. В случае приведенного примера не очень-то большой код получается, а вот с ростом количества сигналов и состояний можно немаленький огород вырастить.
Вроде чувствую, что в топике что-то интересное описано, а понять код не могу :-(
Т.е. люди приходят к 9 на работу, пропуска там проштамповали — режимный объект. В 18: кончил — не кончил, собрался пошел домой. Блин, класс :-) Тоже плачу.
Цвета выбраны неудачно… 2ч45мин — зеленый цвет? Ну ок…
ВОт это мощная мысль, до которой я не додумался, предлагая ввести случайную составляющую. Посмотрел еще твои комментарии к другим топикам — жалко ты чаще не пишешь…