Estoy al comienzo de un proyecto que implica leer varios sensores y fusionar los datos de esos sensores. En total, habrá 4 sensores conectados a través de USB y una cámara web, también conectados a través de USB.
Uno de mis colegas habla mucho sobre lo bueno que es dividir los programas en partes más pequeñas y hacer que se comuniquen a través de la red. Sugiere que deberíamos tener un ejecutable para cada sensor (o cámara) y luego una aplicación de control central que se comunique con los demás.
Intuitivamente no me gusta esta idea. El colega en cuestión trabajó en otro proyecto que utilizó ese enfoque y no tuvo fin de problemas que fueron difíciles de rastrear y depurar.
No parece un diseño muy completo y me parece algo poco elegante. Me gustaría escribir una biblioteca para tratar con cada sensor y tal vez ejecutarlos en hilos separados.
También debe señalarse que los cálculos que tenemos que hacer proporcionarán actualizaciones a otro sistema a casi 1000Hz. Agregar una capa de comunicaciones de red parece agregar un posible cuello de botella.
Me interesaría escuchar las opiniones de otras personas sobre esto y quizás algunas referencias sobre este tipo de práctica.