Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 16.7.2009, 20:42 |
я думаю тут нужно пройтись по стандартным шаблонам проектирования. Я в них ещё слабо ориентируюсь и названий толком не помню. Но идея такая: Есть описатели интерфейсов, есть описатели устройств, которые сидят на данных интерфейсах. Для описания интерфейсов использовать абстактные фабрики (abstract fabrics), которые регламентируют интерфейс фабрик. Для описания устройств тоже самое. Т.е. это из области порождающих шаблонов проектирования |
|
igor_bogomolov | Дата 16.7.2009, 19:59 |
т.е. устройство работает по одному из стандартных физических интерфейсов типа: последовательный порт, USB. Т.е. выводимых наружу компьютера? Компьютер там - это встраиваемая процессорная плата. Иснтерфейсы I2C, MPI (из тех что запомнил). Но это на самом деле не важно. Задача в том и стоит, что нужно абстрогироваться от конкренной реализации оборудования и интерфейсов. Надо построить некую абстрактную архетиктуру, которую дальше можно будет расширять уже конкретной реализацией. На данный момент конкретика не итнересует. Мне как раз и нужно продумать уровень этой абстракции. Но я не знаю с чего начать, нет опыта. Кокую необходимую реализацию нужно задать для устройства, какую для интерфейса, как их увязывать. Как правильно организовать цикл обнаружения оборудования??? |
|
Litkevich Yuriy | Дата 16.7.2009, 19:41 |
Мне нужно на уровне обычного приложения (программки на с++). т.е. устройство работает по одному из стандартных физических интерфейсов типа: последовательный порт, USB. Т.е. выводимых наружу компьютера? |
|
igor_bogomolov | Дата 16.7.2009, 19:19 |
Какой уровень тебя интересует, на уровне драйверов или простой ввод вывод и опрос системы? На уровне драйверов, это, если я правильно понимаю, уже описание и работа с каким-то конкретным устройством. Это пока для меня рано. Мне нужно понять в теории, как построить такую систему, как производить опрос/поиск оборудования. И как сделать систему легко расширяемой. Т.е. сделали некое новое устройство, мы создаем класс для него, унаследованный от некого абстрактного базового класса описывающего в общем виде любое устройство. Добавляем его в список поддерживаемого оборудования после чего оно должно определяться и работать. (Это мое скромное понимание задачи, как в реальности работают подобные системы я не знаю) Цитата(BRE) Посмотри на HAL, вроде все уже укра... сделано до нас. Спасибо за наводку. Только как я понял это уроветь ядра. Мне нужно на уровне обычного приложения (программки на с++). |
|
Litkevich Yuriy | Дата 16.7.2009, 19:17 |
Ну тогда появляется кое-какая конкретика: ОС - Линух. Стало быть нужно почитать про automount в нём, который сравнительно молодой. (родил его некий чувак, который делал то-ли диплом то-ли магистерскую) |
|
BRE | Дата 16.7.2009, 19:07 |
Рад буду любым идеям, как реализовать подобный интерфейс. Сам пока не знаю с чего начать ((( Посмотри на HAL, вроде все уже укра... сделано до нас. |
|
igor_bogomolov | Дата 16.7.2009, 19:04 |
А зачем? Ведь современные ОС - 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). Задача чисто абстрактная, не привязанная, пока, ни к каким конкретным устройствам и интерфейсам. Т.е. нужно реализовать некий абстрактный интерфейс и набор классов, используя которые в дальнейшем можно будет описать реальные устройства с различными интерфейсами, которые можно подключать/отключать во время работы прораммы, которая в свою очередь все это коректно отслеживала. Помогите с идейками. Не знаю с какого конца браться. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 3:45 |