Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#46: 2007-08-19 21:56:33 ЛС | профиль | цитата
nesco писал(а):
как Galkov пишит, что при 10 ms выдаст через 1 sec

проблемы с ЧТЕНИЕМ
карма: 9

0
Ответов: 2125
Рейтинг: 159
#47: 2007-08-19 22:07:19 ЛС | профиль | цитата
nesco, и что мы собираемся делать 200-1000 раз в секунду? Работа с каким-нибудь девайсом через LPT?
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#48: 2007-08-19 22:42:41 ЛС | профиль | цитата
Galkov писал(а):
проблемы с ЧТЕНИЕМ

Ну, немного не так -- понял буквально. Ну нет никаких гарантий, что этого не произойдет, а я посчитал, что точно произойдет, вероятность всеже есть.
tsdima, нет, работа с COM-портами, а также UDP сокетами в фоне. Есть N-е количество каналов, их надо по циклу опросить и считать с них информацию. Минимальное время, за которе может появится достоверная информация в одном из каналов при максимальной скорость COM-порта 57600 и 20 байтах информации, составляет ~ 3 ms при скважности 100 (работают каждый в своем потоке), а значит у меня ~300 ms на опрос всех каналов. В таком случае, при 30 ms на цикл у меня получается всего 10 каналов, этого мало, должен быть резерв -- каналов 30, не меньше. При 10 ms это и будет то, что надо, но сервис имеет только один таймер, и его приходится делить на три таймера -- цикл опроса входных каналов, цикл опроса выходных каналов и 1 сек цикл, вот при делении я и наблюдаю, косяки при уменьшении времени цикла. Я проверял пока не на сервисе, а на обычном таймере, почему и задал этот вопрос -- точнее ли сервисный таймер (эх, если бы таймеры можно было бы ставит в сервисе проблем бы не было)
карма: 22

0
Ответов: 56
Рейтинг: 1
#49: 2007-08-19 22:45:59 ЛС | профиль | цитата
tsdima писал(а):
и что мы собираемся делать 200-1000 раз в секунду? Работа с каким-нибудь девайсом через LPT?

При использовании разных таймеров получаеться несовсем ровно.Особенно если комп сильно глючит.В этой схеме в любом случае действие будет делаться ровно.
code_1844.txt
карма: 1

0
файлы: 1code_1844.txt [1.6KB] [459]
Разработчик
Ответов: 26151
Рейтинг: 2127
#50: 2007-08-19 22:51:07 ЛС | профиль | цитата
aaa_gadag, а ты какой-либо канал таймера нагрузи килограммовой схемой, я на тебя тогда посмотрю, как он тогда будет ровно делаться.
карма: 22

0
Ответов: 56
Рейтинг: 1
#51: 2007-08-19 23:04:10 ЛС | профиль | цитата
Вот: code_1845.txt
Не меньше 1KB схемы одном из каналов таймера.Работает ровно...

[size=-2]------ Добавлено в 23:04
200KB?Но я же только добавил перенос 1000 пробелов из одного компонента в другой.
карма: 1

0
файлы: 1code_1845.txt [211.8KB] [532]
Разработчик
Ответов: 26151
Рейтинг: 2127
#52: 2007-08-19 23:43:04 ЛС | профиль | цитата
aaa_gadag, и на сколько у тебя хватить сумматора -- на ~2 миллиарда итераций (при 1ms на 2 миллиона секунд или ~ 550 часов, меньше месяца), а дальше что? А если прога должна работать не выключаясь круглосуточно?
карма: 22

0
Ответов: 3655
Рейтинг: 69
#53: 2007-08-19 23:59:20 ЛС | профиль | цитата
nesco писал(а):
А если прога должна работать не выключаясь круглосуточно?

Эт чо вечный двигатель что ль
Какая задача сервиса
1)контроль работы
2)контроль работы и выдача сообщения при недопустимости параметра.
3)запись сообщений.
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#54: 2007-08-20 00:08:32 ЛС | профиль | цитата
Вячеслав, двумя постами выше описан основной алгоритм работы -- сбор событий от N-количества источников с записью в базу в непрерывном режиме, не выключаясь. Выключение, даже на двадцат секунд -- полный аврал.
карма: 22

0
Ответов: 3655
Рейтинг: 69
#55: 2007-08-20 00:23:35 ЛС | профиль | цитата
nesco, Тогда вижу только внешний контроллербуфер работающий в реальном времени.
карма: 0

0
Ответов: 56
Рейтинг: 1
#56: 2007-08-20 00:28:49 ЛС | профиль | цитата
nesco, Я тебя непонял...Что ещё за сумматор?Компонент Math в схеме?Установи чтобы при достижении 1002 он сбрасывался и всё.
карма: 1

0
Ответов: 2058
Рейтинг: 28
#57: 2007-08-20 00:30:08 ЛС | профиль | цитата
nesco, в "Упладе" должен быть таймер который работает с более мелкими значениями времени типа 100 мксек. А стандартный системный тамер меньше 10 мсек не понимает. Компонент сделал tsdima.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#58: 2007-08-20 00:44:49 ЛС | профиль | цитата
Эдик писал(а):
А стандартный системный тамер меньше 10 мсек не понимает

http://www.hiasm.com/xf/topic.php?p=6133
карма: 27
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#59: 2007-08-20 01:28:11 ЛС | профиль | цитата
Если бы Thread не высыпался после определенного времени при работе в цикле, я бы его давно применил. Как раз Sleep и вызывает молчаливый выход. Убрав Sleep, и используя внутренние системные задержки, такой молчаливый выход не наблюдается. Сгенерить такую схему просто не могу, по причине того, что эта фича может проявиться, а может и нет, и только в реальной системе (на эмуляторах не наблюдается), а экспериментиовать на рабочем компе не представляется возможным.

[size=-2]------ Добавлено в 01:28
Вячеслав, у меня с этим прекрасно справляется прога, написанная на HiAsm'e, и не нужен там никакой внешний контроллер (я специально от него отошел). Весь прикол в том, что я хочу перевести эту прогу в фоновый режим, а сервис NT поддерживает только свой таймер и не поддерживает стандартные, об этом писано выше по топику. Если бы он их поддерживал, всех этих вопросов бы не было, попросту.

Я задал маленький вопрос -- насколько точнее сервисный таймер в отличии от стандартного? Блини, все пошли умничать, кто во что горазд. Никто толком на этот вопрос так и не ответил
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#60: 2007-08-20 10:47:22 ЛС | профиль | цитата
nesco писал(а):
Если бы Thread не высыпался после определенного времени при работе в цикле

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