IPB

Здравствуйте, гость ( Вход | Регистрация )

12 страниц V  < 1 2 3 4 5 > »   
Ответить в данную темуНачать новую тему
> Язык ДРАКОН, вариации на тему "No OS"
Гость_MrYuran_*
сообщение 27.1.2012, 11:24
Сообщение #41





Гости






Ну вот, первый блин...
Прикрепленное изображение


Исходная функция на 4 листа:
CODE

/**
* Измерение уровня
*/
void MeasLevel()
{
unsigned long Time;
static stLevelData *LdataPtr;
static eADCchannels NextChannel;
static float Temp;

if(ADC12IFG & 0x4000) // готовы данные АЦП
{
LevelDataReady = 1;
}

if(LevelDataReady == 1) // Обработка данных АЦП
{
LevelDataReady = 0;
ProcessAdcResult();
StartAdcCycle();
}

switch(MeasParams.CurPhase)
{
case lmStartPhase: // старт процесса

LmSensorPower(MeasParams.CurChannel, 1); // Включение подогрева нужного канала

MeasParams.CurPhase = lmFirstMeas;
GetRealTime(&MeasParams.Timer); // засекли время включения
//break;
//Pause(100);
case lmFirstMeas: // первое измерение (почти холодного датчика)
GetRealTime(&Time);
if(Time-MeasParams.Timer < 50)
{
break; // не пришло время
}

switch(MeasParams.CurChannel) // Выбираем канал
{
case ADC_chan_L1:
LdataPtr = &L1data;
NextChannel = ADC_chan_L2;
break;
case ADC_chan_L2:
LdataPtr = &L2data;
NextChannel = ADC_chan_L3;
break;
case ADC_chan_L3:
LdataPtr = &L3data;
NextChannel = ADC_chan_L1;
break;
}

//LdataPtr->Delta1 = Uadc(MeasParams.CurChannel); // измеряем
//Temp = Uadc(MeasParams.CurChannel);
Temp = LdataPtr->ADCData;
LdataPtr->Delta1 = Temp;
LdataPtr->Data = Temp;
//Time1 = Time;

if(LdataPtr->Delta1 < 500) // Датчик не подключен
{
LdataPtr->Delta1 = 0;
LdataPtr->Status = ldsDataPresent;
LdataPtr->LevelValue = L_SENSOR_NOT_CONNECTED;
//MeasParams.CurPhase = lmFault;
LmSensorPower(MeasParams.CurChannel, 0); // Выключение подогрева канала
MeasParams.CurChannel = NextChannel;
MeasParams.CurPhase = lmStartPhase;

}
else
{
MeasParams.CurPhase = lmSecondMeas;
}
break;

case lmSecondMeas: // второе измерение
GetRealTime(&Time);
if(Time-MeasParams.Timer > t1) // пришло время
{
LdataPtr->Delta2 = Temp; // усредненный результат измерений
LdataPtr->Delta1-= LdataPtr->Delta2;
if(LdataPtr->Delta1 < 0)
{
LdataPtr->Delta1 = 0;
LdataPtr->Status = ldsNoData;
//MeasParams.CurPhase = lmFault;
MeasParams.CurPhase = lmPause;
LmSensorPower(MeasParams.CurChannel, 0); // Выключение подогрева канала
MeasParams.CurChannel = NextChannel;

}
else
{
MeasParams.CurPhase = lmThirdMeas;
}

//GetRealTime(&MeasParams.Timer);
}
else
{
// Temp1 = (LdataPtr->Data - Temp) / K_FILTER;
// Temp += Temp1 ;
Temp += (LdataPtr->ADCData - Temp) / K_FILTER;
LdataPtr->Data = Temp;
}
break;

case lmThirdMeas: // последнее измерение
GetRealTime(&Time);
if(Time-MeasParams.Timer > t2) // пришло время
{

LdataPtr->Delta2-= Temp;//Uadc(MeasParams.CurChannel); // измеряем
if(LdataPtr->Delta2 < 0) LdataPtr->Delta2 = 0;
LdataPtr->Status = ldsDataPresent;

LdataPtr->LevelValue = LdataPtr->Delta1 / (LdataPtr->Delta2 + 0.01);
if(LdataPtr->LevelValue < 0.0) LdataPtr->LevelValue *= -1.0;
/**/
LdataPtr->LevelValue -= LEVEL_THRESHOLD;
/**/

if(LdataPtr->LevelValue < 0.0) LdataPtr->LevelValue = 0.0;
if(LdataPtr->LevelValue > 0.0) LdataPtr->LevelValue = 100.0;

LmSensorPower(MeasParams.CurChannel, 0); // Выключение подогрева канала
MeasParams.CurChannel = NextChannel;

MeasParams.CurPhase = lmPause;
//GetRealTime(&MeasParams.Timer);
}
else
{
// Temp1 = (LdataPtr->Data - Temp) / K_FILTER;
// Temp += Temp1 ;
Temp += (LdataPtr->ADCData - Temp) / K_FILTER;
LdataPtr->Data = (unsigned int)Temp;
}
break;

case lmPause:
GetRealTime(&Time);
if( (L1data.Status == ldsNoData)
||(L2data.Status == ldsNoData)
||(L3data.Status == ldsNoData)
||(Time-MeasParams.Timer > t3))
MeasParams.CurPhase = lmStartPhase;
break;

case lmFault:
GetRealTime(&Time);
if( Time-MeasParams.Timer > (t3*2 + t2))
MeasParams.CurPhase = lmStartPhase;
break;

//default: MeasParams.CurPhase = lmStartPhase;
}
}

Функция крутится непрерывно в карусельке (как Прохожий завещал smile.gif )

И я уже, глядя на полученную картинку, вижу некоторые нюансы, которые раньше ускользали из поля зрения.

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

Вот чего нагенерило...
CODE
/* D:\work\EXPERIMENTS\ДРАКОН\Новый_03.drt */
/* 1. ИС Дракон. Трансляция маршрутной части. Изменение 27.01.2012 13:56:08 */
/* Схема - Процедура */
......

/* ==================== Шампур */

/* 2. Заголовок // Измерение уровня жидкости */

/* 4. ИмяВетки // Обработка данных АЦП */

/* 12. Вопрос // Данные АЦП готовы? */
if (!(......)) goto L33;

/* 16. Вставка // Обработать данные */
......

/* 17. Вставка // Запустить АЦП */
......

/* 5. Адрес // Измерение уровня */
goto L33;

/* ==================== Шампур */

/* 28. ИмяВетки // Измерение уровня */

L33:
/* 33. Выбор // Фаза процесса измерения */
else goto L54; /* Старт цикла измерения */
else goto L20; /* Первый отсчет */
else goto L24; /* Второй отсчет */
else goto L55; /* Третий отсчет */
Ошибка: количество "Вариантов" без условия должно быть = 0, 1.

/* 46. Вариант // Старт цикла измерения */

L54:
/* 54. Действие // Включить подогрев текущего датчика */
......

/* 60. ПускТаймера // Т1 = 0 */
......

/* 61. Действие // Фаза = Первый отсчет */
......

/* 29. Адрес // Конец */
goto L11;

/* ==================== Шампур */

/* 10. ИмяВетки // Конец */

L11:
/* 11. Конец // Конец */
......

/* ==================== Шампур */

/* 47. Вариант // Первый отсчет */

L20:
/* 20. Вопрос // T1 > 50 мс? */
if (!(......)) goto L45;

/* 58. Действие // Зафиксировать первый отсчет */
......

/* 62. Вопрос // Отсчет корректный? */
if (!(......)) goto L69;

/* 59. Действие // Фаза = Второй отсчет */
......

/* 91. Адрес // Конец */
goto L11;

/* ==================== Шампур */

L69:
/* 69. Действие // Ошибка: датчик не подключен */
......

/* 63. Действие // Выключить подогрев датчика */
......

/* 64. Действие // Переключить на следующий канал */
......

/* 71. Действие // Фаза = Старт */
......
goto L11;

/* ==================== Шампур */

L45:
/* 45. Действие // Фильтрация буфера измерений */
......
goto L11;

/* ==================== Шампур */

/* 52. Вариант // Второй отсчет */

L24:
/* 24. Вопрос // Т1 > dT1? */
if (!(......)) goto L53;

/* 34. Действие // Зафиксировать первый отсчет */
......

/* 35. Вопрос // Отсчет корректный? */
if (!(......)) goto L18;

/* 38. Действие // Фаза = Третий отсчет */
......

/* 107. Адрес // Конец */
goto L11;

/* ==================== Шампур */

L18:
/* 18. Действие // Ошибка: датчик неисправен */
......

/* 19. Действие // Выключить подогрев датчика */
......

/* 21. Действие // Переключить на следующий канал */
......

/* 22. Действие // Фаза = Старт */
......
goto L11;

/* ==================== Шампур */

L53:
/* 53. Действие // Фильтрация буфера измерений */
......
goto L11;

/* ==================== Шампур */

/* 56. Вариант // Третий отсчет */

L55:
/* 55. Вопрос // Т1 > dT2? */
if (!(......)) goto L75;

/* 68. Действие // Зафиксировать третий отсчет */
......

/* 57. Действие // Вычислить уровень по полученным данным */
......

/* 65. Действие // Выключить подогрев датчика */
......

/* 76. Действие // Переключить на следующий канал */
......

/* 78. Действие // Фаза = Старт */
......

/* 111. Адрес // Конец */
goto L11;

/* ==================== Шампур */

L75:
/* 75. Действие // Фильтрация буфера измерений */
......
goto L11;
......


Вместо многоточий вставится текст, который я внутри иконок напишу.

Ещё вот интересно... Современные ИДЕ поддерживают ражим открытия нужного файла с нужной строки?
Чтобы на первое время хоть такой интерактив сделать.
Типа, щелкаем по иконке, выпрыгивает какой-нибудь легковесный SciTE, открытый на нужном месте.

Сообщение отредактировал MrYuran - 27.1.2012, 12:39
Причина редактирования: Исправил картинку
Перейти в начало страницы
 
+Цитировать сообщение
perfect
сообщение 27.1.2012, 12:31
Сообщение #42


Активный участник
***

Группа: Пользователи
Сообщений: 2932
Регистрация: 1.5.2010
Пользователь №: 152



Цитата(orthodox @ 11.1.2012, 13:43) *
Вопрос, что есть приоритетом в разработке подобных систем.
Пока и в драконе - приоритет есть необразованность постановщика задачи в программировании.
Что есть плохо. («Я мог бы ехать по навигатору с коробкой-автоматом, но я все равно не еду, так как водить не умею»)
Но здравое зерно в как бы отделении «чисто железных» элементов от
программирования как бы, что ведет возможно к унификации где-то там, за счет
неформального запрета изящной чисто программистской оптимизации...
Что в конечном итоге ведет к приближению к исходной задаче, но лишает
иногда таких вкусных вариантов из-за абстрагирования от нее...
Ну ладно, надежность зато...

Не знаю что бы когда есть приоритетом в разработке подобных систем, но думаю так, что есть некая система и её модель. Модель где-то, в голове человека получается. А какая она некая модель в голове конкретного человека уже зависит индивидуально - "каждый сходит с ума по-своему":) . Однако, типичные модели мира в головах всяких, думаю, нетрудно вычислить, потому что они наработаны окружающим миром. Вода течёт сверху вниз, солнце (для человека северного полушария) движется слева направо, тяни - себе - от кушать - хватать "манипулятором" и в рот, кака - наоборот и т.д. smile.gif . Тогда просто напрашивается к использованию естественно наработанный "интерфейс" между миром и его отражением в головах.
Из опыта общения в среде разных языков могу сказать, что есть универсальный международный язык общения, для восполнения пробелов в знании конкретных звуковых секвенций, принятых в конкретных языках - это язык моделирования звуками и жестами поведения обсуждаемой штуковины smile.gif . Ещё универсальный международный язык - картинки. Вот, имел я ящики со всякой-всячиной на полочках на стеллаже. Подписывал их по пару букв, всё вроде бы понятно, но потом начал малевать шуруп, если там шурупы, винт, если там винты, резистор, если там резисторы и т.п. - просто и наглядно, самому себе значительно удобнее.

Цитата(orthodox @ 11.1.2012, 17:42) *
Язык, принятый за основу - непременно будет написан парой
студентов за бутылью пива, и все негаразды будут свято блюстись веками.
Это — закон. Думать об удобстве? не дай Господь.
Это дело Божье, а Господь - не Бог, такого не допустит.

"Вечная история", или дилемма, или как ещё. Между для себя и для всех, между растягивать и сжимать, между разделять и соединять, между для своих и для чужих, против чужих, то есть. Объединяться в узком кругу ограниченных эээ.. чтобы дружить против smile.gif. , Дилемма между унифицированным и специальным ... Что и где нужно смешивать, а что сепарировать ...
А как оно таки будет, рано или поздно или когда или где, - в зависимости от - время разбрасывать или собирать smile.gif.

Цитата(orthodox @ 11.1.2012, 21:35) *
Думаю, что люди , придающие значение даже тому, перекрещиваются ли линии в диаграмме — вполне заслуживают доверия. smile.gif
Шутка, главное - как для меня, (пока не понял, что все особенности заточены под мозг) — единообразие и внимание, ему уделяемое.
Опять же, четкая проработка, ничего лишнего — даже лищние стрелочки на самом деле, мешают, ага.
Стандарт, однако. Что сказать — космос ...

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

Вот в ремонте сварочник Linkor Semali посмотрите что за конструктив под красивой крышкой:
Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Неразбираемый клубок, похож на поделку гаражного самоделкина.

А вот профессиональный конструктив KITin 1900HF:
Прикрепленное изображение

Прикрепленное изображение

Достпуно всё довольно хорошо. А Линкор даже не знаю с какой стороны подходить, как бы распаивать чтобы к чему-либо добраться.

Против ремонтников сделано smile.gif
Просто не напрягались сделать нормально. aggressive.gif

Сообщение отредактировал perfect - 27.1.2012, 12:40
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 27.1.2012, 12:57
Сообщение #43


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(MrYuran @ 27.1.2012, 11:24) *
Типа, щелкаем по иконке, выпрыгивает какой-нибудь легковесный SciTE, открытый на нужном месте.

[attachment=3717:pn_cmdline.png]
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 27.1.2012, 16:03
Сообщение #44





Гости






Попробовал другого дракона


Прикрепленное изображение


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

Кодогенератор лучше приспособлен для жизни.

Однако, чего же они все switch()-case на if()/else-ы разбивают...

Код
    /* item 18 */
    _sw_18 = Фаза процесса
измерения;
    if (_sw_18 == Старт) {
        // item 24
        Вкл. подогрев
        текущего датчика
        /* item 25 */
        Таймер
        Т1 = 0
        /* item 31 */
        Фаза = 1 отсчет
        return;
    } else if (_sw_18 == 1 отсчет) {
        goto item_26;
    } else if (_sw_18 == 2 отсчет) {
        goto item_44;
    } else if (_sw_18 == 3 отсчет) {
    } else {
        UnexpectedBranch(_sw_18);
    }
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 27.1.2012, 16:16
Сообщение #45


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Примитива такого нету: State Node pardon.gif
Есть "Переключатель"(драконодока, стр.3) - имхо, нечитабельный сфероконь. Вернее, он не для стейт-машин.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 27.1.2012, 17:57
Сообщение #46


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(MrYuran @ 27.1.2012, 17:03) *
Однако, чего же они все switch()-case на if()/else-ы разбивают...

ПМСМ конструкция if ... else if... else имеет тот же смысл, что и switch, но более универсальна в плане условий.
А компилятор с С должен это дело транслировать одинаково в случае, когда условия совпадают по логике с case.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 27.1.2012, 18:32
Сообщение #47


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(Прохожий @ 27.1.2012, 17:57) *
А компилятор с С должен это дело транслировать одинаково

Неа smile.gif Когда case много, он творит чудеса и может запросто сотворить таблицу переходов. А может, наоборот, "забыть" такую возможность, когда она крайне желательна.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 27.1.2012, 18:52
Сообщение #48


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(_pasha @ 27.1.2012, 19:32) *
Неа smile.gif Когда case много, он творит чудеса и может запросто сотворить таблицу переходов. А может, наоборот, "забыть" такую возможность, когда она крайне желательна.

Я же говорю "нормальный" и "должен", а не "обязан".
Понятно, что в реале такое трудно достижимо.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 27.1.2012, 19:47
Сообщение #49





Гости






Цитата(Прохожий @ 27.1.2012, 19:57) *
ПМСМ конструкция if ... else if... else имеет тот же смысл, что и switch, но более универсальна в плане условий.
А компилятор с С должен это дело транслировать одинаково в случае, когда условия совпадают по логике с case.

Тут дело вот в чём.
Каждый кейс - это не что иное, как обычная метка.
Даже ввиду синтаксиса.
Только локальная внутри скобок.
То есть свич-кейс - это изначально таблица переходов. Особенно если кейсы по порядку идут. Компилятор может их заменить ифами, а может оставить. В любом случае это проще, чем в обратную сторону - из кучи условий выудить переключатель. Компилятор шибко мозговитее для такого случая нужен.
Ну и чисто теоретически здесь ошибочка закралась.
У Паронджанова четко описано и обосновано однозначное соответствие графической программы и её текстового эквивалента.
То есть, тождественное равенство.
Если есть такой элемент - переключатель, то его нужно однозначно связывать с соответствующим текстовым эквивалентом, то есть с оператором switch(). Так как в противном случае при обратном преобразований получаем лесенку условий, что противоречит утверждению о тождественности двух форм записи.
Вообще, автор молодец. Очень точно выдержал все нюансы, и рисовать строить действительно получается легко и непринужденно.
Осталось открыть формат хранения схем и интерфейсы среды, чтобы заинтересованные могли добавлять свои рюшечки.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 27.1.2012, 19:49
Сообщение #50


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22970
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 27.1.2012, 17:03) *
Попробовал другого дракона


Прикрепленное изображение


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

Он чего, весь английский?
А по русски? Д/б аналогичная версия же...

Кстати — насчет примера этого — автор бы раскритиковал.
У него подобное как раз в книге преобразовывалось в нечто более простое.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 27.1.2012, 20:01
Сообщение #51





Гости






Цитата(orthodox @ 27.1.2012, 21:49) *
Он чего, весь английский?
А по русски? Д/б аналогичная версия же...

It's export oriented smile.gif
Там даже описание языка на аглицкий в боках переведено.
Конечно, от стандарта отличается.
Зато полностью соответствует духу опенсорса.
И что характерно, кодогенераторы написаны на самом себе, а потом транслированы в целевой Tcl/Tk.
Еще одно коренное отличие - это то, что в иконах вписывается непосредственно код, а комментарии - внутри, видны при выделений иконы.
В ИС Дракон Тышова - наоборот, снаружи человеческий язык, а внутри расписание код.
И это, по-моему, правильнее.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 27.1.2012, 20:28
Сообщение #52


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 22970
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 27.1.2012, 21:01) *
В ИС Дракон Тышова - наоборот, снаружи человеческий язык, а внутри расписание код.
И это, по-моему, правильнее.

Ну да, мне тоже так кажется.
Перейти в начало страницы
 
+Цитировать сообщение
dxp
сообщение 28.1.2012, 7:05
Сообщение #53


Adept
***

Группа: Пользователи
Сообщений: 522
Регистрация: 20.4.2011
Из: Novosibirsk
Пользователь №: 346



А как же будем сравнивать с традиционным текстовым подходом? Надо какой-то пример взять всем понятный. Что-нибудь более-менее законченное. Например, кольцевой буфер. Кто сделает реализацию?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 28.1.2012, 9:33
Сообщение #54


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Вчерась ввечеру раздраконился. Не понравилось. Нет обратной связи от полузабытых блок-схем к задаче. Слишком малый "вес" значков. Я не смогу на нем что-либо делать. И попёрли вопросы: какого икса примитив "параллельные действия" позорно табуирован, "патамушо у нас программирование" ??
Не, это не для мну.
Но, несмотря на, иногда потребность нарисовать алгоритм остается. Буду это делать на бумаге, никого не слушая, потому что на ней, многострадальной, я могу нарысовать всё, что угодно, а в драконе - только "сверхвысокопонимаемую" диаграмму, наглядность которой мне до одного места.
Перейти в начало страницы
 
+Цитировать сообщение
perfect
сообщение 28.1.2012, 13:10
Сообщение #55


Активный участник
***

Группа: Пользователи
Сообщений: 2932
Регистрация: 1.5.2010
Пользователь №: 152



С моего взгляда про язык и немного просмотра книжки хочу заметить про ясность и упорядоченность. Это необходимо чтобы поправить окружающий великий бардак и ужасную бестолковость всего вокруг, суету, метания, вытекающую отсюда паршивость, хреновость, дерьмовость.
Прежде всего нужно для себя, потому что чем больше вещей делать суетно и неправильно, тем больше сам становишься неправильным. Сказать колоритнее - делать через жопу, бо быстрее, бо экстренная необходимость, бо писец, жонглирующий кучей висящего в воздухе, недайбог упасть, быстрее, пусть бестолково, при этом наконец убивая намного больше времени и просирая всё подряд. Самому понять, потом, что намного сложнее, суметь объяснить ближайшему окружению, хотя-бы в некоторой мере, по причине необходимости взаимодействия с ними. А потом таки добиться чтобы было воплощено в жизнь и соблюдалось.
Бо просто умопомрачительно какая невероятная тысяча мелочей бестолковости. Вот, например, заглядывает человек ко мне, становится в проём дверей и чего-то хочет. Что стал в проём - это типа срочно. При этом мне по ногам идёт холодный воздух. Говорю - закрывайте дверь. Ну и, это-ж может восприняться как недружелюбность с моей стороны, несмотря на мой ровный тон, несмотря на внутреннее разражение. Или просто вошёл и бросил дверь полуоткрытой. Ну и постоянно это говорить, или через-раз, каждому. Ну, взял и сделал доводчик smile.gif . Сейчас покажу.
Прикрепленное изображение

На скорую руку, естественно smile.gif, благо штуковина оказалась под рукой, ещё три есть, пригодятся как-нибудь. Работает однако, плавно, прекрасно. Два устойчивых положения. Это чтобы дверь была открытой когда нужно заносить что-то не отвлекая руки на держание дверей. Мёртвая точка где-то на 75-80 градусов раскрыва дверей. Ну, та мёртвая точка и есть недостаток от на_скорую_руку, нужно было это учесть и сделать по типу триггера шмитта, чтобы небыло возможности замерзания в мёртвой точке.
Или вот, токо-што, возвращает человек мне дрель. smile.gif Решил смотать ей провод. Это уже хорошо. Но. Если её взять и опустить, то провод с неё рассыпется pardon.gif . (Правильно было-бы смотать правильно. И это ещё не всё. Просто положить на своё место на стеллаже, без жестов "типа великого услуживания что ещё и смотал провод и вот - даю. .. )
И т.д.
smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 28.1.2012, 13:15
Сообщение #56


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Сектеровкой увлеклись? Айайай, я же предупреждал.
Перейти в начало страницы
 
+Цитировать сообщение
perfect
сообщение 28.1.2012, 13:52
Сообщение #57


Активный участник
***

Группа: Пользователи
Сообщений: 2932
Регистрация: 1.5.2010
Пользователь №: 152



Нет. Непьщий я. Незнаю почему бы такое впечатление. Та, заморочиться можно и без водки. Или об чём это сектеровка?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 28.1.2012, 13:59
Сообщение #58


тот самый
Иконка группы

Группа: Мод
Сообщений: 13083
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(perfect @ 28.1.2012, 13:52) *
Или об чём это сектеровка?

Объясню на примере Сектера.
Мы его чуть не забанили не из чувства лютой классовой ненависти, а оттого, что банально заебались наблюдать превращение Шараги в филиал injapan.ru и улёты про домофоны.
Но это полярный случай, к Вам он только ассоциативно, тсз. Надеюсь на понимание.
Перейти в начало страницы
 
+Цитировать сообщение
PhX
сообщение 28.1.2012, 14:47
Сообщение #59


Активный участник
***

Группа: Пользователи
Сообщений: 349
Регистрация: 19.4.2011
Из: СПб
Пользователь №: 344



Цитата(_pasha @ 28.1.2012, 10:33) *
Но, несмотря на, иногда потребность нарисовать алгоритм остается. Буду это делать на бумаге...

Альтернатива бумаге: http://www.yworks.com/en/products_yed_about.html
Перейти в начало страницы
 
+Цитировать сообщение
perfect
сообщение 28.1.2012, 14:58
Сообщение #60


Активный участник
***

Группа: Пользователи
Сообщений: 2932
Регистрация: 1.5.2010
Пользователь №: 152



Цитата(_pasha @ 28.1.2012, 15:59) *
Надеюсь на понимание.

Скажите прямее. Зациклен? На ... ?
Перейти в начало страницы
 
+Цитировать сообщение

12 страниц V  < 1 2 3 4 5 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18.8.2018, 10:42