當前位置:編程學習大全網 - 編程語言 - 通過C#編程怎麽實現來自計算機串口的數據在數據庫SQL裏的實時更新? 求代碼、嚴重求指導!!!

通過C#編程怎麽實現來自計算機串口的數據在數據庫SQL裏的實時更新? 求代碼、嚴重求指導!!!

讀串口啊 解析串口反饋的消息啊 然後存進去麽 這是我的程序中的代碼 妳可以參考下

private void srlptMain_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

{

try

{

byte[] result = new byte[64];

srlptMain.Read(result, 0, 8);

Thread.Sleep(100);

srlptMain.Read(result, 8, 7);

/* 1.拆分命令,分成變送器名稱,數據組,*/

String tmp_Name = NameFormating(result[0].ToString("X"));

String tmp_Pressure = NameFormating(result[3].ToString("X")) + NameFormating(result[4].ToString("X"));

String tmp_Density = NameFormating(result[5].ToString("X")) + NameFormating(result[6].ToString("X"));

String tmp_Celcius = NameFormating(result[7].ToString("X")) + NameFormating(result[8].ToString("X"));

/* 2.運算校驗碼*/

byte[] tmp_CRC = new byte[13];

Array.Copy(result, 0, tmp_CRC, 0, 13);

byte[] CRC = AssistTool.CalculateCrc16(tmp_CRC);

if (CRC[0] == result[13] && CRC[1] == result[14])

{

using (var connection = new piezometerEntities(frm.ServerName, frm.LoginId, frm.LoginPwd))

{

var tmp_Group = from p in connection.piezometers where p.Name == tmp_Name select new { GroupId = p.formset.Id, piezometerId = p.Id };

//繪圖方法,參數為組名稱,設備名稱,三組數據

String gid = tmp_Group.FirstOrDefault().GroupId.ToString();

String pid = tmp_Group.FirstOrDefault().piezometerId.ToString();

Chart pieChart = (Chart)tabMain.TabPages[gid].Controls["Pie_" + gid];

Chart mChart = (Chart)tabMain.TabPages[gid].Controls["midu_" + gid];

Chart wChart = (Chart)tabMain.TabPages[gid].Controls["wendu_" + gid];

DateTime saveTime = DateTime.Now;

ThreadDelegate threadDelegate = new ThreadDelegate(DrawLine);

this.Invoke(threadDelegate, new Object[] { pieChart, wChart,

mChart, pid, gid, tmp_Pressure, tmp_Celcius, tmp_Density,

saveTime, tmp_Name });

//存儲

warning w = new warning();

w.Type = 1;

w.Time = saveTime;

w.PID = tmp_Group.FirstOrDefault().piezometerId;

w.Celsius = Convert.ToInt32(tmp_Celcius, 16) / 10.0d;

w.Density = Convert.ToInt32(tmp_Density, 16);

w.Pressure = Convert.ToInt32(tmp_Pressure, 16);

dataSaver.Save(w, select_sound, select_value);

}

}

srlptMain.DiscardInBuffer();

srlptMain.DiscardOutBuffer();

}

catch (Exception)

{

//throw;

}

  • 上一篇:用“思維導圖”發現新的世界
  • 下一篇:大學生應怎樣合理安排假期時間?
  • copyright 2024編程學習大全網