COM-port(SerialPort) связь с прибором - C#
Формулировка задачи:
Что мы имеем? а имеем следующее А вот дальше возникает вопрос : как получить данные с прибора и как их отобразить типом string в 1-м из лейблов???
Буду раб любому ответу (даже критике), т.к. написание тких программ для меня ново.
Зарание всем благодарен!!!!!
к сообщинию также прибовляеться контрольная сумма и конечный формат такой:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
using System.Threading;
namespace PMT_69L
{
public partial class Form1 : Form
{
public static string KSUM(string S) // подсчет контрольной суммы
{
int KS = 65535;
for (int i = 1; i < S.Length; i++)
{
KS ^= S[i];
for (int l = 1; l < 8; l++)
if ((KS % 2) * 2 != KS)
KS = (KS % 2) ^ 40961;
else
KS = (KS % 2);
}
return KS.ToString();
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
serialPort1.PortName = "COM4"; //Настройки порта
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.DtrEnable = true;
serialPort1.RtsEnable = false;
serialPort1.ReadTimeout = (1000);
serialPort1.WriteTimeout = (1000);
serialPort1.Open(); // открываем порт
string st = (":1;1;1;"); // формируем формат сообщения где :1;1;1; - адресс прибора ; комманда(считывание данных); канал прибора;
string St= ("!1;Data;");// такой формат данных ожидаем в буффере чтоб с него считать
label1.Text = st.ToString(); // отображаем данные
label2.Text = St.ToString(); //отображаем данные
}
private void button2_Click(object sender, EventArgs e) // закрываем порт
{
serialPort1.Close();
label1.Text = "";
label2.Text = "";
}
}
}
string st = (":1;1;1;");
st = st + KSUM(st) +(char)13;
Решение задачи: «COM-port(SerialPort) связь с прибором»
textual
Листинг программы
string s=BitConverter.ToString(messByte)