Мобильное приложение системы управления безопасностью предприятия
Ознакомление с этапами разработки модуля системы "Мобильное приложение системы управления безопасностью предприятия". Определение и характеристика преимуществ операционной системы android. Рассмотрение скриншота рабочего окна Visual Studio 2017.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рис. 2.9 - Видеорегистратор
Основные параметры видеорегистраторов:
Количество каналов. Это один из главных параметров. В основном распространяется четыре основных варианта: 4, 8, 9 и 16-ти канальные DVR видео регистраторы.
Скорость записи. Обычные модели могут иметь видеоряд от 3 и более кадров в секунду на 1 канал. Профессиональные видеорегистраторы имеют видеоряд, равный 25 кадров в секунду на каждый канал. Это значит, что движения в кадре камеры будут плавные, а качество изображения соответствует телевизионному качеству.
Разрешение записи. Еще один важный параметр видеорегистратора. Принято выделять три основные типа разрешения: 720х576, 720х288, 360х288 пикселей.
Работа регистратора в сети (локальная сеть или Интернет). Дает возможность получать картинку удаленно.
2.3.3 Система контроля управления доступом (СКУД)
Все системы контроля управления доступом, независимо от своей сложности, имеют три основных составляющих: считывающее устройство, контроллер и исполнительные устройства.
К исполнительным устройствам СКУД относятся механизмы и конструкции, непосредственно открывающие/блокирующие доступ в помещение, здание или на территорию охраняемого объекта.
Исполнительные устройства СКУД (так же представлены на Рис. 2.10):
· электромеханические замки;
· электромагнитные замки;
· электрические защелки;
· картоприемники;
· калитки;
· турникеты;
· шлагбаумы;
· шлюзовые кабины.
Рис. 2.10 - исполнительные устройства СКУД
Электромеханические дверные замки и защелки являются наиболее распространенными запирающими устройствами СКУД, так как они просты в эксплуатации и надежно блокируют доступ в помещение несанкционированным посетителям. Принцип их действия довольно прост: когда на контактные клеммы подается напряжение (9-16 вольт), срабатывает электромагнитное реле, открывающее дверь.
Электромагнитные замки состоят из металлической пластины, которая крепится на дверь, и из электромагнита, установленного на дверной коробке. В режиме запирания на обмотку электромагнита подается ток, создающий сильное магнитное поле, которое притягивает металлическую дверную пластину. Для отпирания подача тока на электромагнит прекращается, и дверь может быть открыта.
Турникеты. Могут быть как поясными, так и полноростовыми. Если для человека разрешен доступ на данную территорию, то турникет не заблокирован, и, поворачиваясь, открывает проход. Так как поясные турникеты невысоки, через них легко перепрыгнуть, и устанавливать их следует только рядом с пропускным пунктом охраны. Полноростовые турникеты используют на дальних КПП, они работают в автоматическом режиме открывания/закрывания.
Шлюзовые кабины. Все шлюзы, используемые в СКУД, делятся на два типа: шлюзы-тамбуры и шлюзы-ротанты.
Шлюз-тамбур - это замкнутая система двух дверей, конструкции которых взаимосвязаны. Основное свойство шлюза-тамбура заключается в том, что может быть открыта только одна дверь, вторая в это время закрыта. Одновременное открытие обеих дверей невозможно.
Принцип работы шлюза-тамбура: человек, входит в кабину и предъявляет свой идентификатор. Если доступ позволен, первая дверь блокируется в закрытом состоянии, а вторая открывается. К недостаткам тамбуров относится их низкая пропускная способность.
Шлюзы-ротанты имеют более высокую пропускную способность. В отличие от шлюза-тамбура, в нем вместо двух обычных дверей установлена одна поворотная дверь.
3. Разработка модуля системы «мобильное приложение системы управления безопасностью предприятия»
3.1 Техническое задание и выбор инструментов разработки
3.1.1Техническое задание
Была поставлена задача разработать мобильное web-приложение системы управления безопасностью предприятия.
Разрабатываемое приложение должно выполнять следующие функции:
· аутентификация и пользователей;
· отображение пользователя и его статуса на карте;
· возможность пользователем подать сигнал тревоги / бедствия диспетчеру (тревожная кнопка);
· автоматическое отключение приложения в конце рабочего дня пользователя.
3.1.2 Инструменты для разработки
Visual Studio. В качестве среды для написания кода мной была выбрана среда разработки Microsoft Visual Studio 2017 Comunity с плагином Xamarin.
Visual Studio 2017 -- это полноценный комплекс инструментов для создания программного обеспечения обеспечивающий такие возможности, как: планирование и разработка пользовательского интерфейса, написание тестирование и отладка кода, анализ качества кода и производительности. Visual Studio можно использовать для создания самых различных типов приложений, от простых калькуляторов до игр или больших и сложных систем для предприятий. Visual Studio позволяет создавать такие приложения, как:
· приложения для мобильных устройств: Windows Phone, iOS, Android;
· веб-сайты и веб-службы на основе многих известных платформ;
· консольные приложения;
· игры и графические приложения для различных устройств;
· собственные инструменты для Visual Studio;
· приложения на языках Visual Basic, C, C++, C#, F#, Python, JavaScript.
На рис.3.1 представлен скриншот рабочего окна Visual Studio 2017.
Рис.3.1 -- Скриншот рабочего окна Visual Studio 2017
Xamarin предлагает использовать специальный плагин для Visual Studio. Очевидным достоинством такого подхода является, то что разработчику не надо изучать новую среду программирования, а можно сразу приступать непосредственно к процессу создания приложения, используя привычные ему инструменты и плагины Visual Studio. Дополнительно к этому плагин устанавливает стандартный эмулятор для мобильных платформ, позволяющий производить отладку приложения. Также для эмуляции платформ можно использовать различные сторонние инструменты, которые очень просто интегрируются с Visual Studio и работают гораздо быстрее и эффективней эмуляторов, предлагаемых Visual Studio.
Фреймворк - программная платформа, которая определяет структуру программного продукта. Облегчает разработку и объединение компонентов большого программного продукта. В отличии от библиотеки, используемой просто как подпрограмма с необходимым функционалом, фреймворк задает правила построения архитектуры приложения с начального этапа разработки, т.е. «каркас».
Xamarin Framework. В качестве основы для разработки приложения мной был выбран Xamarin Framework. Достоинства Xamarin:
· использование языка C#;
· поддержка среды разработки Visual Studio;
· поддержка LINQ (Language Integrated Query) - язык запросов к объектам базы данных.
· поддержка многих устройств и их эмуляторов
Xamarin -- это фреймворк для кроссплатформенной разработки мобильных приложений: iOS, Android, Windows Phone, с использованием языка C#. Цель его создания заключалась в том, чтобы дать разработчикам мобильных приложений возможность писать код на привычным для них языке C#, позволяя использоваться все особенности языка. При этом разработчик имеет полный доступ ко всем возможностям SDK платформы и механизму создания интерфейса, получая на выходе приложение, которое, ничем не отличается от приложений, написанных традиционными методами.
Фреймворк состоит из нескольких основных частей:
· Xamarin.IOS - библиотека классов C#, предоставляющая разработчику доступ к iOS SDK, для написания под iOS;
· Xamarin.Android - библиотека классов C#, предоставляющая разработчику доступ к iOS SDK, для написания под Android;
· компиляторы для Android и iOS;
· IDE Xamarin Studio;
· плагин для Visual Studio.
Создатели Xamarin заверяют его как средство кроссплатформенной разработки. На самом деле он является таковым только от части, в следствии того, что кроссплатформенным является только код, предназначенный для обработки логики и действий приложения. А код отвечающий за интерфейс пишется для каждой платформы отдельно. Но в настоящий момент существует официальные дополнительные библиотеки, которые содержат многие API для различных платформ, которые обычно на каждой платформе обрабатываются по-своему, такие как взаимодействия с камерой, контактами и другими функциями.
В Xamarin разработка интерфейса пользователя (UI) ведется при помощи стандартных средств и компонентов для каждой платформы. Разработка UI для Android происходит напрямую в коде, либо описанием элементов в xml. Редактирование файлов xml с описанием интерфейса происходит в среде Visual Studio.
Xamarin.Forms - часть Xamarin, которая позволяет кроссплатформенно создавать пользовательский интерфейс с помощью XAML. Xamarin без Forms нельзя использовать для кроссплатформенного UI, в остальных случаях можно создавать интерфейс с помощью классов-обёрток над нативными классами.
В Xamarin так же имеется свой встроенный магазин дополнительных компонентов - Xamarin Components, разрабатываемые как официальными лицами Xamarin, так и сторонними разработчиками. Компоненты могут быть представлять собой, как и дополнительные элементы интерфейса пользователя, так и целые библиотеки классов. Эти компоненты можно удобно добавлять в свой проект.
Xamarin подойдёт для разработчиков, которые уже программирует на C# и хотят начать разработку мобильных приложений, без дополнительного изучения и установки новых языков и сред разработки.
Genymotion. В качестве эмулятора устройства Android мной был выбран Genymotion - это очень быстрый эмулятор, построенный на основе VirtualBox, который включает в себя настроенные образы Android. Распространяется на платформах Linux, Windows и Mac OS X и для личного использования является бесплатным, но также имеет платную версию, предоставляющую расширенный спектр возможностей.
Genymotion позволяет эмулировать сразу несколько разных устройств с раздельной настройкой CPU и объёма RAM для каждого устройства. Позволяет реализовать многие функции смартфонов Android, такие как:
· эмуляция соединение WiFi или интернет через 3G, GPRS и пр.;
· поддержка аппаратного ускорения с OpenGL, режим полноэкранного просмотра;
· поддержка утилит для отладки Android;
· плагины к Eclipse и Android Studio для разработчиков мобильных приложений;
· возможность установки приложений из Google Play;
· возможность изменять IMEI виртуального устройства;
· возможность произвести полный сброс виртуального Android устройства (сброс к заводским настройкам);
· возможность поворота экрана.
На Рис. 3.2 представлены скриншоты основного окна программы Genymotion (справа) и запущенного эмулятора устройства Android (слева)
Рис. 3.2 -- Скриншоты основного окна программы Genymotion и эмулированного устройства Android, Windows Phone, iOS.
3.2 Алгоритм работы
Была составлена блок-схема работы приложения, которая показывает логику и функции работы. Блок-схема изображена на Рис. 3.3, Рис. 3,4 и Рис. 3.5.
Размещено на http://www.allbest.ru/
Рис. 3.3 - Блок-схема приложения
Размещено на http://www.allbest.ru/
Рис. 3.4 - Блок-схема приложения (продолжение)
Размещено на http://www.allbest.ru/
Рис. 3.5 - Блок-схема приложения (продолжение)
Схема показывает, что после запуска приложения происходит аутентификация пользователя. Если аутентификация прошла успешно, то пользователь попадает в главное меню приложения, в противном случае получает ошибку доступа и возвращается на предыдущий этап. Из главного меню приложения пользователь может использовать следующие функции:
· открыть карту со своим месторасположением и координатами;
· перейти в меню тревожной кнопки, откуда можно послать сигнал о помощи диспетчеру
Узел A - показывает, что происходит проверка нажата ли тревожная кнопка или нет. В случае нажатия - отправляет сигнал на пульт диспетчера и выводит пользователю соответствующее сообщение. Если же кнопка не нажата, то переходит в режим ожидания.
Узел B показывает, как работает функция Автоматическое отключение в конце рабочего дня. Таймер проверяет время и если рабочий день закончился, то приложение через определенное время автоматически закрывается. мобильный android безопасность скриншот
3.3 Реализация
Сделаем самое первое окно приложения - окно аутентификации, которое будет появляться при запуске приложения.
Для этого добавим в наш проект новый макет Login.axml и поместим его в папку Resourses\layout. Теперь напишем код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="450"
android:minWidth="25px"
android:minHeight="25px"
android:background="@color/great">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:defaultMinSizeSet="true">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearLayout2">
<TextView
android:text="Введите персональные данные"
android:textSize="25dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:id="@+id/textView1"
android:textColor="#dae8da"
android:textColorHint="@color/grey" />
<EditText
android:background="@android:drawable/bottom_bar"
android:inputType="textPersonName"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="wrap_content"
android:id="@+id/input_login"
android:hint="Имя"
android:textStyle="bold" />
<EditText
android:hint="Пароль"
android:background="@android:drawable/bottom_bar"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="wrap_content"
android:id="@+id/input_password"
android:textColor="@color/grey"
android:textStyle="bold" />
<TextView
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#a5a5a5"
android:id="@+id/lb_restore_pass" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="50dp"
android:layout_marginBottom="30dp"
android:id="@+id/frameLayout2">
<Button
android:background="@drawable/vk_icon"
android:layout_gravity="left"
android:layout_marginLeft="50dp"
android:layout_marginRight="30dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/auth_vk_btn" />
<Button
android:background="@drawable/google_icon"
android:layout_gravity="center"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/auth_g_btn" />
<Button
android:layout_gravity="right"
android:background="@drawable/fb_icon"
android:layout_marginLeft="30dp"
android:layout_marginRight="50dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/auth_f_btn" />
<Button
android:background="@android:drawable/bottom_bar"
android:text="Вход"
android:layout_gravity="center_horizontal"
android:layout_width="80"
android:layout_marginTop="40dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="match_parent"
android:id="@+id/auth_btn"
style="@style/button_text" />
</FrameLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
Получается простой и понятный интерфейс окна аутентификации, показанный на Рис. 3.6
Рис. 3.6 - Окно аутентификации приложения
Аналогичным образом создаем интерфейс остальных модулей приложения. Далее напишем код, позволяющий приложению посылать запросы на сервер в базу данных для проверки аутентификации:
-- Table Users
CREATE TABLE Users (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
Login TEXT(255) NOT NULL,
Password TEXT(255) NOT NULL
)
На следующем этапе разработаем модуль отслежки и отправления координат, для этого сначала разрешим нашему приложению функцию доступа к точному местоположению устройства, показанную на Рис. 3.7.
Рис. 3.7 - разрешение на точное местоположение
Аналогичным образом разрешим все остальные необходимые функции, такие как: доступ к сети интернет, Wi fi , отправка сигналов, работа в фоновом режим и т.п.
Создадим новый модуль coordinates.cs и напишем в него соответствующий код:
public class GPSTracker extends Service implements LocationListener {
private final Context mContext;
boolean isGPSEnabled = false;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location; // location
double latitude; // latitude
double longitude; // longitude
double altitude;
double speed;
double bearing;
protected LocationManager locationManager;
public GPSTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkEnabled = locationManager .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
else {
this.canGetLocation = true;
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
altitude = location.getAltitude();
speed = location.getSpeed();
bearing = location.getBearing();
}
}
}
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
altitude = location.getAltitude();
speed = location.getSpeed();
bearing = location.getBearing();}}}}
}
} catch (Exception e) {
e.printStackTrace(); }
return location;
}
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(GPSTracker.this);
}
}
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();}
return latitude;}
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();}
return longitude;}
public double getAltitude(){
if(location != null){
altitude = location.getAltitude(); }
return altitude;}
public double getSpeed() {
if(location != null){
speed = location.getSpeed(); }
return speed;}
public double getBearing(){
if(location != null){
bearing = location.getBearing();}
return bearing;}
public boolean canGetLocation() {
return this.canGetLocation;}
public void showSettingsAlert(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);
alertDialog.setTitle("GPS is settings");
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
mContext.startActivity(intent);}});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();}});
alertDialog.show();}
public Override void onLocationChanged(Location location){ }
Public Override void onProviderDisabled(String provider) { }
Public Override void onProviderEnabled(String provider) { }
public Override void onStatusChanged(String provider, int status, Bundle extras) { }
Public Override IBinder onBind(Intent arg0) { return null;}}
Для использования полученного модуля необходимо создать Activity со следующей конструкцией:
gps = new GPSTracker(StartActivity.this);
if(gps.canGetLocation()){
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
double altitude = gps.getAltitude();
double speed = gps.getSpeed();
double bearing = gps.getBearing();
double speedLimitA = ((10*1000)/(60*60));
Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude
+ "\nLong: " + longitude
+ "\nAlt:" + altitude, Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, Logik_Activity.class);
intent.putExtra("alt",altitude);
intent.putExtra("speed",speed);
intent.putExtra("bearing",bearing);
if (speed < speedLimitA){
startActivity(intent); }
// if speed > 0 then AAA else BBB
}else{
gps.showSettingsAlert(); }
На Рис. 3.8 представлен получившийся модуль отслеживания местоположения пользователя.
Рис. 3.8 - Окно работающего модуля отслеживания местоположения
Заключение
В ходе выполнения бакалаврской работы было разработано приложение системы управления безопасностью предприятия, под управление ОС Android.
Разработанное приложение полностью удовлетворяет все поставленные требования и выполняет следующий функционал:
· аутентификация пользователя;
· отслеживание местоположения пользователя и отметка его на карте;
· подача тревожного сигнала на пульт диспетчера;
· автоматическое выключение в конце рабочего дня.
В ходе разработки проекта была изучена предметная область. Были изучены методы и способы разработки приложений под операционную среду Android. Была изучена документация по Framework Xamarin. Все изученные материалы позволили разработать требуемое приложение и функционал.
Была разработана схема взаимодействия модулей, необходимый интерфейс и модули для обеспечения требуемого функционала.
Данное приложение решило проблему, обусловившую ее актуальность.
В будущем приложение можно модифицировать, добавив выбор класса тревоги (пожар, нападение, потоп и т.п.).
Размещено на Allbest.ru
Подобные документы
Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015Разработка системы синхронизации уведомлений (клиентское приложение для смартфонов под управлением операционной системы Android версии 4.0.0 и выше). Разработка сервера, работающего под управлением Windows. Расчет себестоимости создания системы.
дипломная работа [706,7 K], добавлен 17.07.2016Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Характеристика работы операционной системы Android, используемой для мобильных телефонов. Создание Android проекта в среда разработки Eclipse. Общая структура и функции файла манифест. Компоненты Android приложения. Способы осуществления разметки.
курсовая работа [1,0 M], добавлен 15.11.2012Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.
дипломная работа [1,2 M], добавлен 04.02.2016Архитектура операционной системы Android. Инструменты Android-разработчика. Установка Java Development Kit, Eclipse IDE, Android SDK. Настройка Android Development Tools. Разработка программы для работы с документами и для осуществления оперативной связи.
курсовая работа [2,0 M], добавлен 19.10.2014Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.
дипломная работа [2,6 M], добавлен 10.07.2017Система помощи водителю на базе регистратора. Установка операционной системы Debian. Настройка системных служб и разработка серверного приложения. Создание локальной Wi-Fi сети. Распознавание знаков и библиотека OpenCV. Потоковое видео в Android.
дипломная работа [3,9 M], добавлен 13.09.2017Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.
дипломная работа [2,1 M], добавлен 18.01.2016