Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Программа сбоит кргда Windows 10 отключает монитор / 25 сообщений из 26, страница 1 из 2
20.06.2020, 13:00
    #39971210
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Приветстую!

Первый раз такое вижу. Есть оконное приложение на Delphi, внутри этого оконного приложения выполняется Pascal Script. По приходу данных по TCP из основного приложения дергается пара процедуру внутри Pascal Script (в основном приложении очередь запросов к PS).

В основное окно приложения идет вялый вывод в Memo строк лога. И все. В основной программе еще есть компонент для работы с COM-портом, но два порта через переходники USB <-> COM во время теста не используются, обмена данных по ним нет, да и порты эти собственно даже не открыты. Если что-то делать на компьютере - программа работает часами. При гашении монитора системой - немедленный сбой. В настройках системы - отключать монитор через 10 минут, спящий режим - никогда. Под подозрением - сбой очереди в главном приложении и корректность работы Pascal Script. Но как такое вообще может быть, какая тут связь? Если монитор просто выключить кнопкой питания - все работает...
...
Рейтинг: 0 / 0
20.06.2020, 13:02
    #39971212
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezhНо как такое вообще может быть, какая тут связь?

Какой-то диверсант написал в твоей программе обработку сообщений питания. Найти и обезвредить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.06.2020, 13:06
    #39971214
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh,

А исходники есть у Вас на руках? Скорее действительно стоит обработчик системных сообщений об отключении монитора, тем более если основной вывод идёт в мемо.
...
Рейтинг: 0 / 0
20.06.2020, 13:28
    #39971218
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Гасится экран или блокируется компьютер? В последнем случае есть варианты. Например такое возможно даже при получении координат мыши при заблокированном компьютере, при отсутствии проверки результата. Мы в своей библиотеке в свое время столкнулись с подобным.
...
Рейтинг: 0 / 0
20.06.2020, 13:40
    #39971221
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh

В основное окно приложения идет вялый вывод в Memo строк лога. И все. В основной программе еще есть компонент для работы с COM-портом, но два порта через переходники USB <-> COM во время теста не используются, обмена данных по ним нет, да и порты эти собственно даже не открыты.
Отключите в настройках энергопотреблении временное отключение питания USB.
...
Рейтинг: 0 / 0
20.06.2020, 13:42
    #39971222
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
white_nigger
Гасится экран или блокируется компьютер? В последнем случае есть варианты. Например такое возможно даже при получении координат мыши при заблокированном компьютере, при отсутствии проверки результата. Мы в своей библиотеке в свое время столкнулись с подобным.


Спасибо за ответы. Все исходники есть, конечно, программу делал я. Разумеется, используются и готовые компоненты, которые буду проверять. Экран гасится, компьютер не блокируется. Windows 10 Home. Насчет координат мыши тоже подумаю, спасибо.
...
Рейтинг: 0 / 0
20.06.2020, 13:45
    #39971223
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Соколинский Борис
AleksVoronezh

В основное окно приложения идет вялый вывод в Memo строк лога. И все. В основной программе еще есть компонент для работы с COM-портом, но два порта через переходники USB <-> COM во время теста не используются, обмена данных по ним нет, да и порты эти собственно даже не открыты.
Отключите в настройках энергопотреблении временное отключение питания USB.


И это нужно будет попробовать, согласен.
...
Рейтинг: 0 / 0
20.06.2020, 14:05
    #39971228
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Сначала лучше попробовать прогнать от компьютера блондинку для которой все ошибки
красненькие и тщательно исследовать что представляет из себя мистический "сбой".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.06.2020, 15:05
    #39971236
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Запретил отключение (экономию энергии) для USB, сетевого адаптера и PCI-E в целом. Как будто стало лучше, но отчетливо видно даже по светодиоду на приборе, как только Windows отключает монитор, что светодиод мигает не так ритмично.

Путь там такой (для теста): первый прибор (в данном случает просто устройство с TCP) дергает основное приложение GET-запросом, в результате чего, встав сначала в очередь в основном приложении, из основного приложения вызывается PS скрипт, который через TCP-клиент Synapse дергает второй прибор, зажигая на нем светодиод. Второй прибор сообщает основному приложению (через TCP-сервер на Synapse), что светодиод зажжен. Это проходит обработку отдельной процедурой на PS, опять через ту же очередь, и отображается в WEB - интерфейсе. Работает часами, 5 часов точно, если Windows не гасит дисплей. Критичные элемент - очередь в приложении. Она построена на таймере из модуля MMSystem. Как бы Винда не чудила чего с этим таймером, когда гасит дисплей?
...
Рейтинг: 0 / 0
20.06.2020, 15:17
    #39971240
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh, там вроде нечему чудить.
Я бы грешил на то, что винда приоритеты процессов как-то перераспределяет.
И, кстати, какая частота должна быть и какая становится?
...
Рейтинг: 0 / 0
20.06.2020, 15:26
    #39971243
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Соколинский Бористам вроде нечему чудить.

Правда? Меня лично удивляет, что это чудо на колёсиках вообще хоть как-то работает. Одна
"очередь на таймере" уже достойна кунсткамеры.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.06.2020, 15:33
    #39971245
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Соколинский Борис,

Пакеты (GET-запросы), включающие и выключающие светодиод, следуют каждые 0,3 секунды. Выборка из очереди идет мультимедийным таймером с частотой 1 раз каждые 10 миллисекунд. Вот тут этот сбой хорошо видно. Это с мультимедийным таймером.

https://cloud.mail.ru/public/2P7p/3yo7H3AKp

Попробовал обычный таймер, поставил на 20мс (это очень оптимистично конечно) - поведение тоже. Гаснет экран - все встает колом.
Толи где-то в очереди косяк... но почему тогда работает при горящем дисплее?
...
Рейтинг: 0 / 0
20.06.2020, 15:34
    #39971246
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Dimitry Sibiryakov,
я отвечал конкретно о таймере высокого разрешения, который в чипсет встроен. Трудно представить, отчего его может колбасить в данной ситуации.
...
Рейтинг: 0 / 0
20.06.2020, 15:41
    #39971249
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh
Пакеты (GET-запросы), включающие и выключающие светодиод, следуют каждые 0,3 секунды.
Точнее сказать, они отправляются каждые 0.3 секунды, и то, что они будут с равными интервалами приходит в обработчик никто не гарантировал.
В любом случае глюк явно не из-за таймера.
Я бы для начала зашил в исходящие пакеты таймптамп-ы и исследовал периодичность их прилета до и после.
...
Рейтинг: 0 / 0
20.06.2020, 15:45
    #39971251
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Соколинский Борис, согласен, но это все на одном коммутаторе, сеть не загружена... идеальные условия почти.

Небольшая разница визуально присутствует всегда. Но при гашении дисплея - она становится катастрофической.
А как же видео, которое я выложил, наконец?
...
Рейтинг: 0 / 0
20.06.2020, 16:11
    #39971253
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh
Соколинский Борис, согласен, но это все на одном коммутаторе, сеть не загружена... идеальные условия почти.
Это не только от сети зависит, в цепочке еще участвует некий процесс[ы], который пакеты обрабатывает. Ну и, собственно, само приложение которому винда процессорное время выделяет. ИМХО, сюда нужно копать, для начала проэкспериментировать с приоритетом REAL_TIME.
...
Рейтинг: 0 / 0
20.06.2020, 16:20
    #39971254
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezhА как же видео, которое я выложил, наконец?

Видео никого не волнует. Windows не является системой реального времени и ничто (включая
мультимедийный таймер) не гарантирует время отклика. Начни протоколировать события с
таймштампами чтобы посмотреть где именно растёт интервал. А расти он может где угодно,
включая, например, NAGLE алгоритм TCP стэка или квант времени системного шедулера. Да и
частота процессора способна падать в район нуля.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.06.2020, 20:19
    #39971272
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
> Да и частота процессора способна падать в район нуля.

Не могу с этим не согласиться. Но мы тут "ловим" не микросекунды и даже не миллисекунды - а несколько десятых долей секунды в общем. Что бы такие задержки на ровном месте... ? Логика была такая, что в основном приложении всегда что-то выполняется - по диспетчеру задач я вижу, что оно занимает почти постоянно 7-10% CPU. Как бы совсем засыпать оно не должно, там боле - весь комп. Хотя и не спорю, можно будет попробовать изменить приоритетет для него. Кстати, совсем уже в порядке конспирологии, оппробовал с играющим в фоне Foobar - лучше не стало.
...
Рейтинг: 0 / 0
20.06.2020, 22:40
    #39971300
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh,

OpenSSL используется?
...
Рейтинг: 0 / 0
20.06.2020, 22:58
    #39971303
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
AleksVoronezh
Как бы совсем засыпать оно не должно, там боле - весь комп.
У винды может быть иное мнение на этот счет. Я не удивлюсь, если она считает процесс перехода в другой режим самым приоритетным.
...
Рейтинг: 0 / 0
20.06.2020, 23:08
    #39971305
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Нет, OpenSSL не используется. Строго говоря, в приложении есть Standalone IntraWeb сервер, вот он не виснет, и продолжает исправно отдавать станицы. Еще там создается экземпляр TCP-сервера на базе Synapse и очередь, выборка из которой происходит по таймеру на основе модуля MMSystem. Пока я больше всего грешу на таймер. Но возможно, и у меня там кривизна где-то нереальная. Но почему работает часами, когда Windows не отключает монитор?
...
Рейтинг: 0 / 0
20.06.2020, 23:17
    #39971308
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
А если сделать Fast Switch (смена пользователя)?

При отключенном мониторе на десктоп, вероятно, не отправляются многие оконные сообщения. Я хз, как вы там сделали, кода-то мы не видим. Отключение кнопкой монитора - не то же самое по той причине, что система не в курсе, что монитор выключен - соответственно, сообщение будут продолжать приходить.

Так что код - в студию.
...
Рейтинг: 0 / 0
20.06.2020, 23:53
    #39971322
AleksVoronezh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Добрый вечер! Спасибо за ответ.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
procedure TimerProc(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD) stdcall; // Обработка очереди

type
    TFunc = function(Param1,Param2,Param3: String):boolean of object;
var
    F: TFunc;
    Function_Name: String;
    Data_String: String;


begin

Try

 CriticalSection.Enter;

 If ( Pascal_S='') Or ( PS_IS_Ready='No' ) Or ( Function_Name_Queue.isEmpty ) Then Exit; // Проверка на готовность движка PS и не пустую очередь

 Function_Name:=Function_Name_Queue.Dequeue; // Извлечение из очереди имени процедуры внутри Pascal Script
 Data_String:=Data_String_Queue.Dequeue;  // Извлечение из очереди строковых данных для процедуры

 F := TFunc(Form3.PSScript1.GetProcMethod(Function_Name)); // Обращение к прцедуре внутри Pascal Script
 if @F = nil Then Exit;

 PS_IS_Ready:='No'; // Флаг, что движок PS будет занят

 F(Data_String,'',''); // Обращение к движку PS

Finally
  CriticalSection.Leave
End;


end;




Вот процедура обработки в таймере. То, что тестирую сейчас. Перед этим было обращение к PS отдельной процедурой, и внутри нее - критическая секция...
...
Рейтинг: 0 / 0
21.06.2020, 08:19
    #39971352
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
Ну так добавьте логгинг каждого шага. Процедура вызывается? Если да, то на чём тогда внутри встаёт?
...
Рейтинг: 0 / 0
21.06.2020, 12:49
    #39971382
jack_vosmerkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа сбоит кргда Windows 10 отключает монитор
проблема может быть гораздно глубже

в любом билде десятки есть такой глюк когда включаешь ночной режим, ждешь отключения монитора по таймеру, шевелишь мышку и ночной режим исчезает хотя кнопка показывает, что он активный
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Программа сбоит кргда Windows 10 отключает монитор / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]