Вверх ↑
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
#1: 2012-03-02 03:13:21 ЛС | профиль | цитата
По ходу дел столкнулся с интересным багом: ровно в 00:00:00 программка с чтением COM-порта дает 1-2 таймаута. Таймаут сделан на обычном таймере. И получается, что в этот "волшебный" миг порт не может прочитать данные с контроллера. Хотя отправляет исправно. И вот я думаю: [offtop]это лыжи не едут, или я...[/offtop] винда что-то мудреное ресурсозатратное делает, или моя программа так интересно сделана? Стоит ХР, но даже на 7 заметил в полночь вроде тормозок секундный включается даже без моей программы.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#2: 2012-03-02 10:40:26 ЛС | профиль | цитата
Neo, интересный эффект. Видимо в системе в этот момент идёт переинициализация множества структур и записей, основанных на дате. Кроме того, немало приложений и служб назначают собственное обновление или сервисные операции на это время. Нужно ставить шпионы и мониторы производительности, моделировать ситуацию и отслеживать, чем занята система.
карма: 1

0
Ответов: 704
Рейтинг: 7
#3: 2012-03-02 15:03:05 ЛС | профиль | цитата
1nd1g0, кстати, давно хотел поинтересоваться у специалиста в отладке: а есть ли какой софтик для этого дела? Что-то универсальное и проверенное для мониторинга. И еще: может есть смысл саму функцию чтения-записи в порт перенести в службу, а данные ей передавать от основной "логики"? Может она будет более приоритетно работать с портом?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#4: 2012-03-02 15:50:20 ЛС | профиль | цитата
Neo, Служба, запущенная от системы, конечно имеет некоторый приоритет. Но Windows не была и никогда не будет системой реального времени, которую вы из неё пытаетесь всеми силами изобразить. Наиболее "приоритетно" с портами работают только драйвера уровня ядра, сейчас (в современных ОС) у портов даже прерывания отключены, всё работает на циклическом опросе по таймерам. Если нужна точность и непогрешимость, сносить в системе всё кроме своей службыприложения. Если Вас встроенный в порт буфер не устраивает, делаете на контроллере прямо впритык к датчику буферизирующий приёмник с логикой реального времени. Можете даже статистическую обработку прикрутить, и забираете у него данные уже пакетами. Сейчас такие датчики уже серийно производятся - со всеми возможными интерфейсами, включая rs232, usb, WiFi. А микроконтроллеры достаточно мощные чтобы к ним прикрутить карту памяти за 3 доллара, на которую влезет несколько лет ежесекундных логов температуры или чего там у Вас.
------------ Дoбавленo в 15.50:
Neo писал(а):
Что-то универсальное и проверенное для мониторинга.

Sysinternals procmon
карма: 1

1
Голосовали:Neo
Ответов: 704
Рейтинг: 7
#5: 2012-03-02 17:12:52 ЛС | профиль | цитата
1nd1g0 писал(а):
которую вы из неё пытаетесь всеми силами изобразить
на чем умеем, с того и изображаем .
Винда вроде и не плохо успевает и вполне себе работает. А "интересности" есть у всех систем. Многие программы ведь прекрасно работают под виндовс с теми же портами. Реальное время не нужно, главное все максимально оптимизировать. С термометром проблем нет, это с ИК-передатчиком/приемником балуюсь.
карма: 0

0
Ответов: 1731
Рейтинг: 68
#6: 2012-03-03 17:16:18 ЛС | профиль | цитата
[offtop]Ахах, написать программу которая будет постоянно переводить время на 00:00:00 - Win зависит ? [/offtop]
карма: 1

0
Ответов: 8978
Рейтинг: 825
#7: 2012-03-03 18:28:15 ЛС | профиль | цитата
Cosinus, так карты в руки -- слабо? потом и здесь отрапортоваться
карма: 19

0
Ответов: 1731
Рейтинг: 68
#8: 2012-03-03 19:01:07 ЛС | профиль | цитата
[offtop]ВНИМАНИЕ !!!
Запуск данного скрипта очень вреден для вашего процессора !!!
set-time.rar[/offtop]
карма: 1

0
файлы: 1set-time.rar [244B] [57]
Ответов: 3889
Рейтинг: 362
#9: 2012-03-03 21:09:55 ЛС | профиль | цитата
Cosinus, ядро нагружается самим скриптом, больше смысла ставить время на 23:59:58 и назначить скриптприложение с установкой как задание на 00:00:00. На фоне запустить программу мониторинга и смотреть, что же такого происходит помимо нашего скрипта
карма: 1

0
Ответов: 1731
Рейтинг: 68
#10: 2012-03-03 21:16:18 ЛС | профиль | цитата
[offtop]1nd1g0, ага, мне делать курсовую по Информатике, доклад по Биологии, готовиться к пробному ГИА, посмотреть фильм Грибы 3Д.
Да, мне заняться, то нечем [/offtop]
карма: 1

0
Ответов: 3889
Рейтинг: 362
#11: 2012-03-03 21:31:11 ЛС | профиль | цитата
Cosinus писал(а):
мне заняться, то нечем

Может быть, т.к. достаточно было оставить от Вашего скрипта три строчки и сделать как я сказал. А смотреть не Вам предлагается, а ТС.
карма: 1

0
Ответов: 704
Рейтинг: 7
#12: 2012-03-12 15:09:53 ЛС | профиль | цитата
Все выяснилось: в полночь (и именно в полночь, а не в 00:00 при переводе времени ) подвисает поток работы с портом. Точнее он работает исправно, но если влезть к нему из системной очереди - он дает сбой. Увеличил задержку ему на секунду и все решилось само-собой.
карма: 0

0
Ответов: 19
Рейтинг: 2
#13: 2012-03-15 17:58:41 ЛС | профиль | цитата
При запуске некоторых программ в WINDOWS 7 выскакивает окно контроля учетных записей в котором написано, разрешить программе внесение изменений или нет, пользователь выбирает Да или Нет. Возможно ли также сделать для программы сделанной в HIASM, чтобы WIN 7 выдавало такое же окно???
карма: 0

0
Ответов: 3349
Рейтинг: 233
#14: 2012-03-15 18:03:33 ЛС | профиль | цитата
Возможно
карма: 1

0
Ответов: 19
Рейтинг: 2
#15: 2012-03-15 18:05:13 ЛС | профиль | цитата
Ivann, А не подскажете в какой теме прочитать или как это реализовать???
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)