Russian Qt Forum

Программирование => Общий => Тема начата: BuRn от Март 31, 2013, 10:50



Название: паттерн для драйвера
Отправлено: BuRn от Март 31, 2013, 10:50
Пишу драйвер для устройства, устройство работает на com порту. Вопрос к тем , кто хотя бы знаком с работой com порта, какой паттерн посоветуете использовать. Суть такова. Есть последовательность  "02h 10h 97h 4Ch 31h 32h 33h 03h FAh" , которая в свою очередь складывается из команды печати 4Ch, что печатаем 31h 32h 33h, пароль к устройству 10h 97h,STX ETX  02h 03h и CRC FAh , так вот, это простейшая команда , но она может быть выполнена из определенных режимов, в которые подобным образом нужно переходить. Хотел попробовать использовать паттерн "Декоратор", который будет простейшую команду заворачивать дальше и дальше до нужного мне результата. Смущает то, что будет огромное количество классов. Ранее было сделано элементарно:Функция которая вычисляла CRC + функция которая выполняла команду(4ch,...) и все это оборачивалось функцией которая в качестве аргументов просто принимала команду и блок данных. Имхо не универсально, поэтому хотелось бы заюзать какой-нибудь шаблон проектирования


Название: Re: паттерн для драйвера
Отправлено: Igors от Март 31, 2013, 11:14
Возможно QStateMachine здесь будет к месту


Название: Re: паттерн для драйвера
Отправлено: BuRn от Март 31, 2013, 11:28
Возможно QStateMachine здесь будет к месту
Возможно , но речь сейчас идет о более общем понятии , хотелось бы услышать мысли по архитектуре, переходы между режимами это уже вторично


Название: Re: паттерн для драйвера
Отправлено: kuzulis от Март 31, 2013, 11:58
ISO/OSI,

+ почитай Protocol Layer Design Pattern (http://www.eventhelix.com/realtimemantra/patterncatalog/protocol_layer.htm#.UVf6pjdqfGg)


Название: Re: паттерн для драйвера
Отправлено: Igors от Март 31, 2013, 12:43
Возможно , но речь сейчас идет о более общем понятии , хотелось бы услышать мысли по архитектуре, переходы между режимами это уже вторично
Для широкого концептуального разговора оснований/информации маловато. Практически единственное что Вы сообщили - есть команды имеющие известный формат - ну так что с того? Напр непонятно откуда опасение огромного числа классов. Много команд - ничего не попишешь, поддерживать-то все надо. Каким боком здесь декоратор - тоже хз. Так трудно рассчитывать на содержательный ответ, дело свалится в дежурные отписки ("телепаты в отпуске" и.т.п.)