Cómo obtener datos de un dispositivo serial automaticamente en C#
Tengo una inquietud con respecto a como obtener los datos automáticamente de un dispositivos que se envían mediante usb por un puerto serial virtual a un software que estoy desarrollando en C# y pues, estaba pensando receptar esos datos mediante "Timer" pero no se si hay otra forma de receptar estos datos automáticamente sin intervención humana.
Mi otra pregunta es, cómo detectar si el dispositivo envía o no y si es el caso de que no envié, cómo puedo saber y detectar esto.
Y si se lo preguntan, el dispositivo envía datos de tres dispositivos más, los cuales son, dos lectores de tarjetas de acceso y un dato de sensores de peso; según los que me mandaron a desarrollar dicha aplicación, estos datos se envían por un solo dispositivo y lo que no se, si este dispositivo a los datos los enviará con un tipo de identificador para saber cual es cual (lector de acceso de entrada, dato de los sensores de peso y lector de acceso de salida).
Para terminar, el orden de datos de envió es el siguiente: Lector de acceso de entrada -> Peso de entrada mediante sensores de peso -> Lector de acceso de salida -> Peso de salida mediante sensores de peso; otra cuestión, si por ejemplo, si entra X, lee el acceso de entrada y realiza el primer peso y luego entra Y y realiza el mismo proceso pero este sale primero con acceso de salida y peso final antes que X, es decir, como enlazo estos datos si llegan varios sujetos, se crea objetos en C# o como se hace. (Explicación a lo anterior - entra X -> Acceso entrada X -> Peso entrada X -> Entra Y -> Acceso entrada Y -> Peso entrada Y -> Acceso Salida Y -> Peso Salida Y -> Acceso Salida X -> Peso Salida X)
Espero que me hayan entendido y de antemano, les agradezco por la ayuda.
PD1: Solo código en C Sharp y si se puede en otro lenguaje de programación, puedo adaptarle!
PD2: Los dos lectores de tarjeta de acceso, son para el mismo sujeto, es decir, la identificación en la tarjeta es la misma para ambos lectores, solo que el uno es de entrada y el otro es de salida.