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!!
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!!