Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- КАЛЬКУЛЯТОР СТОИМОСТИ: примерный расчёт для расстояний в пределах 100 метров от записывающего устройства до камер
- Для приблизительного подсчета итоговой цены пользователь должен заполнить следующие параметры:
- 1 - Качество изображения (FHD или HD)
- 2 - кол-во уличных и внутренних камер
- 3 - Время хранения видеоархива
- 4 - время автономной работы
- Помимо этого есть ещё внутренние переменные, которые пользователь не видит, такие как:
- 1 - цена за единицу камеры определенного типа
- 2 - цена за терайбайт данных
- 3 - цена за кабель (берем цену на 100 метров)
- Отдельный блок кода отвечает за калькулятор подсчета необходимого обьема жестких дисков для хранения архива.
- */
- const int fhd_ext_price=200; //Цена за единицу уличной камеры с качеством Full HD
- const int hd_ext_price=75; //Цена за единицу уличной камеры с качеством HD
- const int fhd_int_price=100; //Цена за единицу внутренней камеры с качеством Full HD
- const int hd_int_price=50; //Цена за единицу внутренней камеры с качеством HD
- const int usd_price = 25.5 // цена за доллар
- /*пользователь не может выбирать разный тип качества для внутренних или внешних камер
- Кликает только один раз на общий выбор качества записи для всех типов камер
- В примере калькулятора дальше будем считать, что пользователь выбрал FHD качество
- */
- const int cable_price=20.5; //Цена за 100м витой пары
- /*
- Дальше поехал калькулятор расчета архива
- Объем диска = разрешение камеры * количество часов записи * количество дней записи * количество камер
- перечисляем список размеров кадров
- */
- const int fhd_frame_size=24;// 24 килобайт
- const int hd_frame_size=11; //11 килобайт
- const int fps_per_hour=90000; //будем считать, что везде запись будет вестись в 25 кадров/секунду, т.е. 90000 кадров/час
- int ext_cam_count=2; //переменная для ввода кол-ва уличных камер. (считаем, что пользователь выбрал 2 уличные камеры)
- int int_cam_count=5; //переменная для ввода кол-ва внутренних камер (считаем, что пользователь выбрал 5 внутренних камер)
- int total_cam_count = ext_cam_count + int_cam_count; // считаем общее количество камер всех типов ( в данном случае получилось 7)
- const int rec_time=12; //считаем, что запись ведется 12 часов в сутки
- //перемножаем объем 1 кадра изображения на количество кадров в час и получаем требуемое место на жестком диске для записи одной видеокамеры в течении 1 часа
- int fhd_size_per_hour = fhd_frame_size * fps_per_hour; //для FHD (например - 24 * 90000 = 2160000 килобайт)
- int hd_size_per_hour = hd_frame_size * fps_per_hour; //для HD (например - 11 * 90000 = 990000 килобайт)
- //перемножаем полученный обьем для записи в течении одного часа на количество часов записи и получаем требуемое место для записи в течении дня
- int fhd_size_per_day = fhd_size_per_hour * rec_time; // например - 2160000 * 12 = 25920000 килобайт
- int hd_size_per_day = hd_size_per_hour * rec_time; // например - 990000 * 12 = 11880000 килобайт
- /*
- 1 - узнаем требуемый объем для записи всех видеокамер в течении 1 суток
- 2 - умножаем количество суток на требуемый объем для записи всех видеокамер в течении 1 суток
- */
- int all_cam_size_per_day = fhd_size_per_day * total_cam_count; // все 7 камер займут 181440000 килобайт в сутки
- // Дальше расчитываем 3 разных обьема в зависимости от выбранного чекбокса на сайте (7 дней, 14 дней, 1 месяц)
- int sum_size_week = all_cam_size_per_day * 7; // на неделю (1280 гигабайт) 1270080000 кб
- int sum_size_2weeks = all_cam_size_per_day * 14; //на 2 недели (2560 гигабайт) 2540160000 кб
- int sum_size_month - all_cam_size_per_day * 30; // на месяц 5443200000 кб
- //переводим получившиеся килобайты в гигабайты:
- int sum_size_in_in_gigs = sum_size_month / 1000000; // 5443.2 гигабайт
- const int 1gb_price = 1.55; //цена за 1 гигабайт в гривне
- //А дальше имея количество гигабайт и цену за 1 гигабайт мы легко можем посчитать приблизительную себестоимость хранения всего видеоархива
- int hdd_for_all_archive_price = 1gb_price * sum_size_in_in_gigs; // 1.55 * 5443.2 = 8436.96 гривен
- hdd_for_all_archive_price_in_usd = hdd_for_all_archive_price / usd_price; //и переводим цену в доллары
- /*Дальше считаем время автономной работы без питания от электросети (пользователь выберет один из чекбоксов на сайте)
- Просто умножаем количество камер на цену
- до 30 минут - 6 долларов
- до 60 минут - 12 долларов
- до 90 минут - 20 долларов
- */
- int ups_price = total_cam_count * 12; //допустим мы выбрали время автономной работы - 60 минут (т.е. цена за одну камеру = 12 долларов)
- //Дальше накидываем стоимость коммутатора исходя из количество камер * 6 долларов за единицу
- int switch_price = total_cam_count * 6;
- //добавляем цену регистратора в зависимости от количества камер
- int reg_price;
- if {
- total_cam_count -lt 4;
- reg_price = 80; //80 Долларов
- else if total_cam_count -gt 4 && -lt 8 {
- reg_price = 100;
- }
- else if total_cam_count -gt 8 & -lt 16{
- reg_price = 150;
- }
- else if total_cam_count -gt 16 & -lt 32 {
- reg_price = 290;
- }
- }
- const int job_price = total_cam_count * 15; //стоимость работы исходя из кол-ва камер * 15 Долларов
- int total_price = cable_price + hdd_for_all_archive_price_in_usd + ups_price + switch_price + reg_price + job_price + cam_price;
- // И в итоге всю цену разделить на переменную курса доллара и вывести пользователю на страницу
Advertisement
Add Comment
Please, Sign In to add comment