DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 00:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Понедельник, 17 Январь, 2011 21:27 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
http://forum.oberoncore.ru/viewtopic.php?p=57369#p57369
В схеме GPRS_send_A.drt в комметарии и в программных приложениях правильно так:
Код:
Time = GetTime();
while (GetTime() - Time) <= SEKUNDA)
    rt_free;

Изменено с ">=" на "<=".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Вторник, 18 Январь, 2011 11:39 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Геннадий Тышов писал(а):
http://forum.oberoncore.ru/viewtopic.php?p=57369#p57369
В схеме GPRS_send_A.drt в комметарии и в программных приложениях правильно так:
Код:
Time = GetTime();
while (GetTime() - Time) <= SEKUNDA)
    rt_free;

Изменено с ">=" на "<=".
Да, конечно, точнее нужно не "<=", а просто "<" . Я не думаю, что кто то возьмётся это повторять. Но если подходить к этому примеру строго, то нужно сказать, что он и в этом виде не рабочий. Дело в том, что предложенные макросы (rt_begin, rt_free, rt_end) образуют в тексте программы переключатель switch. Это хорошо работает, пока в тексте нет иных переходов, кроме goto. Но нужно быть осторожным с циклами, в частности while. Если переписать этот пример с "разворачиванием" макроса, то мы увидим:
Код:
while (GetTime() -  Time) < SEKUNDA)
ss = __LINE__;  break;  case __LINE__:
и тут есть сразу несколько причин не работать: во первых, отсутствие фигурных скобок вокруг макроса уже приводит к циклу, который работает без задержки:
Код:
while (GetTime() -  Time) < SEKUNDA)
ss = __LINE__;
Эта проблема легко решается заключением макроса в скобки, но тогда мы имеем внутри скобок оператор break, который опять таки сразу же прервёт цикл while:
Код:
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;\
}// это макрос для иконки "пауза р.в"
Теперь задержки работают без проблем.

С уважением, Ефанов Сергей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Среда, 19 Январь, 2011 05:28 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
efanov писал(а):
С уважением, Ефанов Сергей.
Если это ко мне, то есть предложение не использовать эту фразу, что бы к обсуждению могли подключится и другие.

Сергей, вы специалист в Си лучше чем я и конечно ваш код ближе к реальному.

В вашем примере теперь есть код реализации для икон реального времени "Пуск таймера", "Пауза" и "Период".

Нет примера реализации иконы "Синхронизатор по таймеру". В ИС Дракон эта икона не имеет текста программного приложения и код реализации необходимо включать в текст программного приложения той иконы, к которой присоединен "Синхронизатор по таймеру".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Среда, 19 Январь, 2011 11:44 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Геннадий Тышов писал(а):
Нет примера реализации иконы "Синхронизатор по таймеру"
Перед кодом, реализущим действие в иконе, к которой присоединён "Синхронизатор по таймеру" добавить примерно следующее:
Код:
if((GetTime() - Time) < SEKUNDA)
{
     rt_free;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Среда, 19 Январь, 2011 21:51 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Взамен if необходимы: while и ЗначениеСинхронизатора
Код:
while ((GetTime() - Time) < ЗначениеСинхронизатора)
{
     rt_free;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Четверг, 20 Январь, 2011 09:43 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Геннадий Тышов писал(а):
Взамен if необходимы: while и ЗначениеСинхронизатора
Да, конечно, - тут я ошибся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 22 Январь, 2011 06:35 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Вложение:
вариант_меню.png

efanov писал(а):
Как на Ваш взгляд, какой из них более правильный, более наглядный и более соответствует правилам языка Дракон?
Наглядной и соответствующей правилам языка Дракона является 1-я схема.
1. Основная задача, допустить пользователя к меню, реализуется иконой "Адрес" - "Меню", это главное действие и оно размещено на главном шампуре.
2. В схеме имеем декомпозицию циклов, разделение функций между веточным циклом и циклом "Ждать",
3. Цикл "Ждать" также гораздо проще, т.к. в петле цикла 1 вход, на 2-й же схеме их 3.

С ответом вам, произошла задержка. Не мог понять функционального или предметного смысла текстов икон. Терминология ориентирована на программиста, разработчика схемы, для пользователя она не понятна. В текущем состоянии схем, нет ориентации на пользователей разного уровня, т.к. не используются административные и алгоритмические текстовые приложения.

В ИС Дракон язык Дракон получил развитие. Здесь иконы и схемы имеют ряд дополнительных элементов. По В.Д. Паронджанову, Дракон-схема в отрыве от системы Графит-Флокс, это бумажный документ, в ИС Дракон это интерактивный документ используемый на ПЭВМ.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 22 Январь, 2011 07:21 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Геннадий Тышов писал(а):
Не мог понять функционального или предметного смысла текстов икон. Терминология ориентирована на программиста, разработчика схемы, для пользователя она не понятна.
Да, действительно, я тут уже для своего конкретного устройства (то бишь - для себя) имена иконкам давал.
Цитата:
В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства.
Речь идёт о первом и втором текстовом квадратиках на иконах? Пока для меня их смысл и назначение не ясен. Меня увлекла, в первую очередь, возможность решить свои практические проблемы - получение работающих программ. Но потихоньку разберусь со всем.
Цитата:
Сергей, хочу отметить ваш быстрый прогресс, от первого знакомства с идеями языка Дракон до инструментального его использования в практической деятельности.
Да мне кажется, что этот язык специально для меня придумали!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 22 Январь, 2011 09:10 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Геннадий Тышов писал(а):
В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства.
Геннадий Николаевич, не могли бы Вы показать небольшой пример дракон-схемы с иллюстрацией этих возможносте?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 22 Январь, 2011 10:23 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Сергей, к вопросу о вводе пароля, схема на Драконе:
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 22 Январь, 2011 13:25 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
efanov писал(а):
Геннадий Тышов писал(а):
В идентификаторах икон можно указать роль, т.е. принадлежность иконы к действиям пользователя. Наличие у икон меток позволит обращать внимание на действия пользователя. Таким образом можно сделать алгоритм двухслойным, с разделением действий пользователя и реакцией устройства.
Речь идёт о первом и втором текстовом квадратиках на иконах? Пока для меня их смысл и назначение не ясен.
Есть мнение, что "двухслойная" шампур-схема не есть алгоритмическая, "с разделением действий пользователя и реакций устройства". Дело в том, что по такой схеме фактически идут две "рабочих точки" разных исполнителей - а по алгоритму должна идти одна. Т.е. это можно понимать как спецификацию человеко-машинного решения. Разделение на алгоритмы даёт шампур-модель со взаимодействующими ("параллельными") процессами - как дракон-инструкция и дракон-программа в этом примере - вот они уже алгоритмы, т.к. по каждому идёт своя "рабочая точка".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Среда, 02 Февраль, 2011 11:27 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Отлаживая очередную дракон-схему (приложена), стал задумываться об отладке. Мысли (в стиле Манилова) такие: -вот как бы было хорошо, если бы в программный код каждой иконы была возможность автоматически, на время отладки, вставить макрос, передав ему в качестве параметра номер иконы!
Геннадий Николаевич, может быть, такую мечту реально воплотить? Думаю, не только мне пригодилось бы - ведь макрос каждый для себя свой напишет. Направив вывод в файл можно будет автоматически получить протокол испытаний, да и мало ли как ещё использовать.


Вложения:
дозвон по тревоге.drt [52.4 КБ]
Скачиваний: 609
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Понедельник, 07 Февраль, 2011 13:53 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Согласно логической последовательности
следующее сообщение Сергея Ефанова см. здесь

viewtopic.php?p=59602#p59602


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программируем с и.с. Drakon
СообщениеДобавлено: Суббота, 12 Февраль, 2011 15:48 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
http://denwebs.blogspot.com/2010/10/blog-post.html
Денис http://denwebs.blogspot.com/2007_12_06_archive.html

Язык ДРАКОН

Цитата:
Разработчики языка полагают, что правила языка ДРАКОН по созданию диаграмм оптимизированы для восприятия алгоритмов человеком. Таким образом, язык предлагается в качестве инструмента усиления интеллекта.

Вот эти самые "оптимизация для восприятия алгоритмов человеком" и "усиление интеллекта" меня в нем и заинтересовали.
...
- подумал, а может попробовать применить его в текущем проекте на работе? Тем более, что задачка для этого есть подходящая: разработка алгоритма обмена данными между задачами RTOS и с сервером в навигационном терминале. Вдруг чтото хорошее из этого и получится:)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 16:59 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Активно работаю с редактором над довольно большим (по моим масштабам) проектом. В процессе работы потихоньку вырабатываются некоторые навыки и приёмы. Вот как сейчас выглядит у меня "рабочий цикл". По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...


Вложения:
Работа над проектом.drt [3.4 КБ]
Скачиваний: 630
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 18:13 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
efanov писал(а):
... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...
И как Вы предполагаете это сделать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 18:23 

Зарегистрирован: Четверг, 06 Январь, 2011 15:45
Сообщения: 54
Драконограф писал(а):
efanov писал(а):
... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...
И как Вы предполагаете это сделать?
Я тут ничего не могу сделать. Это изменения в редактор надо вносить. То есть, я в такой форме высказал пожелание автору. Просить его прямо я уже стесняюсь - и так уже, наверное, надоел своими просьбами. Уж извините...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 18:56 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
efanov писал(а):
Драконограф писал(а):
efanov писал(а):
... По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...
И как Вы предполагаете это сделать?
Я тут ничего не могу сделать. Это изменения в редактор надо вносить. То есть, я в такой форме высказал пожелание автору. Просить его прямо я уже стесняюсь - и так уже, наверное, надоел своими просьбами. Уж извините...

Ну а как иначе? Тем более по Вашей просьбе был реализован механизм "номерной трассы" - считаю, вполне подходящий в разработке для "некризисных" применений - в смысле определения Громова. Для "кризисных", конечно, нужен другой подход - моделирование для формальной верификации - впрочем, об этом достаточно говорил здесь и здесь хотя бы...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 19:31 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
efanov писал(а):
Активно работаю с редактором над довольно большим (по моим масштабам) проектом. В процессе работы потихоньку вырабатываются некоторые навыки и приёмы. Вот как сейчас выглядит у меня "рабочий цикл". По мере увеличения объёма проекта, всё больше хочется автоматизировать процесс в ветке "Получение текста программы" ...


Уважамый Сергей Ефанов!

Ваши замечания и предложения имеют большую ценность для развития системы.
Обращаюсь к Вам с почтительной просьбой.

Пожалуйста, высказывайте Ваши предложения ПОДРОБНО, В ЯВНОМ ВИДЕ,
желательно в виде пронумерованных пунктов.

В качестве аналога или образца можно взять предложения пользователя VOT7:
viewtopic.php?p=55918#p55918

Не надо делать предложения в робкой и косвенной форме.
Вы хотите внести изменения в ИС Дракон?
Скажите четко, какие именно изменения Вам нужны.

Геннадий Николаевич рассмотрит Ваши предложения и, возможно,
учтет их в своей работе.
В любом случае все будут Вам благодарны за Вашу инициативу.

Владимир Паронджанов


Последний раз редактировалось Владимир Паронджанов Суббота, 12 Февраль, 2011 19:41, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 19:34 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
...
Уважамый Сергей Ефанов!
...
Пожалуйста, высказывайте Ваши предложения ПОДРОБНО, В ЯВНОМ ВИДЕ,
желательно в виде пронумерованных пунктов.

В качестве аналога или образца можно взять предложения пользователя VOT7:
viewtopic.php?p=55918#p55918
... и не забывая требования: один пункт - один пост :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB