Ik ben bezig met een redelijk groot software project. Het betreft een industriële applicatie die bestaat uit een camerasysteem met meerdere robots. Het camera systeem moet voorwerpen op een lopende band herkennen en vervolgens opdrachten geven aan robots. De robots zijn zelfstandige 'domme' units die met de software gaan communiceren via tcp/ip.
De software zal gaan bestaan uit verschillende modules:
- server
- taakverdeler voor robots
- vision gedeelte (camera interface, framegrabber, processing)
- user interface
- database
De losse onderdelen ontwikkelen is niet zo'n probleem, ik heb al een server die met de robots kan communiceren en de camera interface werkt ook al standalone. Mijn vraag is hoe ik deze onderdelen op een mooie manier kan laten samenwerken. De vision software zal met de taakverdeler moeten communiceren en de taakverdeler met de server. Verder moeten de onderdelen via de UI benaderbaar zijn.
Omdat de vision component vrij veel performance vraagt heb ik het project nu opgezet in c++. Ik maak hier bij zoveel mogelijk gebruik van STL en andere c++ libraries (OpenCV, Poco, Qt voor UI). Ik heb het project nu zo opgezet dat de verschillende modules ook als losse libraries gecompileerd worden. (Windows, Visual Studio 2010).
Ik probeer te streven naar "low coupling en high cohesion" maar wat zijn hierbij de best practises? Zijn hier goede boeken over? Ik ben bekend met design patterns e.d. alleen dit gaat een stapje hoger naar mijn idee.
De software zal gaan bestaan uit verschillende modules:
- server
- taakverdeler voor robots
- vision gedeelte (camera interface, framegrabber, processing)
- user interface
- database
De losse onderdelen ontwikkelen is niet zo'n probleem, ik heb al een server die met de robots kan communiceren en de camera interface werkt ook al standalone. Mijn vraag is hoe ik deze onderdelen op een mooie manier kan laten samenwerken. De vision software zal met de taakverdeler moeten communiceren en de taakverdeler met de server. Verder moeten de onderdelen via de UI benaderbaar zijn.
Omdat de vision component vrij veel performance vraagt heb ik het project nu opgezet in c++. Ik maak hier bij zoveel mogelijk gebruik van STL en andere c++ libraries (OpenCV, Poco, Qt voor UI). Ik heb het project nu zo opgezet dat de verschillende modules ook als losse libraries gecompileerd worden. (Windows, Visual Studio 2010).
Ik probeer te streven naar "low coupling en high cohesion" maar wat zijn hierbij de best practises? Zijn hier goede boeken over? Ik ben bekend met design patterns e.d. alleen dit gaat een stapje hoger naar mijn idee.