Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema al abrir puerto serie "virtual"

Estas en el tema de Problema al abrir puerto serie "virtual" en el foro de .NET en Foros del Web. Hola a todos. Estoy desarrollando una aplicación en C# usando una API ya hecha. Esta API tiene una función que permite "emular" un puerto serie, ...
  #1 (permalink)  
Antiguo 14/08/2014, 07:57
 
Fecha de Ingreso: febrero-2014
Mensajes: 55
Antigüedad: 10 años, 1 mes
Puntos: 3
Problema al abrir puerto serie "virtual"

Hola a todos.

Estoy desarrollando una aplicación en C# usando una API ya hecha. Esta API tiene una función que permite "emular" un puerto serie, y necesito usarlo. El problema es que no puedo abrirlo, explico el error:

Primero creo el puerto serie virtual. Para comprobar que está funcionando escribo algo con el HyperTerminal, y todo va bien.

Luego, en el código, creo el puerto serie:
SerialPort ^sp=gcnew SerialPort("COM5",9600,Parity::None,8,StopBits::On e);
Esto no lanza excepción.

Cuando intento hacer sp->Open();, este si lanza excepción, y el mensaje es: "El parámetro no es correcto".

He probado a hacer esto mismo pero sin emular el puerto serie, en este caso al hacer Open() el mensaje de la excepción es: "El puerto 'COM5' no existe".
Con esto quiero decir que el programa si que detecta el puerto serie.

He probado a poner a true el DtrEnable y el RtsEnable, y nada.

¿Alguien sabe cuál es el fallo?

Gracias, saludos.

PD.: Adjunto el código:
Código:
int main(){
	FrameLinkCamThread ^cam=nullptr;
	SerialPort ^sp=nullptr;
	try{
		if(AllocConsole()){
			SerialPort ^sp=gcnew SerialPort("COM5",9600,Parity::None,8,StopBits::One);
			sp->Open();
		}else{
			Console::WriteLine("AllocConsole() Error");
		}
	}catch(InvalidOperationException ^ioe){
		//Sacar por pantalla...
	}catch(IO::IOException ^io){
		//Sacar por pantalla...
	}catch(ArgumentException ^ae){
		Console::WriteLine(ae->Message);
	}catch(NullReferenceException ^io){
		//Sacar por pantalla...
	}
	finally{
		if(cam!=nullptr){
			cam->destroyInstance();
		}
		if(sp!=nullptr && sp->IsOpen)
			sp->Close();
		Console::WriteLine("Press any key...");
		Console::ReadLine();
		FreeConsole();
	}
	return 0;
}

Etiquetas: puerto, serie
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.