Это мой первый раз, когда я создаю целый библиотечный класс, поэтому мне не хватает.
У меня есть схема контроллера, с которой я могу общаться через последовательный порт, и я хотел бы написать для него библиотеку классов.Я подумал, что вызов метода (и гораздо более читаемый) намного проще, чем многократное жесткое кодирование длинных символьных строк.В любом случае, контроллер поставляется с предварительно запрограммированными ~ 100 функциями получения / установки, разделенными на три категории: Настройки датчика, Настройки вывода и Настройки среды.Эти функции используются для получения или установки настроек контроллера.Мне было интересно, какой была бы «лучшая» или «принятая» организация класса?
Все функции принадлежат одному контроллеру и используют один и тот же последовательный порт, поэтому я решил, что Controller
будет классом верхнего уровня,В этом классе я установил экземпляр SerialPort
и создал простой метод отправки / получения, используя экземпляр: string SendReceive(string commandString)
.
Поскольку я действительно не хочу иметь ~ 100 функций и свойств в одном классе, я попытался создать несколько вложенных классов (SensorSettings
, OutputSettings
и EnvironmentSettings
) и поместить соответствующие функциивнутри них.Однако при попытке сборки я получил ошибку компиляции, в которой говорилось, что я пытался получить доступ к нестатическому методу более высокого уровня (SendReceive(string commandString)
) из одного из вложенных классов.
Каждый из различныхМетоды имеют уникальную и переменную команду отправки / получения, поэтому я должен создать командную строку внутри метода, вызвать SendReceive
и обработать возвращаемую команду.Есть ли способ сделать это?
Я хотел бы использовать свойства, чтобы пройти путь вниз, чтобы получить / установить различные настройки.Например ...
controllerInstance.SensorSettingsProperty.Units; // Units in use.
или ...
controllerInstance.OutputSettingsProperty.GetOutput(sensor1); // Get sensor 1 output.
... но все это требует использованиятот же последовательный порт и SendRecieve
.
Мои извинения за ужасно длинный пост.Любая помощь с благодарностью.
Спасибо!