Título: C# System.IO.Port SerialPort Publicado por: hoofmen en 1 Mayo 2006, 01:52 am Estoy haciendo una mini aplicacion en C# para hacer una consola de comandos AT para enviar a mi telefono por el puerto com, pero solo e logrado conectarme al equipo. pero este no atiene los comandos que le envio, alguien ya ah hecho esto?
public partial class Form1 : Form { private SerialPort port = new SerialPort("COM7", 96000, Parity.None, 8, StopBits.One); public Form1() { InitializeComponent(); port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(DoUpdate)); } private void DoUpdate(object s, EventArgs e) { txtLog.AppendText("----------------\n"); txtLog.AppendText(port.ReadExisting()); } private void btnConectar_Click(object sender, EventArgs e) { if (port.IsOpen == false) { try { port.Open(); txtLog.AppendText("Conectado COM7\n"); } catch (Exception oex) { MessageBox.Show(oex.ToString()); } } } private void btnDesconectar_Click(object sender, EventArgs e) { if (port.IsOpen) { port.Close(); txtLog.AppendText("Cerrada la conexion...\n"); } } private void btnEnviar_Click(object sender, EventArgs e) { try { port.WriteLine(txtCmd.Text); } catch (Exception wex) { MessageBox.Show(wex.ToString()); } } } Título: Re: C# System.IO.Port SerialPort Publicado por: Gospel en 1 Mayo 2006, 10:49 am En esta página tienes la documentación de Pocket Bluesnarfer, una herramienta para Pocket PC q hace lo mismo que tu quieres: enviar comandos AT y capturar respuestas.
http://foro.elhacker.net/index.php/topic,109187.0.html Puedes echarle un ojo al código eVC++, q se distribuye libremente. ¿Te conectas por cable de serie, por IrD, Bluetooth...?? ¿Has probado a enviar comandos AT q no requieran respuesta, por ejemplo: ATD619123456;? A lo mejor envías bien pero no capturas la respuesta adecuadamente... Por si acaso échale un ojo a mi código de Pocket Bluesnarfer, en especial, la parte en q se recibe la respuesta y se parsean los retornos de carro. Te adjunto algo de código: Código: BOOL CIrdaPort::WaitForResponse(CString& strResponse, DWORD dwTimeout) const Título: Re: C# System.IO.Port SerialPort Publicado por: hoofmen en 2 Mayo 2006, 00:09 am Hola, estaba examinando el SRC, de bluesnarfer pero al abrir el proyecto en el vEVc++ me dice que hubo un error al cargar el workspace ya que el IrdaMobile.rc(10)
fatal error RC1015: cannot open include file 'afxres.h' eso me impide cargar todo el proyecto y menos compilarlo, ademas que afxres.h no lo encuentro saludos Título: Re: C# System.IO.Port SerialPort Publicado por: Gospel en 2 Mayo 2006, 00:50 am Vaya, q extraño...
Tienes embedded Tools 3.0 y el SDK Windows Mobile 2002 instalado? Necesita esa configuración. Con EVC++ 4 no tira... Título: Re: C# System.IO.Port SerialPort Publicado por: hoofmen en 2 Mayo 2006, 05:02 am Efectivamente estoy usando SDK 2003 con eVC++ 4.0 + SP3
Gracias Gospel Título: Re: C# System.IO.Port SerialPort Publicado por: oacosta en 11 Mayo 2006, 19:24 pm si es muy sencillo
lo que pasa es q cuando ejecutas comandos AT es necesario enviarle al fin de la trama un tab y enter siempre y cuando los comandos no sean +++ (colgar la llamada) o a\ repetir comando anterior ejecutado. Te envio un metodo que cree para este fin: private void WritePortSerie(string strWrite, bool blnComandoAT) { objTxModem.ExecCommandAT = blnComandoAT; try { if (objTxModem.ExecCommandAT == true && (strWrite.Trim().Length > 0 && RS232.IsOpen)) { /*salida*/ /*************************/ RS232.DtrEnable = true; // DTR data terminal ready RS232.RtsEnable = true; // RTS request to sent /*************************/ //ejecuta comandos at if (strWrite.Trim() == "+++") RS232.Write(strWrite); else if (strWrite.Trim() == "A/") RS232.Write(strWrite); else RS232.Write(strWrite + "\r" + "\n"); //cadena enviada txtComandoEnviado.AppendText("Cadena enviada: " + strWrite.ToString().Trim() + "\n"); } else if ((strWrite.Trim().Length > 0 && RS232.IsOpen) && objTxModem.ExecCommandAT == false) { RS232.DtrEnable = true; // DTR data terminal ready RS232.RtsEnable = true; // RTS request to sent RS232.Write(strWrite); } } catch (Exception ex) { txtComandoEnviado.AppendText("--- Error--- general Escribiendo en el puerto: " + ex.Message + "\n"); } } Cordialmente, Omar Acosta oeac_llll@hotmail.com www.dyetron.com Título: Re: C# System.IO.Port SerialPort Publicado por: sebaim en 31 Mayo 2009, 00:45 am una pregunta, esto sirve para cuando el celular se conecta a un puerto usb y es reconocido como un modem??
Título: Re: C# System.IO.Port SerialPort Publicado por: SirGraham en 31 Mayo 2009, 09:14 am Hola,
Depende de como se haga el tratamiento del USB, si se virtualiza a un COM. No obstante tienes otra solucion. Si lo haces en Bluetooth y con el Stack de Microsoft, te va a vitualizar los puertos COM en el perfil del modem y lo vas hacer como si fuera un puerto serie en USB e inalambrico. ¿¿¿??? Saludos, Sir Graham. Título: Re: C# System.IO.Port SerialPort Publicado por: Jubjub en 31 Mayo 2009, 10:33 am Un pequeño detalle que a mi me sirvio cuanda andaba haciendo lo mismo, espera 4 segundos desde que estbleces la conexion hasta que empiezes a enviar datos :D
|