el 05-08-2014 03:08 PM
Hola,
Estoy desarrollando una aplicación en C# que se comunica con el Agilent 8960 usando el interfaz GPIB-USB-HS y la librería NI-488.2.
La aplicación se ejecuta correctamente cuando le envía cualquier comando GPIB al equipo, excepto cuando intenta realizar una medida de BLER.
device.Write(“FETCH:BLER?”);
byte[] bRead = device.ReadByteArray();
read = Encoding.ASCII.GetString(bRead);
La primera lectura se realiza correctamente y la variable "read" recoge el siguiente valor: +0,+5.27000000E+002,+8.50094800E+001,+4.48000000E+002
Sin embargo en el resto de lecturas el dispositivo genera el siguiente mensaje y no devuelve ningún valor:
"Time limit exceeded to complete operation."
Por favor, ¿cómo podría hacer para que el dispositivo no genere ese mensaje de error y me devuelva algún valor?
Muchas gracias de antemano.
el 05-09-2014 10:45 AM
Hola,
CIertamente no tengo idea que haces, pero parece que el error que obtienes es de Timeout, googleando lei algo como que el tiempo de ejecucion de eso depende del numero de bloques o algo asi, tal vez estas tratando de pedir el valor antes de que se complete otra medición o el proceso dura mas que el timeout que tienes.
En este pdf http://cp.literature.agilent.com/litweb/pdf/1000-1859.pdf en la página 334 sale un programming example, que si no lo has visto tal vez te sirva de ayuda. Yo empezaria aumentando el timeout que sale alli a ver si funciona.
SOLUCION: Omite lo anterior, al parecer aqui alguien ya tuvo ese problema y lo soluciono ReadString() generates TimeOut message the second time its called... Al parecer tienes que escribir algo (asi sea vacio) antes de volver a leer.
Saludos,