Problem jest następujący:
Mikrokontroler posiada 2 układy peryferyjne umożliwiające komunikację po CAN. Docelowo w aplikacji będzie używany jeden układ (95% pewności). Zastanawiam się w jaki sposób powinienem zrealizować klasę do obsługi CAN. To co przyszło mi do głowy to (interesuje mnie najniższa warstwa oprogramowania):
-> zaimplementować klasę korzystając ze wzorca Singleton dla jednego układu CAN
-> wyodrębnić interfejs, który będą implementować 2 klasy konkretne CAN (w postaci Singleton)
-> zaimplementować bardzo uniwersalną klasę(trudniejsze), i na sztywno w zakresie życia globalnym stworzyć 2 obiekty tego typu (nie ma sensu inicjalizować układ przy każdym stworzeniu klasy, a nawet mogą być przez to błędy), które będą reprezentowały pierwszy i drugi fizyczny układ.
Oczywiście według mnie najlepiej byłoby stworzyć uniwersalną klasę, ale biorąc pod uwagę o ile łatwiej byłoby zaimplementować inne rozwiązania to dość trudno mi się przekonać do tego rozwiązania. Na minus tego rozwiązania idzie również fakt, że nie ma takiej możliwości, żeby projekt używał więcej niż 2ch instancji takiej klasy, a i tak jestem przekonany że jedna będzie wystarczająca.
Niestety osób piszących w C++ dla urządzeń tego typu jest mało, przykładów jeszcze mniej, więc nie mam na czym się wzorować. Proszę o wasze zdanie i opinie na ten temat. Z góry bardzo dziękuję :)