crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в собственная реализация hotplug на с++
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 16.7.2009, 20:42
  я думаю тут нужно пройтись по стандартным шаблонам проектирования. Я в них ещё слабо ориентируюсь и названий толком не помню.
Но идея такая:
Есть описатели интерфейсов, есть описатели устройств, которые сидят на данных интерфейсах.
Для описания интерфейсов использовать абстактные фабрики (abstract fabrics), которые регламентируют интерфейс фабрик.
Для описания устройств тоже самое.

Т.е. это из области порождающих шаблонов проектирования
igor_bogomolov Дата 16.7.2009, 19:59
 
Цитата(Litkevich Yuriy @ 16.7.2009, 20:41) *
т.е. устройство работает по одному из стандартных физических интерфейсов типа: последовательный порт, USB. Т.е. выводимых наружу компьютера?
Компьютер там - это встраиваемая процессорная плата. Иснтерфейсы I2C, MPI (из тех что запомнил). Но это на самом деле не важно. Задача в том и стоит, что нужно абстрогироваться от конкренной реализации оборудования и интерфейсов. Надо построить некую абстрактную архетиктуру, которую дальше можно будет расширять уже конкретной реализацией. На данный момент конкретика не итнересует.
Мне как раз и нужно продумать уровень этой абстракции. Но я не знаю с чего начать, нет опыта. Кокую необходимую реализацию нужно задать для устройства, какую для интерфейса, как их увязывать. Как правильно организовать цикл обнаружения оборудования???
Litkevich Yuriy Дата 16.7.2009, 19:41
 
Цитата(igor_bogomolov @ 16.7.2009, 23:19) *
Мне нужно на уровне обычного приложения (программки на с++).
т.е. устройство работает по одному из стандартных физических интерфейсов типа: последовательный порт, USB. Т.е. выводимых наружу компьютера?
igor_bogomolov Дата 16.7.2009, 19:19
 
Цитата(ViGOur @ 16.7.2009, 19:50) *
Какой уровень тебя интересует, на уровне драйверов или простой ввод вывод и опрос системы?
На уровне драйверов, это, если я правильно понимаю, уже описание и работа с каким-то конкретным устройством. Это пока для меня рано.
Мне нужно понять в теории, как построить такую систему, как производить опрос/поиск оборудования. И как сделать систему легко расширяемой. Т.е. сделали некое новое устройство, мы создаем класс для него, унаследованный от некого абстрактного базового класса описывающего в общем виде любое устройство. Добавляем его в список поддерживаемого оборудования после чего оно должно определяться и работать. (Это мое скромное понимание задачи, как в реальности работают подобные системы я не знаю)
Цитата(BRE)
Посмотри на HAL, вроде все уже укра... сделано до нас.
Спасибо за наводку. Только как я понял это уроветь ядра. Мне нужно на уровне обычного приложения (программки на с++).
Litkevich Yuriy Дата 16.7.2009, 19:17
  Ну тогда появляется кое-какая конкретика:
ОС - Линух.

Стало быть нужно почитать про automount в нём, который сравнительно молодой. (родил его некий чувак, который делал то-ли диплом то-ли магистерскую)
BRE Дата 16.7.2009, 19:07
 
Цитата(igor_bogomolov @ 16.7.2009, 20:04) *
Рад буду любым идеям, как реализовать подобный интерфейс. Сам пока не знаю с чего начать (((

Посмотри на HAL, вроде все уже укра... сделано до нас.
:)
igor_bogomolov Дата 16.7.2009, 19:04
 
Цитата(Litkevich Yuriy @ 16.7.2009, 19:49) *
А зачем? Ведь современные ОС - MS Windows, Mac OS, предоставляют такую функциональность. Да и в линухах automount есть.
Есть набор оборудования (плат) собственного производства. Все они посредством неких интерфейсов (I2C, MPI, еще какие-то, ) объеденены в одну систему которая управляеся (или на которую установлена) Linux. Все эти платы могут выниматься, и подключаться во время работы системы. Вот и нужно реализавать свою систему Plug and Play, а точнее HotPlug. На данный момент нужно понимание как все это организовать. Нужен чисто абстрактный интерфейс, не привязанный к конкретное реализации оборудований, который в дальнейшем можно будет легко расширять конкретное реализаций оборудования.

Рад буду любым идеям, как реализовать подобный интерфейс. Сам пока не знаю с чего начать (((
ViGOur Дата 16.7.2009, 18:50
  Какой уровень тебя интересует, на уровне драйверов или простой ввод вывод и опрос системы?
Litkevich Yuriy Дата 16.7.2009, 18:49
  наводящий вопрос:
А зачем? Ведь современные ОС - MS Windows, Mac OS, предоставляют такую функциональность. Да и в линухах automount есть.
igor_bogomolov Дата 16.7.2009, 18:43
  Приветствую всех.
На новой работе поставили задачу. Реализавать программу "горячего" обнаружения устройств в системе (hotplug).
Задача чисто абстрактная, не привязанная, пока, ни к каким конкретным устройствам и интерфейсам.
Т.е. нужно реализовать некий абстрактный интерфейс и набор классов, используя которые в дальнейшем можно будет описать реальные устройства с различными интерфейсами, которые можно подключать/отключать во время работы прораммы, которая в свою очередь все это коректно отслеживала.

Помогите с идейками. Не знаю с какого конца браться. :unsure:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.4.2024, 15:15