Una de las cosas "lindas" de controlar dispositivos por puerto serie, es que no importa si el dispositivo está conectado o no, tu puedes hablar por el puerto tranquilamente, sin errores inesperados ante desconexiones, y el control de online/offline queda de tu lado.
¡Pero el puerto tiene que existir!
Por el error que reportas: "Unable to open com port", tu problema es el puerto, no el dispositivo. O sea que no te preocupes en este casos por nada de lo que esté luego del DB9/DB15.
Pregunto:
- ¿Usas un puerto serie PCI/nativo o USB?
De ser USB, tienes que tener cuidado dado que la conexión y desconexión de este no la puedes controlar, o sea que el puerto puede "desaparecer" mediante cuando lo estés usando, y al reconectarse puede tomar un nombre de puerto nuevo, por ejemplo en lugar de COM1 pasar a ser COM2. o en UX en lugar de /dev/ttyS0 pasar a /dev/ttyS1.
- Si bien suena a obvio, ¿Verificaste que el puerto que quieres abrir exista?
- Probaste el puerto con otra aplicación.
Una forma fácil de hacerlo, es con cualquier terminal, y conectar en el puerto un DB9/15 con los pines TX/RX puenteados, así todo lo que escribas en el puerto tiene que volver como eco.
PD: Me puse a responder sin ver que ya lo habías solucionado, igualmente mando todo por si te sirve.