DRAKON.SU https://forum.drakon.su/ |
|
Программируем с и.с. Drakon https://forum.drakon.su/viewtopic.php?f=144&t=3129 |
Страница 2 из 3 |
Автор: | ==== [ Понедельник, 17 Январь, 2011 21:27 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
http://forum.oberoncore.ru/viewtopic.php?p=57369#p57369 В схеме GPRS_send_A.drt в комметарии и в программных приложениях правильно так: Код: Time = GetTime(); while (GetTime() - Time) <= SEKUNDA) rt_free; Изменено с ">=" на "<=". |
Автор: | efanov [ Вторник, 18 Январь, 2011 11:39 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Геннадий Тышов писал(а): http://forum.oberoncore.ru/viewtopic.php?p=57369#p57369 Да, конечно, точнее нужно не "<=", а просто "<" . Я не думаю, что кто то возьмётся это повторять. Но если подходить к этому примеру строго, то нужно сказать, что он и в этом виде не рабочий. Дело в том, что предложенные макросы (rt_begin, rt_free, rt_end) образуют в тексте программы переключатель switch. Это хорошо работает, пока в тексте нет иных переходов, кроме goto. Но нужно быть осторожным с циклами, в частности while. Если переписать этот пример с "разворачиванием" макроса, то мы увидим:В схеме GPRS_send_A.drt в комметарии и в программных приложениях правильно так: Код: Time = GetTime(); while (GetTime() - Time) <= SEKUNDA) rt_free; Изменено с ">=" на "<=". Код: while (GetTime() - Time) < SEKUNDA) и тут есть сразу несколько причин не работать: во первых, отсутствие фигурных скобок вокруг макроса уже приводит к циклу, который работает без задержки:ss = __LINE__; break; case __LINE__: Код: while (GetTime() - Time) < SEKUNDA) Эта проблема легко решается заключением макроса в скобки, но тогда мы имеем внутри скобок оператор break, который опять таки сразу же прервёт цикл while:ss = __LINE__; Код: while (GetTime() < Time) < SEKUNDA) Для решения этой проблемы я изменил свои макросы, и добавил к ним ещё два:{ ss = __LINE__; break; case __LINE__: } Код: #define rt_begin static unsigned int ss = 0; switch(ss){ default: ss = 0; case 0: Теперь задержки работают без проблем.#define rt_free ss = __LINE__; goto RT_END; case __LINE__: #define rt_end RT_END:;} #define TMO(x) Usl = ((GetTime() - Time) >= x);// это макрос для развилки с вопросом "прошло х секунд?" #define PAUZA(x) Time = GetTime(); \ while(( GetTime() - Time) < x)\ {\ rt_free;\ }// это макрос для иконки "пауза р.в" С уважением, Ефанов Сергей. |
Автор: | ==== [ Среда, 19 Январь, 2011 05:28 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
efanov писал(а): С уважением, Ефанов Сергей. Если это ко мне, то есть предложение не использовать эту фразу, что бы к обсуждению могли подключится и другие.Сергей, вы специалист в Си лучше чем я и конечно ваш код ближе к реальному. В вашем примере теперь есть код реализации для икон реального времени "Пуск таймера", "Пауза" и "Период". Нет примера реализации иконы "Синхронизатор по таймеру". В ИС Дракон эта икона не имеет текста программного приложения и код реализации необходимо включать в текст программного приложения той иконы, к которой присоединен "Синхронизатор по таймеру". |
Автор: | efanov [ Среда, 19 Январь, 2011 11:44 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Геннадий Тышов писал(а): Нет примера реализации иконы "Синхронизатор по таймеру" Перед кодом, реализущим действие в иконе, к которой присоединён "Синхронизатор по таймеру" добавить примерно следующее:Код: if((GetTime() - Time) < SEKUNDA)
{ rt_free; } |
Автор: | ==== [ Среда, 19 Январь, 2011 21:51 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Взамен if необходимы: while и ЗначениеСинхронизатора Код: while ((GetTime() - Time) < ЗначениеСинхронизатора)
{ rt_free; } |
Автор: | efanov [ Четверг, 20 Январь, 2011 09:43 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Геннадий Тышов писал(а): Взамен if необходимы: while и ЗначениеСинхронизатора Да, конечно, - тут я ошибся.
|
Автор: | ==== [ Суббота, 22 Январь, 2011 06:35 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Вложение: вариант_меню.png efanov писал(а): Как на Ваш взгляд, какой из них более правильный, более наглядный и более соответствует правилам языка Дракон? Наглядной и соответствующей правилам языка Дракона является 1-я схема.1. Основная задача, допустить пользователя к меню, реализуется иконой "Адрес" - "Меню", это главное действие и оно размещено на главном шампуре. 2. В схеме имеем декомпозицию циклов, разделение функций между веточным циклом и циклом "Ждать", 3. Цикл "Ждать" также гораздо проще, т.к. в петле цикла 1 вход, на 2-й же схеме их 3. С ответом вам, произошла задержка. Не мог понять функционального или предметного смысла текстов икон. Терминология ориентирована на программиста, разработчика схемы, для пользователя она не понятна. В текущем состоянии схем, нет ориентации на пользователей разного уровня, т.к. не используются административные и алгоритмические текстовые приложения. В ИС Дракон язык Дракон получил развитие. Здесь иконы и схемы имеют ряд дополнительных элементов. По В.Д. Паронджанову, Дракон-схема в отрыве от системы Графит-Флокс, это бумажный документ, в ИС Дракон это интерактивный документ используемый на ПЭВМ. В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства. Сергей, хочу отметить ваш быстрый прогресс, от первого знакомства с идеями языка Дракон до инструментального его использования в практической деятельности. |
Автор: | efanov [ Суббота, 22 Январь, 2011 07:21 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Геннадий Тышов писал(а): Не мог понять функционального или предметного смысла текстов икон. Терминология ориентирована на программиста, разработчика схемы, для пользователя она не понятна. Да, действительно, я тут уже для своего конкретного устройства (то бишь - для себя) имена иконкам давал.Цитата: В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства. Речь идёт о первом и втором текстовом квадратиках на иконах? Пока для меня их смысл и назначение не ясен. Меня увлекла, в первую очередь, возможность решить свои практические проблемы - получение работающих программ. Но потихоньку разберусь со всем.Цитата: Сергей, хочу отметить ваш быстрый прогресс, от первого знакомства с идеями языка Дракон до инструментального его использования в практической деятельности. Да мне кажется, что этот язык специально для меня придумали!
|
Автор: | efanov [ Суббота, 22 Январь, 2011 09:10 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Геннадий Тышов писал(а): В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства. Геннадий Николаевич, не могли бы Вы показать небольшой пример дракон-схемы с иллюстрацией этих возможносте?
|
Автор: | ==== [ Суббота, 22 Январь, 2011 10:23 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Сергей, к вопросу о вводе пароля, схема на Драконе: http://forum.oberoncore.ru/viewtopic.php?p=38422#p38422 http://www.free-lance.ru/users/fedyaev-andrey/viewproj.php?prjid=1640353 http://freelance.ru/users/fedyaev-andrey/ http://www.weblancer.net/users/fedyaev-andrey/portfolio/750801.html http://uidesign.ru/projects/project_029.php |
Автор: | Владислав Жаринов [ Суббота, 22 Январь, 2011 13:25 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
efanov писал(а): Геннадий Тышов писал(а): В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства. Речь идёт о первом и втором текстовом квадратиках на иконах? Пока для меня их смысл и назначение не ясен. |
Автор: | efanov [ Среда, 02 Февраль, 2011 11:27 ] | ||
Заголовок сообщения: | Re: Программируем с и.с. Drakon | ||
Отлаживая очередную дракон-схему (приложена), стал задумываться об отладке. Мысли (в стиле Манилова) такие: -вот как бы было хорошо, если бы в программный код каждой иконы была возможность автоматически, на время отладки, вставить макрос, передав ему в качестве параметра номер иконы! Геннадий Николаевич, может быть, такую мечту реально воплотить? Думаю, не только мне пригодилось бы - ведь макрос каждый для себя свой напишет. Направив вывод в файл можно будет автоматически получить протокол испытаний, да и мало ли как ещё использовать.
|
Автор: | Владимир Паронджанов [ Понедельник, 07 Февраль, 2011 13:53 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
Согласно логической последовательности следующее сообщение Сергея Ефанова см. здесь viewtopic.php?p=59602#p59602 |
Автор: | ==== [ Суббота, 12 Февраль, 2011 15:48 ] |
Заголовок сообщения: | Re: Программируем с и.с. Drakon |
http://denwebs.blogspot.com/2010/10/blog-post.html Денис http://denwebs.blogspot.com/2007_12_06_archive.html Язык ДРАКОН Цитата: Разработчики языка полагают, что правила языка ДРАКОН по созданию диаграмм оптимизированы для восприятия алгоритмов человеком. Таким образом, язык предлагается в качестве инструмента усиления интеллекта.
Вот эти самые "оптимизация для восприятия алгоритмов человеком" и "усиление интеллекта" меня в нем и заинтересовали. ... - подумал, а может попробовать применить его в текущем проекте на работе? Тем более, что задачка для этого есть подходящая: разработка алгоритма обмена данными между задачами RTOS и с сервером в навигационном терминале. Вдруг чтото хорошее из этого и получится:) |
Автор: | efanov [ Суббота, 12 Февраль, 2011 16:59 ] | ||
Заголовок сообщения: | Человек так устроен - когда хорошо, хочется ещё лучше. | ||
Активно работаю с редактором над довольно большим (по моим масштабам) проектом. В процессе работы потихоньку вырабатываются некоторые навыки и приёмы. Вот как сейчас выглядит у меня "рабочий цикл". По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...
|
Автор: | Владислав Жаринов [ Суббота, 12 Февраль, 2011 18:13 ] |
Заголовок сообщения: | Re: Человек так устроен - когда хорошо, хочется ещё лучше. |
efanov писал(а): ... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ... И как Вы предполагаете это сделать?
|
Автор: | efanov [ Суббота, 12 Февраль, 2011 18:23 ] |
Заголовок сообщения: | Re: Человек так устроен - когда хорошо, хочется ещё лучше. |
Драконограф писал(а): efanov писал(а): ... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ... И как Вы предполагаете это сделать? |
Автор: | Владислав Жаринов [ Суббота, 12 Февраль, 2011 18:56 ] |
Заголовок сообщения: | Re: Человек так устроен - когда хорошо, хочется ещё лучше. |
efanov писал(а): Драконограф писал(а): efanov писал(а): ... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ... И как Вы предполагаете это сделать?Ну а как иначе? Тем более по Вашей просьбе был реализован механизм "номерной трассы" - считаю, вполне подходящий в разработке для "некризисных" применений - в смысле определения Громова. Для "кризисных", конечно, нужен другой подход - моделирование для формальной верификации - впрочем, об этом достаточно говорил здесь и здесь хотя бы... |
Автор: | Владимир Паронджанов [ Суббота, 12 Февраль, 2011 19:31 ] |
Заголовок сообщения: | Re: Человек так устроен - когда хорошо, хочется ещё лучше. |
efanov писал(а): Активно работаю с редактором над довольно большим (по моим масштабам) проектом. В процессе работы потихоньку вырабатываются некоторые навыки и приёмы. Вот как сейчас выглядит у меня "рабочий цикл". По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ... Уважамый Сергей Ефанов! Ваши замечания и предложения имеют большую ценность для развития системы. Обращаюсь к Вам с почтительной просьбой. Пожалуйста, высказывайте Ваши предложения ПОДРОБНО, В ЯВНОМ ВИДЕ, желательно в виде пронумерованных пунктов. В качестве аналога или образца можно взять предложения пользователя VOT7: viewtopic.php?p=55918#p55918 Не надо делать предложения в робкой и косвенной форме. Вы хотите внести изменения в ИС Дракон? Скажите четко, какие именно изменения Вам нужны. Геннадий Николаевич рассмотрит Ваши предложения и, возможно, учтет их в своей работе. В любом случае все будут Вам благодарны за Вашу инициативу. Владимир Паронджанов |
Автор: | Владислав Жаринов [ Суббота, 12 Февраль, 2011 19:34 ] |
Заголовок сообщения: | Re: Человек так устроен - когда хорошо, хочется ещё лучше. |
Владимир Паронджанов писал(а): ... ... и не забывая требования: один пункт - один пост
Уважамый Сергей Ефанов! ... Пожалуйста, высказывайте Ваши предложения ПОДРОБНО, В ЯВНОМ ВИДЕ, желательно в виде пронумерованных пунктов. В качестве аналога или образца можно взять предложения пользователя VOT7: viewtopic.php?p=55918#p55918 |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |