From 5d5b24979d2da9bb86d0956b5dde8c369fcdd355 Mon Sep 17 00:00:00 2001 From: LordGrey <48840279+Lord-Grey@users.noreply.github.com> Date: Fri, 25 Sep 2020 20:33:11 +0200 Subject: [PATCH] Fix #1007 - LED's retain last state after clearing a source (#1008) * Save BLACK as lastLedColor during writeBlack * Remove debug statement overhead * Re-Add typecasting to ensure readable output * Revert "New language support: Russian and Chinese (simplified)" This reverts commit 5c95fab894a4e1122f9a1bd26d3567f166a26e7b. * Ignore TemporaryError --- assets/webconfig/i18n/ru.json | 232 ----------------- assets/webconfig/i18n/zh-CN.json | 237 ------------------ assets/webconfig/js/settings.js | 4 +- include/utils/ColorRgb.h | 12 +- libsrc/leddevice/LedDevice.cpp | 3 +- .../leddevice/dev_net/LedDeviceYeelight.cpp | 19 +- libsrc/leddevice/dev_serial/ProviderRs232.cpp | 11 - 7 files changed, 22 insertions(+), 496 deletions(-) delete mode 100644 assets/webconfig/i18n/ru.json delete mode 100644 assets/webconfig/i18n/zh-CN.json diff --git a/assets/webconfig/i18n/ru.json b/assets/webconfig/i18n/ru.json deleted file mode 100644 index f41efdff..00000000 --- a/assets/webconfig/i18n/ru.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "InfoDialog_lang_title": "Настройки языка", - "about_build": "Сборка", - "about_builddate": "Дата сборки", - "about_translations": "Переводы", - "about_version": "Версия", - "conf_colors_blackborder_intro": "Пропустить черные полосы, где бы они ни были. Каждый режим использует другой алгоритм обнаружения, который настроен для особых ситуаций.", - "conf_colors_color_intro": "Создайте один или несколько калибровочных профилей, настройте каждый цвет, яркость, линеаризацию и многое другое.", - "conf_colors_smoothing_intro": "Сглаживание цвета / яркости, чтобы уменьшить раздражающее мерцание.", - "conf_effect_bgeff_intro": "Определите фоновый эффект / цвет, который отображается во время «бездействия» Hyperion . Загрузка всегда с приоритетным каналом 255.", - "conf_effect_fgeff_intro": "Определите Booteffect или цвет, который будет отображаться при запуске Hyperion в течение заданного времени.", - "conf_effect_path_intro": "Загрузить эффекты из определенных мест. Дополнительно вы можете отключить отдельные эффекты по имени, чтобы скрыть их от всех списков эффектов.", - "conf_general_impexp_expbtn": "Экспорт", - "conf_general_impexp_impbtn": "Импорт", - "conf_general_impexp_title": "Импорт/Экспорт конфигурации", - "conf_general_label_title": "Основные настройки", - "conf_grabber_fg_intro": "Захват платформы - это захват вашей локальной системы в качестве источника ввода, на котором установлен Hyperion.", - "conf_grabber_v4l_intro": "USB-захват - это устройство захвата, подключенное через USB, которое используется для ввода исходных изображений для обработки.", - "conf_helptable_expl": "Объяснение", - "conf_leds_contr_label_contrtype": "Тип контроллера:", - "conf_leds_device_intro": "Hyperion поддерживает множество контроллеров для передачи данных на целевое устройство. Выберите светодиодный контроллер из списка и настройте его. Мы выбрали лучшие настройки по умолчанию для каждого устройства.", - "conf_leds_layout_button_updsim": "Просмотр обновления", - "conf_leds_layout_checkp1": "Черный светодиод - это ваш первый светодиод, первый светодиод - это точка, в которую вы вводите сигнал данных.", - "conf_leds_layout_cl_bottom": "Снизу", - "conf_leds_layout_cl_gaglength": "Длина зазора", - "conf_leds_layout_cl_gappos": "Позиция зазора", - "conf_leds_layout_cl_inppos": "Стартовая позиция", - "conf_leds_layout_cl_left": "Слева", - "conf_leds_layout_cl_reversdir": "Обратное направление", - "conf_leds_layout_cl_right": "Справа", - "conf_leds_layout_cl_top": "Сверху", - "conf_leds_layout_ma_position": "Вход", - "conf_leds_layout_ma_vert": "Вертикальный", - "conf_leds_layout_preview_totalleds": "Всего диодов: $1", - "conf_leds_nav_label_ledcontroller": "Светодиодный контроллер", - "conf_leds_nav_label_ledlayout": "Светодиодный макет", - "conf_leds_optgroup_debug": "Режим отладки", - "conf_leds_optgroup_network": "Сеть", - "conf_leds_optgroup_usb": "USB/Последовательный порт", - "conf_logging_btn_autoscroll": "Автоматическая прокрутка", - "conf_logging_lastreports": "Предыдущий отчет", - "conf_logging_report": "Отчет", - "conf_logging_yourlink": "Ссылка на твой отчет", - "dashboard_alert_message_confedit": "Конфигурация Hyperion была изменена. Для применения необходимо перезапустить Hyperion.", - "dashboard_alert_message_confedit_t": "Конфигурация изменена", - "dashboard_alert_message_confsave_success": "Ваша конфигурация Hyperion успешно сохранена. Ваши изменения теперь активны.", - "dashboard_alert_message_confsave_success_t": "Конфигурация сохранена", - "dashboard_alert_message_disabled": "Этот экземпляр в настоящее время отключен! Чтобы использовать его снова, включите его на панели инструментов.", - "dashboard_alert_message_disabled_t": "LED устройство отключено", - "dashboard_componentbox_label_comp": "Компонент", - "dashboard_componentbox_label_status": "Статус", - "dashboard_componentbox_label_title": "Компонент статус", - "dashboard_infobox_label_currenthyp": "Ваша версия Hyperion:", - "dashboard_infobox_label_disableh": "Остановить Hyperion", - "dashboard_infobox_label_enableh": "Запустить Hyperion", - "dashboard_infobox_label_instance": "Пример:", - "dashboard_infobox_label_latesthyp": "Последняя версия Hyperion:", - "dashboard_infobox_label_platform": "Платформа:", - "dashboard_infobox_label_ports": "Порты (flat|proto):", - "dashboard_infobox_label_statush": "Статус Hyperion:", - "dashboard_infobox_label_title": "Информация", - "dashboard_infobox_message_updatesuccess": "Вы используете актуальную версию Hyperion.", - "dashboard_infobox_message_updatewarning": "Новая версия Hyperion доступна! ($1)", - "dashboard_label_intro": "Панель инструментов покажет вам краткий обзор состояния Hyperion и покажет последние новости блога Hyperion.", - "dashboard_newsbox_label_title": "Hyperion Блог", - "dashboard_newsbox_noconn": "Невозможно подключиться к блогу Hyperion для получения последних постов, Ваше подключение к интернету работает?", - "dashboard_newsbox_readmore": "Подробнее", - "dashboard_newsbox_visitblog": "Посетить Hyperion Блог", - "edt_conf_bb_mode_title": "Режим", - "edt_conf_color_black_title": "Черный", - "edt_conf_color_blue_title": "Синий", - "edt_conf_color_brightness_title": "Яркость", - "edt_conf_color_channelAdjustment_header_itemtitle": "Профиль", - "edt_conf_color_gammaBlue_title": "Гамма синего", - "edt_conf_color_gammaRed_title": "Гамма красного", - "edt_conf_color_green_title": "Зеленынй", - "edt_conf_color_red_title": "Красный", - "edt_conf_color_white_title": "Белый", - "edt_conf_color_yellow_title": "Желтый", - "edt_conf_effp_disable_itemtitle": "Эффект", - "edt_conf_enum_bgr": "BGR", - "edt_conf_enum_brg": "BRG", - "edt_conf_enum_color": "Цвет", - "edt_conf_enum_effect": "Эффект", - "edt_conf_enum_gbr": "GBR", - "edt_conf_enum_grb": "GRB", - "edt_conf_enum_logdebug": "Отладка", - "edt_conf_enum_multicolor_mean": "Мультицвет", - "edt_conf_enum_rbg": "RBG", - "edt_conf_enum_rgb": "RGB", - "edt_conf_fbs_timeout_title": "Таймаут", - "edt_conf_fg_device_title": "Устройство", - "edt_conf_fg_display_title": "Дисплей", - "edt_conf_fg_height_title": "Высота", - "edt_conf_fg_type_title": "Тип", - "edt_conf_fg_width_title": "Ширина", - "edt_conf_fge_color_title": "Цвет", - "edt_conf_fge_effect_title": "Эффект", - "edt_conf_fge_type_title": "Тип", - "edt_conf_gen_heading_title": "Общие настройки", - "edt_conf_gen_name_title": "Имя конфигурации", - "edt_conf_js_heading_title": "JSON сервер", - "edt_conf_log_level_title": "Уровень-лога", - "edt_conf_pbs_timeout_title": "Таймаут", - "edt_conf_smooth_heading_title": "Сглаживание", - "edt_conf_smooth_time_ms_title": "Время", - "edt_conf_smooth_type_expl": "Тип сглаживания.", - "edt_conf_smooth_type_title": "Тип", - "edt_conf_smooth_updateDelay_title": "Задержка обновления", - "edt_conf_smooth_updateFrequency_title": "Частота обновления", - "edt_conf_v4l2_cropLeft_title": "Обрезать слева", - "edt_conf_v4l2_cropRight_title": "Обрезать справа", - "edt_conf_v4l2_cropTop_title": "Обрезать свверху", - "edt_conf_v4l2_device_title": "Устройство", - "edt_conf_v4l2_standard_title": "Видео стандарт", - "edt_dev_auth_key_title": "Токен аудетицикафии", - "edt_dev_enum_white_off": "Выключить белый ", - "edt_dev_general_heading_title": "Общие настройки", - "edt_dev_general_name_title": "Имя конфигурации", - "edt_dev_spec_gamma_title": "Гамма", - "edt_dev_spec_intervall_title": "Интервал", - "edt_dev_spec_lightid_itemtitle": "Идентификатор (ID)", - "edt_dev_spec_port_title": "Порт", - "edt_dev_spec_username_title": "Имя пользователя", - "edt_eff_ledtest_header": "Тест LED", - "edt_eff_smooth_custom": "Использовать сглаживание", - "edt_eff_smooth_time_ms": "Время сглаживания", - "effectsconfigurator_button_conttest": "Непрерывный тест", - "effectsconfigurator_button_deleffect": "Удалить эффект", - "effectsconfigurator_button_editeffect": "Загрузить эффект", - "effectsconfigurator_button_saveeffect": "Сохранить эффект", - "effectsconfigurator_button_starttest": "Старт теста", - "effectsconfigurator_button_stoptest": "Остановка теста", - "effectsconfigurator_editdeleff": "Удалить/Загрузить эффект", - "effectsconfigurator_label_chooseeff": "Изменить шаблон", - "effectsconfigurator_label_effectname": "Имя эффекта", - "general_access_advanced": "Опытный", - "general_access_default": "По умолчанию", - "general_access_expert": "Эксперт", - "general_btn_back": "Назад", - "general_btn_cancel": "Отмена", - "general_btn_continue": "Продолжить", - "general_btn_iswitch": "Переключить", - "general_btn_next": "Далее", - "general_btn_off": "Выкл", - "general_btn_ok": "ОК", - "general_btn_on": "Вкл", - "general_btn_restarthyperion": "Перезапустить Hyperion", - "general_btn_save": "Сохранить", - "general_btn_saveandreload": "Сохранить и перезагрузить", - "general_btn_yes": "Да", - "general_button_savesettings": "Сохранить настройки", - "general_col_blue": "синий", - "general_col_green": "зеленый", - "general_col_red": "красный", - "general_comp_BLACKBORDER": "Определение черных полос", - "general_comp_LEDDEVICE": "Светодиодное устройство (LED)", - "general_comp_SMOOTHING": "Сглаживание", - "general_comp_V4L": "USB захват", - "general_country_de": "Германия", - "general_country_es": "Испания", - "general_country_fr": "Франция", - "general_country_it": "Италия", - "general_country_nl": "Нидерланды", - "general_country_uk": "Великобритания", - "general_country_us": "Соединённые Штаты Америки", - "general_speech_cs": "Чешский", - "general_speech_de": "Немецкий", - "general_speech_en": "Английский", - "general_speech_es": "Испанский", - "general_speech_it": "Итальянский", - "general_webui_title": "Hyperion - Веб-настройка", - "general_wiki_moreto": "Больше информации о \"$1\" вы можете узнать на нашем", - "infoDialog_checklist_title": "Список желаний!", - "infoDialog_general_error_title": "Ошибка", - "infoDialog_general_warning_title": "Предупреждение", - "main_ledsim_btn_togglelivevideo": "Живое видео", - "main_ledsim_text": "Живая визуализация светодиодных цветов и текущий видео поток вашего устройства захвата.", - "main_ledsim_title": "Светодиодная визуализация (LED)", - "main_menu_about_token": "О Hyperion", - "main_menu_colors_conf_token": "Обработка изображений", - "main_menu_configuration_token": "Конфигурация", - "main_menu_dashboard_token": "Панель управления", - "main_menu_effect_conf_token": "Эффекты", - "main_menu_effectsconfigurator_token": "Конфигуратор эффектов", - "main_menu_general_conf_token": "Общее", - "main_menu_grabber_conf_token": "Устройство захвата", - "main_menu_input_selection_token": "Выбор входа", - "main_menu_leds_conf_token": "LED Оборудование", - "main_menu_logging_token": "Лог", - "main_menu_network_conf_token": "Сетевые сервисы", - "main_menu_remotecontrol_token": "Удаленное управление", - "main_menu_support_token": "Поддержка", - "main_menu_system_token": "Система", - "main_menu_update_token": "Обновления", - "main_menu_webconfig_token": "Web конфигурация", - "remote_color_button_reset": "Сбросить Цвет/Эффект", - "remote_color_label": "Цвета/Эффекты", - "remote_color_label_color": "Цвет:", - "remote_effects_label_effects": "Эффект:", - "remote_input_ip": "IP Адрес:", - "remote_input_owner": "Тип", - "remote_videoMode_label": "Видео режим:", - "support_label_btctext": "Адрес:", - "support_label_donate": "Пожертвуйте или используйте наши партнерские ссылки", - "support_label_donationpp": "Пожертвование:", - "support_label_fbtext": "Поделитесь нашей страницей Hyperion на Facebook и получайте уведомление о выходе обновлений", - "support_label_forumtitle": "Форум", - "support_label_ghtext": "Посетите нас на Github", - "support_label_igtext": "Посетите нас в Instagram, чтобы посмотреть последние фотографии Hyperion!", - "support_label_intro": "Hyperion - это бесплатное некоммерческое программное обеспечение. Над этим работает небольшая команда, и поэтому нам нужна ваша постоянная поддержка.", - "support_label_title": "Поддержка Hyperion", - "support_label_twtext": "Делитесь и следите в Твиттере, будьте всегда в курсе последних публикаций о разработке Hyperion", - "support_label_webpagetext": "Домашняя страница проекта", - "support_label_webpagetitle": "Веб-сайт", - "support_label_webrestitle": "Информационно-справочные ресурсы", - "support_label_wikitext": "Справочник от А до Я почти для всего, что связано с Hyperion!", - "support_label_wikititle": "Wiki страница", - "support_label_yttext": "Не нравятся картинки? Проверьте наш канал на Youtube!", - "update_button_changelog": "Полный список изменений", - "update_button_install": "Установка", - "update_label_type": "Тип:", - "update_versreminder": "Твоя версия: 1$", - "wiz_cc_btn_stop": "Остановить видео", - "wiz_cc_link": "Нажми на меня!", - "wiz_hue_create_user": "Создать нового пользователя", - "wiz_hue_ip": "Hue мост IP:", - "wiz_hue_title": "Philips Hue конфигурация", - "wiz_hue_username": "Пользователь ID:", - "wiz_rgb_qgend": "...зеленый?", - "wiz_rgb_qrend": "...красный?" -} \ No newline at end of file diff --git a/assets/webconfig/i18n/zh-CN.json b/assets/webconfig/i18n/zh-CN.json deleted file mode 100644 index 408840be..00000000 --- a/assets/webconfig/i18n/zh-CN.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "InfoDialog_lang_title": "语言设置", - "about_version": "版本", - "conf_effect_path_intro": "从定义的路径加载效果。另外,您可以按名称禁用单个效果,以在所有效果列表中隐藏它们。", - "conf_general_impexp_expbtn": "出口", - "conf_general_impexp_impbtn": "进口", - "conf_general_impexp_l1": "选择一个配置文件吧,别忘了点击导入哦", - "conf_general_impexp_l2": "导出配置 - 注意您的浏览器下载哦", - "conf_general_impexp_title": "导入/导出配置", - "conf_general_intro": "Hyperion基本设置,不适用于其他WebUI", - "conf_general_label_title": "常规设置", - "conf_grabber_fg_intro": "平台采集是在安装了Hyperion的系统上采集为输入源", - "conf_grabber_v4l_intro": "USB采集是通过USB连接的(采集)设备,用于输入源图片进行处理。", - "conf_helptable_expl": "说明", - "conf_helptable_option": "选项", - "conf_leds_contr_label_contrtype": "控制器类型:", - "conf_leds_layout_advanced": "高级设置", - "conf_leds_layout_button_savelay": "保存布局", - "conf_leds_layout_button_updsim": "更新预览", - "conf_leds_layout_checkp2": "我们为你展示的是液晶面板方向的视角哦,不是人家的屁屁啦", - "conf_leds_layout_cl_bottom": "底部", - "conf_leds_layout_cl_cornergap": "拐角间隙", - "conf_leds_layout_cl_edgegap": "边角空隙", - "conf_leds_layout_cl_gaglength": "空隙宽度", - "conf_leds_layout_cl_gappos": "空袭位置", - "conf_leds_layout_cl_hleddepth": "水平LED深度", - "conf_leds_layout_cl_inppos": "输入位置", - "conf_leds_layout_cl_left": "左侧", - "conf_leds_layout_cl_overlap": "重叠", - "conf_leds_layout_cl_reversdir": "反方向", - "conf_leds_layout_cl_right": "右侧", - "conf_leds_layout_cl_top": "顶端", - "conf_leds_layout_cl_vleddepth": "垂直LED深度", - "conf_leds_layout_frame": "经典布局(LED框架)", - "conf_leds_layout_generatedconf": "生成/当前LED配置", - "conf_leds_layout_ma_cabling": "布线", - "conf_leds_layout_ma_horiz": "水平", - "conf_leds_layout_ma_optbottomleft": "左下", - "conf_leds_layout_ma_optbottomright": "右下", - "conf_leds_layout_ma_opthoriz": "水平", - "conf_leds_layout_ma_optparallel": "平行", - "conf_leds_layout_ma_optsnake": "蛇形", - "conf_leds_layout_ma_opttopleft": "左上", - "conf_leds_layout_ma_opttopright": "右上", - "conf_leds_layout_ma_optvert": "垂直", - "conf_leds_layout_ma_position": "输入", - "conf_leds_layout_ma_vert": "垂直", - "conf_leds_layout_matrix": "矩阵布局(LED墙)", - "conf_leds_layout_pbl": "左下角", - "conf_leds_layout_pbr": "右下角", - "conf_leds_layout_peview": "LED布局预览", - "conf_leds_layout_preview_l1": "这是您的第一个led(输入位置)", - "conf_leds_layout_preview_l2": "可视化数据方向(第二/第三LED)", - "conf_leds_layout_preview_ledpower": "LED峰值功耗:$1 A", - "conf_leds_layout_ptl": "左上角", - "conf_leds_layout_ptlh": "水平", - "conf_leds_layout_ptlv": "垂直", - "conf_leds_layout_ptr": "右上角", - "conf_leds_nav_label_ledcontroller": "LED控制器", - "conf_leds_nav_label_ledlayout": "LED布局", - "conf_leds_optgroup_RPiGPIO": "RPi GPIO", - "conf_leds_optgroup_RPiPWM": "RPi PWM", - "conf_leds_optgroup_RPiSPI": "RPi SPI", - "conf_leds_optgroup_debug": "调试", - "conf_leds_optgroup_network": "Network", - "conf_leds_optgroup_usb": "USB/端口", - "dashboard_alert_message_confedit": "Hyperion配置成功!想让他飞,先得重启才行", - "dashboard_alert_message_confedit_t": "配置修改成功", - "dashboard_alert_message_confsave_success": "我们收到了您的指令,弹药已经填装完毕!", - "dashboard_alert_message_confsave_success_t": "我们已经记下了", - "dashboard_alert_message_disabled": "此实例当前被禁用!要再次使用它,请在仪表板上启用它", - "dashboard_alert_message_disabled_t": "LED硬件实例已禁用", - "dashboard_componentbox_label_comp": "组件", - "dashboard_componentbox_label_status": "状态", - "dashboard_componentbox_label_title": "组件状态", - "dashboard_infobox_label_currenthyp": "您的Hyperion版本:", - "dashboard_infobox_label_disableh": "禁用实例: $1", - "dashboard_infobox_label_enableh": "启用实例: $1", - "dashboard_infobox_label_instance": "实例", - "dashboard_infobox_label_latesthyp": "最新的Hyperion版本:", - "dashboard_infobox_label_platform": "平台:", - "dashboard_infobox_label_smartacc": "智能访问", - "dashboard_infobox_label_statush": "Hyperion状态:", - "dashboard_infobox_label_title": "信息", - "dashboard_infobox_message_updatesuccess": "您的Hyperion还很潮qwq!", - "dashboard_infobox_message_updatewarning": "Hyperion出新番啦,你确定不更新一下吗 ($1)", - "dashboard_label_intro": "仪表板可以让您快速了解Hyperion的状态,并向您显示Hyperion博客的最新消息", - "dashboard_message_do_not_show_again": "我不想再看到它啦", - "dashboard_newsbox_label_title": "Hyperion博客", - "dashboard_newsbox_noconn": "Hyperion走丢了,你们中间的那条(网)线呢?", - "dashboard_newsbox_readmore": "更多消息", - "dashboard_newsbox_visitblog": "来康康我们的博客呢", - "edt_conf_effp_disable_title": "禁用特效", - "edt_conf_enum_dl_error": "错误", - "edt_conf_enum_hsv": "HSV", - "edt_conf_enum_transeffect_smooth": "平滑", - "edt_conf_gen_heading_title": "常规设置", - "edt_conf_v4l2_cecDetection_expl": "HDMI收到CEC待机命令时,USB捕获将被暂时禁用", - "edt_conf_v4l2_cecDetection_title": "CEC检测", - "edt_conf_v4l2_framerate_expl": "设备支持的帧数", - "edt_conf_v4l2_framerate_title": "帧数", - "edt_dev_general_heading_title": "常规设置", - "edt_dev_spec_brightnessMax_title": "最大亮度", - "edt_dev_spec_brightnessMin_title": "最小亮度", - "edt_dev_spec_debugStreamer_title": "流媒体调试", - "edt_dev_spec_lights_name": "名称", - "edt_dev_spec_networkDeviceName_title": "网络设备名称", - "edt_dev_spec_numberOfLeds_title": "LED数量", - "edt_dev_spec_port_title": "端口", - "edt_dev_spec_transeffect_title": "过渡效果", - "edt_dev_spec_verbose_title": "记录所有色调信息", - "effectsconfigurator_button_conttest": "连续测试", - "effectsconfigurator_button_deleffect": "删除特效", - "effectsconfigurator_button_editeffect": "加载特效", - "effectsconfigurator_button_saveeffect": "保存特效", - "effectsconfigurator_button_starttest": "开始测试", - "effectsconfigurator_button_stoptest": "停止测试", - "effectsconfigurator_editdeleff": "删除/加载特效", - "effectsconfigurator_label_chooseeff": "选择模板", - "effectsconfigurator_label_effectname": "效果名称", - "general_access_advanced": "高级", - "general_access_default": "默认", - "general_access_expert": "专家", - "general_btn_back": "返回", - "general_btn_cancel": "取消", - "general_btn_continue": "继续", - "general_btn_delete": "删除", - "general_btn_iswitch": "开关", - "general_btn_next": "下一步", - "general_btn_off": "关", - "general_btn_ok": "好的", - "general_btn_on": "开", - "general_btn_rename": "重命名", - "general_btn_restarthyperion": "重新启动Hyperion", - "general_btn_save": "保存", - "general_btn_saveandreload": "保存并重新加载", - "general_btn_saverestart": "保存并重启", - "general_btn_start": "开始", - "general_btn_stop": "停止", - "general_btn_yes": "是", - "general_button_savesettings": "保存设置", - "general_col_blue": "蓝色", - "general_col_green": "绿色", - "general_col_red": "红色", - "general_comp_BLACKBORDER": "黑色边缘检测", - "general_comp_BOBLIGHTSERVER": "Boblight服务器", - "general_comp_FLATBUFSERVER": "Flatbuffers服务器", - "general_comp_GRABBER": "平台采集", - "general_comp_LEDDEVICE": "LED设备", - "general_comp_PROTOSERVER": "协议缓冲服务器", - "general_comp_SMOOTHING": "平滑处理", - "general_comp_V4L": "USB采集", - "general_country_de": "德国", - "general_country_es": "西班牙", - "general_country_fr": "法国", - "general_country_it": "意大利", - "general_country_nl": "荷兰", - "general_country_uk": "英国", - "general_country_us": "美国", - "general_speech_cs": "捷克语", - "general_speech_de": "德语", - "general_speech_en": "英语", - "general_speech_es": "西班牙语", - "general_speech_fr": "法语", - "general_speech_it": "意大利语", - "general_speech_tr": "土耳其语", - "general_speech_vi": "越语", - "general_webui_title": "Hyperion - Web配置", - "general_wiki_moreto": "更多关于\"$1\"的信息请访问我们的Wiki", - "infoDialog_checklist_title": "清单", - "infoDialog_general_error_title": "错误", - "infoDialog_general_success_title": "成功", - "infoDialog_general_warning_title": "警告", - "main_ledsim_btn_togglelednumber": "LED编号", - "main_ledsim_btn_toggleleds": "显示LED", - "main_ledsim_btn_togglelivevideo": "实况视频", - "main_ledsim_text": "实时显示led颜色和当前捕获设备的视频流。", - "main_ledsim_title": "LED实时状态", - "main_menu_about_token": "关于", - "main_menu_colors_conf_token": "图像处理", - "main_menu_configuration_token": "组态", - "main_menu_dashboard_token": "我的信息表,Qui", - "main_menu_effect_conf_token": "特效", - "main_menu_effectsconfigurator_token": "特效配置", - "main_menu_general_conf_token": "一般", - "main_menu_grabber_conf_token": "捕获硬件", - "main_menu_input_selection_token": "输入选择", - "main_menu_leds_conf_token": "LED硬件", - "main_menu_logging_token": "记录", - "main_menu_network_conf_token": "网络服务", - "main_menu_remotecontrol_token": "遥控", - "main_menu_support_token": "支持", - "main_menu_system_token": "系统", - "main_menu_update_token": "更新资料", - "main_menu_webconfig_token": "网页配置", - "remote_adjustment_label": "颜色调整", - "remote_color_button_reset": "重置颜色/特效", - "remote_color_label": "颜色/特效", - "remote_color_label_color": "颜色:", - "remote_components_label": "组件控制", - "remote_effects_label_effects": "特效:", - "remote_effects_label_picture": "图片:", - "remote_input_clearall": "清楚所有特效/颜色", - "remote_input_ip": "IP:", - "remote_input_label": "来源选择", - "remote_input_label_autoselect": "自动选择", - "remote_input_owner": "类型", - "remote_input_priority": "优先级", - "remote_input_setsource_btn": "选择来源", - "remote_input_sourceactiv_btn": "激活来源", - "remote_maptype_label_multicolor_mean": "彩色", - "remote_maptype_label_unicolor_mean": "单色", - "remote_optgroup_syseffets": "预制特效", - "remote_optgroup_usreffets": "用户特效", - "remote_videoMode_2D": "2D", - "remote_videoMode_3DSBS": "3D左右模式", - "remote_videoMode_3DTAB": "3DTAB", - "remote_videoMode_label": "视频模式", - "support_label_btctext": "地址:", - "support_label_donationpp": "捐赠:", - "support_label_forumtitle": "论坛", - "support_label_ghtext": "访问我们的Github", - "support_label_title": "帮助 & 支持", - "support_label_webpagetext": "Hyperion主页", - "support_label_webpagetitle": "Webpage", - "support_label_webrestitle": "信息和帮助资源", - "support_label_wikititle": "维基", - "update_button_install": "安装", - "update_versreminder": "你的版本:$1", - "wiz_identify": "识别", - "wiz_identify_light": "识别 $1", - "wiz_ids_disabled": "已停用", - "wiz_yeelight_desc2": "!", - "wiz_yeelight_noLights": "耶( •̀ ω •́ )y?我没有找到Yeelights!检查一下线路。实在不行...就得你亲自出马啦!", - "wiz_yeelight_title": "Yeelight向导", - "wiz_yeelight_unsupported": "不支持" -} \ No newline at end of file diff --git a/assets/webconfig/js/settings.js b/assets/webconfig/js/settings.js index 8a74ba30..03992692 100644 --- a/assets/webconfig/js/settings.js +++ b/assets/webconfig/js/settings.js @@ -1,7 +1,7 @@ var storedAccess; var storedLang; -var availLang = ['cs','de','en','es','fr','it','nl','pl','ro','sv','vi','ru','tr','zh-CN']; -var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Polski', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语']; +var availLang = ['cs','de','en','es','fr','it','nl','pl','ro','sv','vi','tr']; +var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Polski', 'Română', 'Svenska', 'Tiếng Việt', 'Türkçe']; var availAccess = ['default','advanced','expert']; //$.i18n.debug = true; diff --git a/include/utils/ColorRgb.h b/include/utils/ColorRgb.h index 7d4bba28..780f44d0 100644 --- a/include/utils/ColorRgb.h +++ b/include/utils/ColorRgb.h @@ -46,9 +46,9 @@ static_assert(sizeof(ColorRgb) == 3, "Incorrect size of ColorRgb"); inline std::ostream& operator<<(std::ostream& os, const ColorRgb& color) { os << "{" - << color.red << "," - << color.green << "," - << color.blue + << static_cast(color.red) << "," + << static_cast(color.green) << "," + << static_cast(color.blue) << "}"; return os; @@ -64,9 +64,9 @@ inline std::ostream& operator<<(std::ostream& os, const ColorRgb& color) inline QTextStream& operator<<(QTextStream &os, const ColorRgb& color) { os << "{" - << color.red << "," - << color.green << "," - << color.blue + << static_cast(color.red) << "," + << static_cast(color.green) << "," + << static_cast(color.blue) << "}"; return os; diff --git a/libsrc/leddevice/LedDevice.cpp b/libsrc/leddevice/LedDevice.cpp index e1adcce5..3d1906e9 100644 --- a/libsrc/leddevice/LedDevice.cpp +++ b/libsrc/leddevice/LedDevice.cpp @@ -246,7 +246,8 @@ int LedDevice::writeBlack(int numberOfBlack) QTimer::singleShot(_latchTime_ms, &loop, &QEventLoop::quit); loop.exec(); } - rc = write(std::vector(static_cast(_ledCount), ColorRgb::BLACK )); + _lastLedValues = std::vector(static_cast(_ledCount), ColorRgb::BLACK ); + rc = write(_lastLedValues); } return rc; } diff --git a/libsrc/leddevice/dev_net/LedDeviceYeelight.cpp b/libsrc/leddevice/dev_net/LedDeviceYeelight.cpp index 2a0e6c5d..aca97a8f 100644 --- a/libsrc/leddevice/dev_net/LedDeviceYeelight.cpp +++ b/libsrc/leddevice/dev_net/LedDeviceYeelight.cpp @@ -983,10 +983,7 @@ LedDeviceYeelight::LedDeviceYeelight(const QJsonObject &deviceConfig) LedDeviceYeelight::~LedDeviceYeelight() { - if ( _tcpMusicModeServer != nullptr ) - { delete _tcpMusicModeServer; - } } LedDevice* LedDeviceYeelight::construct(const QJsonObject &deviceConfig) @@ -1448,10 +1445,18 @@ int LedDeviceYeelight::write(const std::vector & ledValues) } else { - QString errorReason = QString ("(%1) %2").arg(_tcpMusicModeServer->serverError()).arg( _tcpMusicModeServer->errorString()); - Warning( _log, "write Error [%s]: _tcpMusicModeServer: %s", QSTRING_CSTR(light.getName()), QSTRING_CSTR(errorReason)); - light.setInError("Failed to get stream socket"); - } + QString errorReason = QString("(%1) %2").arg(_tcpMusicModeServer->serverError()).arg(_tcpMusicModeServer->errorString()); + if (_tcpMusicModeServer->serverError() == QAbstractSocket::TemporaryError) + { + Info(_log, "Ignore write Error [%s]: _tcpMusicModeServer: %s", QSTRING_CSTR(light.getName()), QSTRING_CSTR(errorReason)); + skipWrite = true; + } + else + { + Warning(_log, "write Error [%s]: _tcpMusicModeServer: %s", QSTRING_CSTR(light.getName()), QSTRING_CSTR(errorReason)); + light.setInError("Failed to get stream socket"); + } + } } else { diff --git a/libsrc/leddevice/dev_serial/ProviderRs232.cpp b/libsrc/leddevice/dev_serial/ProviderRs232.cpp index bab2ca6d..cb2b5b46 100644 --- a/libsrc/leddevice/dev_serial/ProviderRs232.cpp +++ b/libsrc/leddevice/dev_serial/ProviderRs232.cpp @@ -193,8 +193,6 @@ void ProviderRs232::setInError(const QString& errorMsg) int ProviderRs232::writeBytes(const qint64 size, const uint8_t *data) { - DebugIf(_isInSwitchOff, _log, "_inClosing [%d], enabled [%d], _deviceReady [%d], _frameDropCounter [%d]", _isInSwitchOff, _isEnabled, _isDeviceReady, _frameDropCounter); - int rc = 0; if (!_rs232Port.isOpen()) { @@ -205,9 +203,6 @@ int ProviderRs232::writeBytes(const qint64 size, const uint8_t *data) return -1; } } - - DebugIf( _isInSwitchOff, _log, "[%s]", QSTRING_CSTR(uint8_t_to_hex_string(data, size, 32)) ); - qint64 bytesWritten = _rs232Port.write(reinterpret_cast(data), size); if (bytesWritten == -1 || bytesWritten != size) { @@ -243,13 +238,7 @@ int ProviderRs232::writeBytes(const qint64 size, const uint8_t *data) rc = -1; } } - else - { - DebugIf(_isInSwitchOff,_log, "In Closing: bytesWritten [%d], _rs232Port.error() [%d], %s", bytesWritten, _rs232Port.error(), _rs232Port.error() == QSerialPort::NoError ? "No Error" : QSTRING_CSTR(_rs232Port.errorString()) ); - } } - - DebugIf(_isInSwitchOff, _log, "[%d], _inClosing[%d], enabled [%d], _deviceReady [%d]", rc, _isInSwitchOff, _isEnabled, _isDeviceReady); return rc; }