PDA

View Full Version : حرفه ای: دریافت اطلاعات از ترازو پند Px3000



saied7468
جمعه 08 شهریور 1392, 15:05 عصر
سلام
من برای بخشی از برنامم باید وزن رو از ترازو بگیرم . توی اینترنت که گشتم کد هایی برای این کار پیدا کردم الان با کد های زیر به پورت com وصل می شم و اطلاعات هم می گیرم مشکل اینجاست که اطلاعاتی که می گیرم به صورت نامفهوم برام ارسال می شه یعنی توی تکست باکسم یه دونه علامت سوال می یاد وقتی هم که طول رشته دریافتی رو چک می کنم می بینم طولش بین 6 تا 12 متفاوت هست اما فقط با یه علامت سوال نشون داده می شه .
اگه دوستان بتونن منو راهنمایی کنن ممنون می شم.
تصویر برنامه ای که برای اتصال به ترازو ساختم و دفترچه راهنمای ترازو رو هم ضمیمه کردم اطلاعات مربوط به اتصال ترازو به رایانه صفحه 12 دفترچه راهنما هست .

دکمه connect

private void button1_Click(object sender, EventArgs e)
{

try
{


mySerialPort.PortName = comboBox1.Text;
mySerialPort.BaudRate = 9600;
mySerialPort.DataBits = 8;
mySerialPort.Parity = System.IO.Ports.Parity.None;
mySerialPort.Handshake = System.IO.Ports.Handshake.None;
mySerialPort.RtsEnable = true;
mySerialPort.Encoding = Encoding.ASCII;


mySerialPort.Open();
mySerialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Dat aReceived);

if (mySerialPort.IsOpen)
{
MessageBox.Show("connected");
}


}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}



تابع دریافت دیتا

private void DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
System.IO.Ports.SerialPort sp = (System.IO.Ports.SerialPort)sender;
string indata = sp.ReadExisting();

textBox1.Text = indata;
textBox2.Text = indata.Length.ToString();

if (indata != "")
label1.Text = "exist";
else
label1.Text = "not exist";


if (indata.Length > 6)
textBox3.Text = indata;


}

109938

saied7468
شنبه 09 شهریور 1392, 16:59 عصر
از اساتید کسی تا حالا با ترازو کار نکرده ؟!