powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Точность таймера
2 сообщений из 2, страница 1 из 1
Точность таймера
    #32352002
Гость_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Хотелось бы услышать насчет точности таймера.
Ситуация следующая. Есть 2 оконечных переферийных оборудования, типа
цифрового модема, но не совсем, что в принципе и не важно, а важно то, что
выдавая импульс длительностью 2000 мл сек на "той стороне" он как минимум на 400 мл. сек больше, что в принципе недопустимо. Длительность , сколько
держать на линии "+" считет таймер, соответвенно по истечении времени
удержания выполняется метод который его сбрасывает в 0. И второе как в реальном масшате времени узнать сколько уже таймер отсчитал. Допустим стоит у него Interval = 3000, а прошло 400 , таак вот как мне эти 400 достать ? Если вносить поправку на код, тот как считать добавочное время ?
з.ы. Оборудование такую задержку не может делать, это коммутатор.
...
Рейтинг: 0 / 0
Точность таймера
    #32355728
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 - фокс мало приспособлен к RealTime обработке.
2 - винда мало приспособлена к RealTime обработке.
Если всё-же решился через всё это работать, то вот что можно сделать:
1 - сделать маленький интервал (скажим 100 или 50 мсек) и в Timer считать сколько прошло вызовов.
2 - юзать API функцию GetTickCount, которая считает число миллисекунд от старта винды - т.е. в любой момент можно подсчитать сколько времени прошло с момента предыдущего вызова. В принципе можно и через SECONDS() то же самое делать, но SECONDS() сбрасывается на 0 каждую полночь, а GetTickCount даёт непрерывно возрастающие значения в течении примерно 50 суток (после чего тоже сбрасывается на 0 - всё-же это обычное 32-разрядное число)
Учти, что сама винда квантует время так, что особой точности ты не добьёшся, скажем тот-же GetTickCount наращивается не по 1 мсек а по 10 - в Win2K насчёт других ОС не уверен...
3 - Ну и конечно приоритет твоему процессу нужно ставить достаточно высокий, иначе какой-нить фоновый Скринсейвер/Антивирус/Прочяя софтина займёт время проца тогда, когда оно нужно тебе :)

WBR, Igor
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Точность таймера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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