[ Dadamce @ 13.12.2005. 07:32 ] @
Posto sam nedavno instalirao vs 2005 pokusao sam da prepravim nesto sto sam davno radio, doduse u C- u. Imam potrebu da nesto posaljem na COM port i da primim odgovor. Video sam da je to moguce pomocu klase IO.Ports u .NET-u 2. Uspeo sam da upisem bajtove na port ali nesto ne funkcionise preijem. Evo prilozicu kod pa ako neko moze da mi objasni, inace sam pocetnik u C#. Bio bih jako zahvalan ukoliko bi mi neko pomogao. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace ProbaPorta { public partial class Form1 : Form { private SerialPort sp = new SerialPort("COM1", 4800, Parity.None, 8, StopBits.One); public Form1() { InitializeComponent(); sp.ReadBufferSize = 4096; //sp.DataReceived+= new SerialDataReceivedEventHandler(port_DataReceived); } private void button1_Click(object sender, EventArgs e) { char[] at = "AT".ToCharArray(); int i = 0, brc = at.Length ; byte[] niz=new byte[brc]; while (i < (brc-1)) { niz = Convert.ToByte(at); i++; } niz[brc-1] = 0x0D; sp.Open(); sp.Write(niz,0,brc); //Dovde mi funkcionise i kada upise na modemski COM AT ja treba da dobijem odgovor OK koji zelim da prikazem u text boxu sp.DataReceived+= new SerialDataReceivedEventHandler(port_DataReceived); } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { int bytes = sp.BytesToRead; byte[] buffers = new byte[bytes]; sp.Read(buffers, 0, bytes); //Ovo ispod zakomentarisano sam probao jer sam nasao na microsoftovoj stranici da to funkcionise ali meni ne polazi za rukom /*txtData.Text = txtData.Text+sp.ReadExisting(); MessageBox.Show(sp.ReadExisting().ToString());*/ } } } Stvarno mi nije jasno zasto mi to ne funkcionise ?? Unapred zahvalan na pomoci!! |