Add(Edit,13065359,497,21)
{
Left=16
Top=18
Width=94
Text="07:00"
}
Add(DateConvertor,10362442,497,70)
{
Mode=8
Format="HH:mm"
Point(Data)
Point(Result)
link(onResult,11809447:doValue,[])
link(Data,13065359:Text,[])
}
Add(Edit,13912355,595,21)
{
Left=150
Top=18
Width=94
Text="15:00"
}
Add(DateConvertor,4177431,595,70)
{
Mode=8
Format="HH:mm"
Point(Data)
Point(Result)
link(onResult,6721867:doValue,[])
link(Data,13912355:Text,[])
}
Add(Edit,12267643,497,133)
{
Left=16
Top=56
Width=94
Text="16:00"
}
Add(DateConvertor,2606845,497,175)
{
Mode=8
Format="HH:mm"
Point(Data)
Point(Result)
link(onResult,15917840:doValue,[])
link(Data,12267643:Text,[])
}
Add(Edit,10267384,602,133)
{
Left=150
Top=56
Width=94
Text="01:00"
}
Add(DateConvertor,16639133,602,175)
{
Mode=8
Format="HH:mm"
Point(Data)
Point(Result)
link(onResult,13575888:doValue,[])
link(Data,10267384:Text,[])
}
Add(MathParse,6523429,567,441)
{
DataCount=5
MathStr="(((%5>%2)and(%5<%3))*1)+
(((%5>%4)and(%5<%1))*2)+
(((%5>=%1)and(%5<%2))*3)+
(((%5>=%3)and(%5<%4))*4)
"
link(onResult,11739803:doGetString,[])
link(X1,4310511:Var,[(573,409)(531,409)])
link(X2,175636:reCalc,[])
link(X3,4375672:reCalc,[(587,419)(636,419)])
link(X4,7359596:reCalc,[(594,428)(685,428)])
}
Add(Time,3131878,448,385)
{
Format="h:m"
}
Add(DateConvertor,4916889,448,441)
{
Mode=8
Format="HH:mm"
Point(Data)
link(onResult,6523429:doCalc,[])
link(Data,3131878:FormatTime,[])
}
Add(Hub,9343867,399,434)
{
link(onEvent1,10362442:doConvert,[(431,440)(431,76)])
link(onEvent2,4916889:doConvert,[])
}
Add(MMTimer,3375980,343,434)
{
link(onTimer,9343867:doEvent1,[])
}
Add(Label,12563328,763,406)
{
Left=16
Top=114
Width=94
}
Add(MathParse,6905888,567,294)
{
MathStr="%1>=%2"
Point(reCalc)
link(X1,12511681:Var2,[])
link(X2,14325511:Var,[])
}
Add(MathParse,175636,567,364)
{
MathStr="%1+%2"
Point(reCalc)
link(X1,7589830:Var,[])
link(X2,6905888:reCalc,[])
}
Add(MathParse,8386136,623,294)
{
MathStr="%1>=%2"
Point(reCalc)
link(X1,14699346:Var2,[])
link(X2,5164620:Var,[])
}
Add(MathParse,4375672,623,364)
{
MathStr="%1+%2"
Point(reCalc)
link(X1,12140722:Var,[])
link(X2,8386136:reCalc,[])
}
Add(MathParse,11120805,672,294)
{
MathStr="%1>=%2"
Point(reCalc)
link(X1,14699346:Var3,[(678,257)])
link(X2,3446033:Var,[])
}
Add(MathParse,7359596,672,364)
{
MathStr="%1+%2"
Point(reCalc)
link(X1,3275087:Var,[])
link(X2,11120805:reCalc,[])
}
Add(StrList,11739803,721,399)
{
Strings=#1:0|47:Смена 1 закончилась. Ожидается начало 2й смены.|47:Смена 2 закончилась. Ожидается начало 1й смены.|16:Текущая смена 1.|16:Текущая смена 2.|
Point(onGetString)
Point(doGetString)
link(onGetString,12563328:doText,[])
}
Add(GlobalVar,11809447,546,70)
{
Name="1"
link(onValue,4177431:doConvert,[])
}
Add(GlobalVar,6721867,644,70)
{
Name="2"
link(onValue,2606845:doConvert,[(690,76)(690,115)(485,115)(485,181)])
}
Add(GlobalVar,15917840,546,175)
{
Name="3"
link(onValue,16639133:doConvert,[])
}
Add(GlobalVar,13575888,651,175)
{
Name="4"
}
Add(GlobalVar,15949828,567,231)
{
Name="1"
}
Add(GlobalVar,5164620,630,266)
{
Name="3"
}
Add(GlobalVar,14325511,574,266)
{
Name="2"
}
Add(GlobalVar,3275087,672,336)
{
Name="4"
}
Add(GlobalVar,4310511,525,385)
{
Name="1"
}
Add(GlobalVar,7589830,567,336)
{
Name="2"
}
Add(GlobalVar,12140722,623,336)
{
Name="3"
}
Add(GlobalVar,3446033,679,266)
{
Name="4"
}
Add(GetDataEx,12511681,567,252)
{
link(Data,15949828:Var,[])
}
Add(GetDataEx,14699346,623,252)
{
Angle=3
link(Data,12511681:Var3,[])
}
Этот топик читают: Гость
Ответов: 1536
Рейтинг: 176
|
|||
Gunnman, выкладывай схемы аккуратными, иначе это выглядит как неуважение к остальным. Я не изучал твою схему, а только лишь причесал. Будет время, помогу с примером.
|
|||
карма: 1 |
|
Ответов: 655
Рейтинг: 18
|
|||
ser_davkin, понял..спасибо буду разбираться и учиться
|
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-02 18:38:53 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-02 18:38:55 |
|||
карма: 0 |
|
Ответов: 655
Рейтинг: 18
|
|||
За "причесывания" все спасибо, я уже принял к сведению и буду стараться схемы делать аккуратнее.
Схема которую я выложил вчера и которую причесали ser_davkin и 109.64.7.37, работает не совсем верно. Например указываем первую смену с 07:10 по 15:00, вторую смену с 16:00 по 02:30. Текущее время допустим 00:27, запускаем схему и видим что мы не попали во вторую смену. А если указать первую смену 00:26 - 00:30, а вторую с 00:31 по 00:35 - то при запуске схема отработает правильно...первая смена, переход во вторую, вторая смена переход в первую смену. Если обе смены в пределах 1 суток, то схема работает...если есть переход в другие сутки то не работает. Проверки как советовал Tad, я сделал. Если начало первой смены>конца первой смены то к концу первой смены +1 сутки Если начало первой смены>начала второй смены то к началу второй смены +1 сутки Если начало первой смены>конца второй смены то к концу второй смены +1 сутки Если текущее время>начала смены 1 и < конца смены1 - то сейчас первая смена Если текущее время>начала смены2 и < конца смены2 - то сейчас вторая смена Если текущее время>конца первой смены и < начала второй смены - то сейчас пересменка (ожидаем вторую смену) Если текущее время>конца второй смены и <начала первой смены - то сейчас пересменка (ожидаем вторую смену). Где я смотрю в книгу и фижу фигу? я хочу разобраться, но не получается. |
|||
карма: 0 |
|
Ответов: 8928
Рейтинг: 823
|
|||
Gunnman, каков вопрос, таков и ответ!
Когда вы обозначаете "1-ая, 2-ая, ..... n-ая смена", да ещё с изменяемыми интервалами, необходимо давать определение, что такое 1-ая смена и как отличить её от остальных, например, такое: "1-ая смена та, которая первая начинается или продолжается от 00:00 часов". Без такого определения вы ещё испишите десяток страниц форума без результата. ------------ Дoбавленo в 13.52: А вот схемка по определению: "1-ая смена обозначена в верхних Edit-ах, в левой начало, в правой окончание смены"
|
|||
карма: 19 |
| ||
Голосовали: | Gunnman |
Ответов: 1536
Рейтинг: 176
|
|||
Gunnman, вот схема, где можно на лету, меняя время колёсиком мыши, проверять работу программы.
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | routine.rar [33.9KB] [156] |
Ответов: 655
Рейтинг: 18
|
|||
Леонид, ser_davkin, спасибо! По схеме ser_davkin, я понял что упустил) а вот с схемой Леонид, еще ознакамливаюсь (в плане формул).
п.с.Tad, протестирую, сегодня опять в ночь работать.. |
|||
карма: 0 |
|
Ответов: 8928
Рейтинг: 823
|
|||
Gunnman писал(а): ..схемой Леонид, еще ознакамливаюсь (в плане формул). smena.jpg |
|||
карма: 19 |
| ||
файлы: 1 | smena.jpg [33.5KB] [427] |
Ответов: 16884
Рейтинг: 1239
|
|||
В схеме routine.rar применён следующий алгоритм:
Шкала времен, заданная в Edit-ах, "сдвигается" на величину "Начала Первой смены". Т.е. графически: Начало первой смены всегда 0 и всё расписание смен помещается в 24-часовой отрезок времени. Данные Edit-ов сохраняютсясчитываются виз ini-файл(а). Применен один IC. Всего 15 компонент. Леонид, я тоже сначала думал на бумажке, а компьютер включил потом. Но говорить об этом современным программистам - бесполезно. Леонид писал(а): Осталось в MathParse отобразить |
|||
карма: 25 |
|
Ответов: 8928
Рейтинг: 823
|
|||
Tad, вы мыслите в категориях Z80 (K580...), а на борту 1.5 Тб диска и 8 Гб ОЗУ при 3500 МГц Хотя стремление экономить и то, и то вызывает уважение
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Начинал с "Аскоты". Там инструменты программиста - мозги, бумага, карандаш, тиски, зубило, молоток, напильник, надфиль. Потом чудо от СЭВ - с 32 кб памяти и диском на 10 мб. С тех пор и привык экономить. ------------ Дoбавленo в 21.21: Блин! Потестил и пришлось перезалить. см. выше. ------------ Дoбавленo в 21.54: может ещё что-то вылезет |
|||
карма: 25 |
|
Ответов: 655
Рейтинг: 18
|
|||
Ок глянем)
|
|||
карма: 0 |
|
Ответов: 1536
Рейтинг: 176
|
|||
Gunnman писал(а): Первая 2014-10-11 07:00:00 - 2014:10:12: 00:00:00Вторая 2014:10:12 03:00:00 - 2014:10:12 05:50:00 Gunnman, а если тебе потребуется график с дежурством больше, чем 24 часа. Вопрос ты поставил правильно и понятно, но не понятно, почему тебе подошёл суточный алгоритм. Тогда нужно было рисовать ориентировку вопроса так: Gunnman писал(а): Первая 07:00:00 - 00:00:00Вторая 03:00:00 - 05:50:00 |
|||
карма: 1 |
|