Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

программа на C# под Linux реального времени, работа с прерываниями..

76K
10 января 2012 года
rain84
10 / / 10.01.2012
реально ли написать на C# программу под Linux реального времени, которая бы могла установить максимальный приоритет на прерывание USB-порта и опрашивала бы подключенную мышь?..

программа требуется для тестирования реакции пользователя, потому и выбраны такие условия, чтоб задержка между нажатием на левую клавишу мыши была минимальной..

подскажите, в каком направлении двигаться.. я так понимаю, что на С# будут вставки для низкоуровневого программирования.. как это реализовать?.. какой дистриб Linux'а выбрать?..

PS: с С++ дружу слабо, и времени на реализацию в обрез(..
277
10 января 2012 года
arrjj
1.7K / / 26.01.2011
:facepalm:
76K
10 января 2012 года
rain84
10 / / 10.01.2012
а можно словами?.. :)
если что, то под Linux есть аналог .NET'а - MONO, и IDE "MonoDevelop"..
297
10 января 2012 года
koodeer
1.2K / / 02.05.2009
Является ли ваш Linux операционной системой реального времени?

Действительно ли нужно реальное время, чтобы обработать клики пользователя? Человек не робот, моментально реагировать не может.

Чёрт знает, что именно вам нужно, но работать на C# с USB-портом можно.
240
11 января 2012 года
aks
2.5K / / 14.07.2006
Ни линукс ни винда действительно в общем случае не являются ОС реального времени, а писать софт "реального времени" на языках типа C# тем более нельзя. И действительно - зачем вам "реальное время".
То что вы хотите сделать - сделать теоретически можно. Но гораздо проще, быстрее и логичней на С, в крайнем случае на С++.
То что вы плохо знаете С - не отговорка. Невозможно после C# не понять С. =)
256
12 января 2012 года
foxweb
1.0K / / 27.07.2005
Давно не видел такой феерической постановки задачи :)
Поставленную задачу (чтение данных с мышы) можно решить и на shell-скрипте в 10 строчек. Реальное время не нужно. C# не нужен. C++ тем более.
240
12 января 2012 года
aks
2.5K / / 14.07.2006
Честно говоря не очень понятно что вобще автор имеет в виду под опрашиванием мыши и нужны ли ему прерывания. Конкретизировал бы хоть. =)
256
12 января 2012 года
foxweb
1.0K / / 27.07.2005
Какие нафиг прерывания в 21 веке? Читаешь из порта байты и всё. Всё равно мышь сама по себе — медленный девайс, нет смысла ни в прерываниях, ни в особых драйверах, ни в реальном времени.

В линуксе делается так:

 
Код:
sudo cat /dev/input/mouse0
— сиди только байты лови.

Автор начитался фантастических книг из начала девяностых про делфи, винапи, драйверы новомодных USB и красивые графические интерфейсы. А на деле задачи приходится решать прит помощи верстака и киянки.
240
12 января 2012 года
aks
2.5K / / 14.07.2006
Так вот и мне интересно что он хочет и зачем ему прерывания. Прерывания то никуда не делись в 21-ом веке. Просто мы их не видим. =)
76K
12 января 2012 года
rain84
10 / / 10.01.2012
я ж еще в топике написал
Цитата:
программа требуется для тестирования реакции пользователя, потому и выбраны такие условия, чтоб задержка между нажатием на левую клавишу мыши была минимальной.


и одни лишь голые получаемые данные сами по себе не нужны - они должны обрабатываться программой.. в общем, операционка реального времени нужна лишь для того, чтобы избавиться (думаю, нереально), либо свести к минимуму и ТОЧНО конкретизировать время программной задержки.. поэтому на время теста программа должна по возможности монопольно использовать аппаратные ресурсы (ну как старые проги под MS DOS).. и под виндой с её многозадачностью такого точно не выйдет..

2 aks: как раз на базе Linux'а строятся операционки реального времени.. для интересу сходите по ссыли от koodeer'а..

240
12 января 2012 года
aks
2.5K / / 14.07.2006
Цитата: rain84

и одни лишь голые получаемые данные сами по себе не нужны - они должны обрабатываться программой..


Открываете чардевайс мыши как файл в программе, а дальше все так же. )

Цитата: rain84

в общем, операционка реального времени нужна лишь для того, чтобы избавиться (думаю, нереально), либо свести к минимуму и ТОЧНО конкретизировать время программной задержки.. поэтому на время теста программа должна по возможности монопольно использовать аппаратные ресурсы (ну как старые проги под MS DOS).. и под виндой с её многозадачностью такого точно не выйдет..


Честно говоря не понял что вы имеете ввиду под программной задержкой. мне кажется у вас недопонимание того как взаимодействует ОС желозо и юзеспэйс и от этого такая каша в голове. Думаю если опишете хотя бы примерно прикладную проблему, которые пытаетесь так решить - возможно посоветуем подходящее средство.
Если же вам нужно работа с устройством выходящая за рамки того, что предоставляет система - пожалуйста, пишите драйвер - монополизируйте ресурс как хотите. Благо в линуксе драйвера пишутся легко. И многозадачность тут совершенно не причем. Линукс такой же многозадачный как и винда, как и любая современная ОС.

Цитата: rain84

2 aks: как раз на базе Linux'а строятся операционки реального времени.. для интересу сходите по ссыли от koodeer'а..


Не надо мне рассказывать что на базе чего строится. Я прекрасно знаю, что такое реалтаймовая ОС. И таки ос строятся на на базе, а изначально реалтаймовые. Ядро линукс позволит выполнять лишь некоторые операции в условно режиме реального времени.

76K
12 января 2012 года
rain84
10 / / 10.01.2012
Цитата: aks
Честно говоря не понял что вы имеете ввиду под программной задержкой. мне кажется у вас недопонимание того как взаимодействует ОС желозо и юзеспэйс и от этого такая каша в голове..

вполне возможно, не спорю..

Цитата: aks
..Думаю если опишете хотя бы примерно прикладную проблему, которые пытаетесь так решить - возможно посоветуем подходящее средство..


Цитата: rain84
я ж еще в топике написал
Цитата:
программа требуется для тестирования реакции пользователя, потому и выбраны такие условия, чтоб задержка между нажатием на левую клавишу мыши была минимальной.

запускается прога.. выбираются нужные параметры тестирования.. суть проги - кружок двигается по контуру (окружность, линия), и когда достигает определенного места, то пользователь должен среагировать - нажать на кнопку мыши, и прога должна эти данные моментально получить.. исходя из смысла слова "моментально", мы должны внутри программы в процедуре тестирования написать нечто вроде ассемблерной вставки, в которой будем опрашивать USB-порт с мышью, т.е. в момент самого тестирования программа напрямую взаимодействует с портом и является единственным активным и исполняемым системой процессом (надеюсь, понятно объяснил.. :) )..

Цитата: aks
..Не надо мне рассказывать что на базе чего строится. Я прекрасно знаю, что такое реалтаймовая ОС. И таки ос строятся на на базе, а изначально реалтаймовые. Ядро линукс позволит выполнять лишь некоторые операции в условно режиме реального времени.

я лишь говорю исходя из того, что прочитал.. вот тут люди про ART Linux упоминают.. :)

76K
12 января 2012 года
rain84
10 / / 10.01.2012
в общем, пригляделся и остановил свой выбор на RTLinux..
76K
14 января 2012 года
rain84
10 / / 10.01.2012
пригляделся получше и сменил выбор на Xenomai =)
241
29 января 2012 года
Sanila_san
1.6K / / 07.06.2005
А разве метка по кругу летает с первой космической скоростью? А как тогда в играх стрельба делается, не думали? Поистине, вы электронным микроскопом лабораторную работу по школьной ботанике делаете. Не проще ли ловить событие нажатия мышки и реагировать как вам надо? Точность, полагаю, будет сопоставимой. Ещё как вариант можно таймер запускать периодически и останавливать по нажатию мышки. Можно даже ввести поправочный коэффициент на время реакции системы, оно как раз примерно постоянное.
5
29 января 2012 года
hardcase
4.5K / / 09.08.2005
А чего бы автору тогда под FreeDOS-е не написать софтину? :) Будет совершенно монопольный доступ ко всему.
260
29 января 2012 года
Ramon
1.1K / / 16.08.2003
Цитата: hardcase
А чего бы автору тогда под FreeDOS-е не написать софтину? :) Будет совершенно монопольный доступ ко всему.



Тама ж нету C#, а без него никак.

1
29 января 2012 года
kot_
7.3K / / 20.01.2000
да без С# никак.
341
29 января 2012 года
Der Meister
874 / / 21.12.2007
Цитата: rain84
программа требуется для тестирования реакции пользователя


Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог