DivanX10

<<< Назад

Мои блоки - дни недели

Создаем в модуле "Мои блоки" дни недели.

Модуль “Мои блоки” добавляет в Blockly блоки, что облегчает сборку кода с помощью блоков. Не всегда для каких-то задач подходит календарь, CRON, например хочется настроить RGB освещение на каждый день или на каждую неделю, месяц, но чтобы можно было собрать код максимально легко. Мои блоки позволяют это сделать, можно легко и гибко настраивать свой график через Blockly.

Создаем дни недели в модуле “Мои блоки”

1) Создаем объект "Day" в главном объекте Timer
2) Создаем в объекте "Day" свойства: Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье
3) В методе "onNewHour" объекта "Day" вставляем этот код см. ниже, где каждый час будет происходить сверка, даже если произойдет сбой, внезапное отключение света, это все равно будет работать.

if (getGlobal('ThisComputer'.'.'.'Day') == 'Понедельник') {
  setGlobal('Day'.'.'.'Понедельник', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Понедельник') {
  setGlobal('Day'.'.'.'Понедельник', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Вторник') {
  setGlobal('Day'.'.'.'Вторник', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Вторник') {
  setGlobal('Day'.'.'.'Вторник', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Среда') {
  setGlobal('Day'.'.'.'Среда', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Среда') {
  setGlobal('Day'.'.'.'Среда', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Четверг') {
  setGlobal('Day'.'.'.'Четверг', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Четверг') {
  setGlobal('Day'.'.'.'Четверг', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Пятница') {
  setGlobal('Day'.'.'.'Пятница', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Пятница') {
  setGlobal('Day'.'.'.'Пятница', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Суббота') {
  setGlobal('Day'.'.'.'Суббота', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Суббота') {
  setGlobal('Day'.'.'.'Суббота', '0');
}
if (getGlobal('ThisComputer'.'.'.'Day') == 'Воскресенье') {
  setGlobal('Day'.'.'.'Воскресенье', '1');
} else if (getGlobal('ThisComputer'.'.'.'Day') != 'Воскресенье') {
  setGlobal('Day'.'.'.'Воскресенье', '0');
}

4) В объекте "ClockChime" в методе "onNewHour" вставляем этот код. см ниже, он будет каждый час предоставлять актуальные данные, которые будут вноситься в свойства объекта "ThisComputer.Day"

$h=(int)date('G',time());
say ($h);
$day[0]="Воскресенье";
$day[1]="Понедельник";
$day[2]="Вторник";
$day[3]="Среда";
$day[4]="Четверг";
$day[5]="Пятница";
$day[6]="Суббота";

$month[1]="января";
$month[2]="февраля";
$month[3]="марта";
$month[4]="апреля";
$month[5]="мая";
$month[6]="июня";
$month[7]="июля";
$month[8]="августа";
$month[9]="сентября"; 
$month[10]="октября";
$month[11]="ноября";
$month[12]="декабря";

if (($h=="0")) {
sg("ThisComputer.DateD",date( "j", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
}

5) В модуле "Мои блоки" создаем категорию "Дни недели"
6) В модуле "Мои блоки" создаем блок "Дня недели" Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье
7) При создании блока указываем имя дня недели, выбираем категорию "Дни недели", выбираем в разделе BLOCK_TYPE: Свойство, выбираем связанный объект "Day - день недели" и в метод/свойство выбираем нужный нам день недели.
8) Сохраняем

На этом все готово, теперь у вас в blockly есть блоки Дни недели.

Обсуждение (0) (2)

Смотрите так же:
05.09.2019 Мои блоки - месяц

Москва, Россия