本人小白一个,初次使用C#,希望各位大神对小白不足之处能指点一下,O(∩_∩)O谢谢
项目需求:公司锡膏室有四台冰箱,需要对该四台冰箱的温湿度实时采集同时以曲线图方式Show到一块看板上
思路:1,需要将设备发送的数据实时存储至数据库(使用TCP通讯协议实时抓取数据)
2,将数据以曲线图方式Show至看板上(需要使用到AJAX以及强大的JS库【ECharts】})
一,实现第一个数据抓取:
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.Data.SqlClient;
using System.Data;
namespace TimeServer
{
class TimeServer
{
//private const int portNum = 13;
//[STAThread]
static void Main(string[] args)
{
TcpClient client = null;
NetworkStream stream = null;
byte[] buffer = null;
string receiveString = null;
IPAddress localIP = IPAddress.Parse("192.168.1.130");
int localPort = 9438;
TcpListener listener = new TcpListener(localIP, localPort);//用本地IP和端口实例化Listener
listener.Start();//开始监听
while (true)
{
client = listener.AcceptTcpClient();//接受一个Client
buffer = new byte[client.ReceiveBufferSize];
stream = client.GetStream();//获取网络流
stream.Read(buffer, 0, buffer.Length);//读取网络流中的数据
receiveString = Encoding.Default.GetString(buffer).Trim('\0');//转换成字符串
string WD = receiveString.Substring(43, 4);
string SD = receiveString.Substring(48, 4);
string Mdl = receiveString.Substring(22, 10);
string ZOOM = receiveString.Substring(33, 1);
string SendTime = "20" + receiveString.Substring(4, 17) + ":000";
if (Mdl == "0072916200") { Mdl = "冰箱-01"; }
//else if(Mdl == "") { Mdl = "冰箱-02"; }
//else if(Mdl == "") { Mdl = "冰箱-03"; }
//else{ Mdl = "冰箱-04";}
SqlConnection sqlcon = new SqlConnection("Data Source=****;Initial Catalog=****;User ID=***;pwd=*****");
string addx = "INSERT INTO PCA_REPORT..Temperature VALUES ('" + Mdl + "','" + WD + "','" + SD + "','" + SendTime + "',getdate(),'" + ZOOM + "')";
//string addx = "INSERT INTO PCA_REPORT.dbo.Room_Model VALUES('" + receiveString + "','Test')";
//SqlCommand sc = new SqlCommand(addx, sqlcon);
//int cc = sc.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(addx, sqlcon);
adapter.Fill(ds);
stream.Close();//关闭流
client.Close();//关闭Client
Console.WriteLine(receiveString);
}
}
}
}
1,将设备与该程式设置为同一网段IP
2,将设备IP指向与当前程式运行的IP(以上程式表明设备指向的IP是:192.168.1.130,指向端口是:9438)
设置以上后,程式就可以接受设备传输的数据了
二,实现将数据以曲线图方式Show至看板上
可跳转至:https://download.youkuaiyun.com/download/bibabu135766/10274321