嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
ads
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
using CRC;
using AnalysisString;
using System.Data;
using System.Data.SqlClient;
using System.Threading;
using INI;
using System.Diagnostics;
using byt_statistics;
namespace ShipLockReceiver
{
public partial class Form2 : Form
{
private static string RECEIVEDATA = "正在接收数据";
private static string STOPRECEIVE = "未接收数据";
private static string CACULATING = "正在数据计算";
private static string NOTCACULATING = "未数据计算";
private UdpClient receiveUdpClient;
Thread threadReceive;
private DataSet myDatasetD = new DataSet();
private SqlCommand cmdD = new SqlCommand();
private SqlConnection conD = new SqlConnection();
private RequestHandler handler;
UdpState udpState = new UdpState();
public Form2()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
this.ReceiveToolStripMenuItem_Click(null, EventArgs.Empty);
this.StartWaterCaculationToolStripMenuItem_Click(null, EventArgs.Empty);
}
// 检测数据库可用状态
public static bool CheckConnectionAvailableBySql(string ConnectionString)
{
SqlConnection conn = new SqlConnection(ConnectionString);
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return true;
}
catch (Exception ex) { return false; }
}
/// <summary>
/// 更新状态条
/// </summary>
private void UpdateStatusBar()
{
if (ReceiveToolStripMenuItem.Enabled)
{
toolStripStatusLabel1.Text = STOPRECEIVE;
}
else
{
toolStripStatusLabel1.Text = RECEIVEDATA;
}
if (!StartWaterCaculationToolStripMenuItem.Enabled)
{
toolStripStatusLabel2.Text = CACULATING;
}
else
{
toolStripStatusLabel2.Text = NOTCACULATING;
}
}
private void ReceiveToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
ReceiveToolStripMenuItem.Enabled = false;
StopToolStripMenuItem.Enabled = true;
UpdateStatusBar();
IPAddress localIp = IPAddress.Parse(INI.IniSet.ReadSet("localip"));
IPEndPoint localIPEndPoint = new IPEndPoint(localIp, int.Parse(INI.IniSet.ReadSet("localport")));
receiveUdpClient = new UdpClient(localIPEndPoint);
// 设置RequestHandler
conD.ConnectionString = @"data source=" INI.IniSet.ReadSet("datasource") ";integrated security=sspi;database=rdasDBbyt;";
int sleepCount = 0;
while (!CheckConnectionAvailableBySql(conD.ConnectionString))
{
Thread.Sleep(1000);
if (sleepCount > 60)
{
break;
}
}
conD.Open();
//接收线程
threadReceive = new Thread(ReceiveMessage);
threadReceive.Start();
}
catch (Exception ex)
{
Logs.addLog("Receive", ex.Message);
ReceiveToolStripMenuItem.Enabled = true;
StopToolStripMenuItem.Enabled = false;
Logs.addLog("数据库或网络无法使用,请恢复后重启程序!",ex.Message);
MessageBox.Show("数据库或网络无法使用,请恢复后重启程序!");
//Application.ExitThread();
Process[] pross = Process.GetProcessesByName("SendDataToCenter");
if (pross.Length > 0)
{
foreach (Process pro in pross)
{
pro.Kill();
}
}
pross = Process.GetProcessesByName("DataRecalculation");
if (pross.Length > 0)
{
foreach (Process pro in pross)
{
pro.Kill();
}
}
Process.GetCurrentProcess().Kill();
}
}
private void ReceiveMessage()
{
IPEndPoint remoteIPEndPoint = new IPEndPoint(IPAddress.Any, 0);
{
try
{
////异步方式
udpState.e = remoteIPEndPoint;
udpState.u = receiveUdpClient;
AsyncCallback callBack = new AsyncCallback(ReadComplete);
receiveUdpClient.BeginReceive(callBack, udpState);
}
catch (Exception ex)
{
Logs.addLog("ReceiveMessage", ex.Message);
}
}
}
/*
* 定界符:“<<<<”(起始符,4个字节),“>>>>”(结束符,4个字节),时间戳(UTC时间)占4个字节
* 机组状态数据:
* 一共八个状态,数据总长度17(8 5 4)个字节(包括CRC校验,不包括起止定界符)
* 机组发电数据:
* 一共七十六个数据,数据总长度313(76*4 5 4)个字节(包括CRC校验,不包括起止定界符)
* 机组抄表数据:
* 一共一百二十个数据,数据总长度489(120*4 5 4)个字节(包括CRC校验,不包括起止定界符)
* 水情数据:
* 一共7个数据,数据总长度37(7*4 5 4)个字节(包括CRC校验,不包括起止定界符)
*/
private void ReadComplete(IAsyncResult ar)
{
try
{
UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u;
IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e;
Byte[] receiveBytes = u.EndReceive(ar, ref e);
Thread.Sleep(100);
//MessageBox.Show(BitConverter.ToString( receiveBytes).Replace("-", "") " " receiveBytes.Length.ToString());
//在这里对接收到的数据进行处理
//
int iFrameStart = Encoding.ASCII.GetString(receiveBytes).IndexOf("<<<<");
//string xxxxx = Encoding.ASCII.GetString(receiveBytes);
//MessageBox.Show(xxxxx);
//MessageBox.Show(Encoding.ASCII.GetString(receiveBytes).Length.ToString());
int iFrameEnd = Encoding.ASCII.GetString(receiveBytes).IndexOf(">>>>");
if (iFrameStart > -1 && iFrameEnd > -1 && receiveBytes.Length == 512)
{
byte[] receivedFrame = new byte[iFrameEnd - iFrameStart - 4];
Array.Copy(receiveBytes, iFrameStart 4, receivedFrame, 0, iFrameEnd - iFrameStart - 4);
if (receivedFrame.Length > 5 && receivedFrame[0] == 0xa5)
{
DateTime timeStamp = UTCToDateTime(BitConverter.ToInt32(receivedFrame, 3));//读取时间戳
switch (receivedFrame[2])
{
//机组状态
case 0x00:
byte[] unitState = new byte[17];
Array.Copy(receivedFrame, 0, unitState, 0, 17);
if (CRC.CRC.CRC16cf(unitState, unitState.Length) == 0)
{
string timeMark = "";
if (receivedFrame[1] == 0x01)//整点数据,格式化时间
{
timeMark = timeStamp.ToString("yyyy/MM/dd HH:00:00");
}
else
{
timeMark = timeStamp.ToString();
}
if (conD.State == ConnectionState.Open)
{
cmdD.CommandText = "insert into t_UnitState values('" timeMark "',"
receivedFrame[7].ToString() ","
receivedFrame[8].ToString() ","
receivedFrame[9].ToString() ","
receivedFrame[10].ToString() ","
receivedFrame[11].ToString() ","
receivedFrame[12].ToString() ","
receivedFrame[13].ToString() ","
receivedFrame[14].ToString() ");"
;
cmdD = new SqlCommand(cmdD.CommandText, conD);
cmdD.ExecuteNonQuery();
}
}
break;
//机组发电
case 0x01:
byte[] unitPower = new byte[313];
Array.Copy(receivedFrame, 0, unitPower, 0, 313);
if (CRC.CRC.CRC16cf(unitPower, unitPower.Length) == 0)
{
string timeMark = "";
if (receivedFrame[1] == 0x01)//整点数据,格式化时间
{
timeMark = timeStamp.ToString("yyyy/MM/dd HH:00:00");
}
else
{
timeMark = timeStamp.ToString();
}
if (conD.State == ConnectionState.Open)
{
cmdD.CommandText = "insert into t_UnitPower values('" timeMark "',"
BitConverter.ToSingle(receivedFrame, 7).ToString("f2") ","
BitConverter.ToSingle(receivedFrame, 11).ToString("f2") ","
BitConverter.ToSingle(receivedFrame, 15).ToString() ","
BitConverter.ToSingle(receivedFrame, 19).ToString() ","
BitConverter.ToSingle(receivedFrame, 23).ToString() ","
BitConverter.ToSingle(receivedFrame, 27).ToString() ","
BitConverter.ToSingle(receivedFrame, 31).ToString() ","
BitConverter.ToSingle(receivedFrame, 35).ToString() ","
BitConverter.ToSingle(receivedFrame, 39).ToString() ","
BitConverter.ToSingle(receivedFrame, 43).ToString() ","
BitConverter.ToSingle(receivedFrame, 47).ToString() ","
BitConverter.ToSingle(receivedFrame, 51).ToString() ","
BitConverter.ToSingle(receivedFrame, 55).ToString() ","
BitConverter.ToSingle(receivedFrame, 59).ToString() ","
BitConverter.ToSingle(receivedFrame, 63).ToString() ","
BitConverter.ToSingle(receivedFrame, 67).ToString() ","
BitConverter.ToSingle(receivedFrame, 71).ToString() ","
BitConverter.ToSingle(receivedFrame, 75).ToString() ","
BitConverter.ToSingle(receivedFrame, 79).ToString() ","
BitConverter.ToSingle(receivedFrame, 83).ToString() ","
BitConverter.ToSingle(receivedFrame, 87).ToString() ","
BitConverter.ToSingle(receivedFrame, 91).ToString() ","
BitConverter.ToSingle(receivedFrame, 95).ToString() ","
BitConverter.ToSingle(receivedFrame, 99).ToString() ","
BitConverter.ToSingle(receivedFrame, 103).ToString() ","
BitConverter.ToSingle(receivedFrame, 107).ToString() ","
BitConverter.ToSingle(receivedFrame, 111).ToString() ","
BitConverter.ToSingle(receivedFrame, 115).ToString() ","
BitConverter.ToSingle(receivedFrame, 119).ToString() ","
BitConverter.ToSingle(receivedFrame, 123).ToString() ","
BitConverter.ToSingle(receivedFrame, 127).ToString() ","
BitConverter.ToSingle(receivedFrame, 131).ToString() ","
BitConverter.ToSingle(receivedFrame, 135).ToString() ","
BitConverter.ToSingle(receivedFrame, 139).ToString() ","
BitConverter.ToSingle(receivedFrame, 143).ToString() ","
BitConverter.ToSingle(receivedFrame, 147).ToString() ","
BitConverter.ToSingle(receivedFrame, 151).ToString() ","
BitConverter.ToSingle(receivedFrame, 155).ToString() ","
BitConverter.ToSingle(receivedFrame, 159).ToString() ","
BitConverter.ToSingle(receivedFrame, 163).ToString() ","
BitConverter.ToSingle(receivedFrame, 167).ToString() ","
BitConverter.ToSingle(receivedFrame, 171).ToString() ","
BitConverter.ToSingle(receivedFrame, 175).ToString() ","
BitConverter.ToSingle(receivedFrame, 179).ToString() ","
BitConverter.ToSingle(receivedFrame, 183).ToString() ","
BitConverter.ToSingle(receivedFrame, 187).ToString() ","
BitConverter.ToSingle(receivedFrame, 191).ToString() ","
BitConverter.ToSingle(receivedFrame, 195).ToString() ","
BitConverter.ToSingle(receivedFrame, 199).ToString() ","
BitConverter.ToSingle(receivedFrame, 203).ToString() ","
BitConverter.ToSingle(receivedFrame, 207).ToString() ","
BitConverter.ToSingle(receivedFrame, 211).ToString() ","
BitConverter.ToSingle(receivedFrame, 215).ToString() ","
BitConverter.ToSingle(receivedFrame, 219).ToString() ","
BitConverter.ToSingle(receivedFrame, 223).ToString() ","
BitConverter.ToSingle(receivedFrame, 227).ToString() ","
BitConverter.ToSingle(receivedFrame, 231).ToString() ","
BitConverter.ToSingle(receivedFrame, 235).ToString() ","
BitConverter.ToSingle(receivedFrame, 239).ToString() ","
BitConverter.ToSingle(receivedFrame, 243).ToString() ","
BitConverter.ToSingle(receivedFrame, 247).ToString() ","
BitConverter.ToSingle(receivedFrame, 251).ToString() ","
BitConverter.ToSingle(receivedFrame, 255).ToString() ","
BitConverter.ToSingle(receivedFrame, 259).ToString() ","
BitConverter.ToSingle(receivedFrame, 263).ToString() ","
BitConverter.ToSingle(receivedFrame, 267).ToString() ","
BitConverter.ToSingle(receivedFrame, 271).ToString() ","
BitConverter.ToSingle(receivedFrame, 275).ToString() ","
BitConverter.ToSingle(receivedFrame, 279).ToString() ","
BitConverter.ToSingle(receivedFrame, 283).ToString() ","
BitConverter.ToSingle(receivedFrame, 287).ToString() ","
BitConverter.ToSingle(receivedFrame, 291).ToString() ","
BitConverter.ToSingle(receivedFrame, 295).ToString() ","
BitConverter.ToSingle(receivedFrame, 299).ToString() ","
BitConverter.ToSingle(receivedFrame, 303).ToString() ","
BitConverter.ToSingle(receivedFrame, 307).ToString() ");"
;
cmdD = new SqlCommand(cmdD.CommandText, conD);
cmdD.ExecuteNonQuery();
}
}
break;
//机组抄表
case 0x02:
byte[] unitPowerRead = new byte[489];
Array.Copy(receivedFrame, 0, unitPowerRead, 0, 489);
if (CRC.CRC.CRC16cf(unitPowerRead, unitPowerRead.Length) == 0)
{
string timeMark = "";
if (receivedFrame[1] == 0x01)//整点数据,格式化时间
{
timeMark = timeStamp.ToString("yyyy/MM/dd HH:00:00");
}
else
{
timeMark = timeStamp.ToString();
}
if (conD.State == ConnectionState.Open)
{
cmdD.CommandText = "insert into t_UnitPowerRead values('" timeMark "',"
BitConverter.ToSingle(receivedFrame, 7).ToString() ","
BitConverter.ToSingle(receivedFrame, 11).ToString() ","
BitConverter.ToSingle(receivedFrame, 15).ToString() ","
BitConverter.ToSingle(receivedFrame, 19).ToString() ","
BitConverter.ToSingle(receivedFrame, 23).ToString() ","
BitConverter.ToSingle(receivedFrame, 27).ToString() ","
BitConverter.ToSingle(receivedFrame, 31).ToString() ","
BitConverter.ToSingle(receivedFrame, 35).ToString() ","
BitConverter.ToSingle(receivedFrame, 39).ToString() ","
BitConverter.ToSingle(receivedFrame, 43).ToString() ","
BitConverter.ToSingle(receivedFrame, 47).ToString() ","
BitConverter.ToSingle(receivedFrame, 51).ToString() ","
BitConverter.ToSingle(receivedFrame, 55).ToString() ","
BitConverter.ToSingle(receivedFrame, 59).ToString() ","
BitConverter.ToSingle(receivedFrame, 63).ToString() ","
BitConverter.ToSingle(receivedFrame, 67).ToString() ","
BitConverter.ToSingle(receivedFrame, 71).ToString() ","
BitConverter.ToSingle(receivedFrame, 75).ToString() ","
BitConverter.ToSingle(receivedFrame, 79).ToString() ","
BitConverter.ToSingle(receivedFrame, 83).ToString() ","
BitConverter.ToSingle(receivedFrame, 87).ToString() ","
BitConverter.ToSingle(receivedFrame, 91).ToString() ","
BitConverter.ToSingle(receivedFrame, 95).ToString() ","
BitConverter.ToSingle(receivedFrame, 99).ToString() ","
BitConverter.ToSingle(receivedFrame, 103).ToString() ","
BitConverter.ToSingle(receivedFrame, 107).ToString() ","
BitConverter.ToSingle(receivedFrame, 111).ToString() ","
BitConverter.ToSingle(receivedFrame, 115).ToString() ","
BitConverter.ToSingle(receivedFrame, 119).ToString() ","
BitConverter.ToSingle(receivedFrame, 123).ToString() ","
BitConverter.ToSingle(receivedFrame, 127).ToString() ","
BitConverter.ToSingle(receivedFrame, 131).ToString() ","
BitConverter.ToSingle(receivedFrame, 135).ToString() ","
BitConverter.ToSingle(receivedFrame, 139).ToString() ","
BitConverter.ToSingle(receivedFrame, 143).ToString() ","
BitConverter.ToSingle(receivedFrame, 147).ToString() ","
BitConverter.ToSingle(receivedFrame, 151).ToString() ","
BitConverter.ToSingle(receivedFrame, 155).ToString() ","
BitConverter.ToSingle(receivedFrame, 159).ToString() ","
BitConverter.ToSingle(receivedFrame, 163).ToString() ","
BitConverter.ToSingle(receivedFrame, 167).ToString() ","
BitConverter.ToSingle(receivedFrame, 171).ToString() ","
BitConverter.ToSingle(receivedFrame, 175).ToString() ","
BitConverter.ToSingle(receivedFrame, 179).ToString() ","
BitConverter.ToSingle(receivedFrame, 183).ToString() ","
BitConverter.ToSingle(receivedFrame, 187).ToString() ","
BitConverter.ToSingle(receivedFrame, 191).ToString() ","
BitConverter.ToSingle(receivedFrame, 195).ToString() ","
BitConverter.ToSingle(receivedFrame, 199).ToString() ","
BitConverter.ToSingle(receivedFrame, 203).ToString() ","
BitConverter.ToSingle(receivedFrame, 207).ToString() ","
BitConverter.ToSingle(receivedFrame, 211).ToString() ","
BitConverter.ToSingle(receivedFrame, 215).ToString() ","
BitConverter.ToSingle(receivedFrame, 219).ToString() ","
BitConverter.ToSingle(receivedFrame, 223).ToString() ","
BitConverter.ToSingle(receivedFrame, 227).ToString() ","
BitConverter.ToSingle(receivedFrame, 231).ToString() ","
BitConverter.ToSingle(receivedFrame, 235).ToString() ","
BitConverter.ToSingle(receivedFrame, 239).ToString() ","
BitConverter.ToSingle(receivedFrame, 243).ToString() ","
BitConverter.ToSingle(receivedFrame, 247).ToString() ","
BitConverter.ToSingle(receivedFrame, 251).ToString() ","
BitConverter.ToSingle(receivedFrame, 255).ToString() ","
BitConverter.ToSingle(receivedFrame, 259).ToString() ","
BitConverter.ToSingle(receivedFrame, 263).ToString() ","
BitConverter.ToSingle(receivedFrame, 267).ToString() ","
BitConverter.ToSingle(receivedFrame, 271).ToString() ","
BitConverter.ToSingle(receivedFrame, 275).ToString() ","
BitConverter.ToSingle(receivedFrame, 279).ToString() ","
BitConverter.ToSingle(receivedFrame, 283).ToString() ","
BitConverter.ToSingle(receivedFrame, 287).ToString() ","
BitConverter.ToSingle(receivedFrame, 291).ToString() ","
BitConverter.ToSingle(receivedFrame, 295).ToString() ","
BitConverter.ToSingle(receivedFrame, 299).ToString() ","
BitConverter.ToSingle(receivedFrame, 303).ToString() ","
BitConverter.ToSingle(receivedFrame, 307).ToString() ","
BitConverter.ToSingle(receivedFrame, 311).ToString() ","
BitConverter.ToSingle(receivedFrame, 315).ToString() ","
BitConverter.ToSingle(receivedFrame, 319).ToString() ","
BitConverter.ToSingle(receivedFrame, 323).ToString() ","
BitConverter.ToSingle(receivedFrame, 327).ToString() ","
BitConverter.ToSingle(receivedFrame, 331).ToString() ","
BitConverter.ToSingle(receivedFrame, 335).ToString() ","
BitConverter.ToSingle(receivedFrame, 339).ToString() ","
BitConverter.ToSingle(receivedFrame, 343).ToString() ","
BitConverter.ToSingle(receivedFrame, 347).ToString() ","
BitConverter.ToSingle(receivedFrame, 351).ToString() ","
BitConverter.ToSingle(receivedFrame, 355).ToString() ","
BitConverter.ToSingle(receivedFrame, 359).ToString() ","
BitConverter.ToSingle(receivedFrame, 363).ToString() ","
BitConverter.ToSingle(receivedFrame, 367).ToString() ","
BitConverter.ToSingle(receivedFrame, 371).ToString() ","
BitConverter.ToSingle(receivedFrame, 375).ToString() ","
BitConverter.ToSingle(receivedFrame, 379).ToString() ","
BitConverter.ToSingle(receivedFrame, 383).ToString() ","
BitConverter.ToSingle(receivedFrame, 387).ToString() ","
BitConverter.ToSingle(receivedFrame, 391).ToString() ","
BitConverter.ToSingle(receivedFrame, 395).ToString() ","
BitConverter.ToSingle(receivedFrame, 399).ToString() ","
BitConverter.ToSingle(receivedFrame, 403).ToString() ","
BitConverter.ToSingle(receivedFrame, 407).ToString() ","
BitConverter.ToSingle(receivedFrame, 411).ToString() ","
BitConverter.ToSingle(receivedFrame, 415).ToString() ","
BitConverter.ToSingle(receivedFrame, 419).ToString() ","
BitConverter.ToSingle(receivedFrame, 423).ToString() ","
BitConverter.ToSingle(receivedFrame, 427).ToString() ","
BitConverter.ToSingle(receivedFrame, 431).ToString() ","
BitConverter.ToSingle(receivedFrame, 435).ToString() ","
BitConverter.ToSingle(receivedFrame, 439).ToString() ","
BitConverter.ToSingle(receivedFrame, 443).ToString() ","
BitConverter.ToSingle(receivedFrame, 447).ToString() ","
BitConverter.ToSingle(receivedFrame, 451).ToString() ","
BitConverter.ToSingle(receivedFrame, 455).ToString() ","
BitConverter.ToSingle(receivedFrame, 459).ToString() ","
BitConverter.ToSingle(receivedFrame, 463).ToString() ","
BitConverter.ToSingle(receivedFrame, 467).ToString() ","
BitConverter.ToSingle(receivedFrame, 471).ToString() ","
BitConverter.ToSingle(receivedFrame, 475).ToString() ","
BitConverter.ToSingle(receivedFrame, 479).ToString() ","
BitConverter.ToSingle(receivedFrame, 483).ToString() ");"
;
cmdD = new SqlCommand(cmdD.CommandText, conD);
cmdD.ExecuteNonQuery();
}
}
break;
//水情数据
case 0x03:
byte[] water = new byte[37];
Array.Copy(receivedFrame, 0, water, 0, 37);
if (CRC.CRC.CRC16cf(water, water.Length) == 0)
{
string timeMark = "";
if (receivedFrame[1] == 0x01)//整点数据,格式化时间
{
timeMark = timeStamp.ToString("yyyy/MM/dd HH:00:00");
}
else
{
timeMark = timeStamp.ToString();
}
if (conD.State == ConnectionState.Open)
{
cmdD.CommandText = "insert into t_Water values('" timeMark "',"
BitConverter.ToSingle(receivedFrame, 7).ToString() ","
BitConverter.ToSingle(receivedFrame, 11).ToString() ","
BitConverter.ToSingle(receivedFrame, 15).ToString() ","
BitConverter.ToSingle(receivedFrame, 19).ToString() ","
BitConverter.ToSingle(receivedFrame, 23).ToString() ","
BitConverter.ToSingle(receivedFrame, 27).ToString() ","
BitConverter.ToSingle(receivedFrame, 31).ToString() ");"
;
cmdD = new SqlCommand(cmdD.CommandText, conD);
cmdD.ExecuteNonQuery();
}
}
break;
default:
break;
}//end switch
}//end if
}//end if
}//end try
catch (Exception ex)
{
Logs.addLog("接收数据完成", ex.Message);
}
try
{
if (receiveUdpClient != null)
{
AsyncCallback callBack = new AsyncCallback(ReadComplete);
receiveUdpClient.BeginReceive(callBack, udpState);
}
}
catch (Exception ex)
{
Logs.addLog("udp监听出错", ex.Message);
}
}
private void StopToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
ReceiveToolStripMenuItem.Enabled = true;
StopToolStripMenuItem.Enabled = false;
threadReceive.Abort();
conD.Close();
receiveUdpClient.Close();
}
catch (Exception ex)
{
//关闭线程异常
//MessageBox.Show("线程异常,请重新启动!");
this.Close();
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
if (threadReceive.IsAlive)
{
threadReceive.Abort();
}
}
catch (Exception ex)
{ }
}
private void SetToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
Set set = new Set();
set.Show();
}
catch (Exception ex)
{
}
}
private void StartWaterCaculationToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
StartWaterCaculationToolStripMenuItem.Enabled = false;
UpdateStatusBar();
WaterCaculationBYT wcbyt = new WaterCaculationBYT();
wcbyt.SetTimers();
wcbyt.StartTimers();
MonthStatistics ms = new MonthStatistics("sa", INI.IniSet.ReadSet("pwd"));
YearStatistics ys = new YearStatistics("sa", INI.IniSet.ReadSet("pwd"));
ms.monthStatisticsStart(300000);
ys.YearStatisticsStart(300000);
//复制历史数据
addHistoricalData ahd = new addHistoricalData(3600000);
ahd.timStart();
//复制闸门数据
TempGate tg = new TempGate();
tg.startTime();
}
catch (Exception ex)
{
Logs.addLog("StartWaterCaculation", ex.Message);
StartWaterCaculationToolStripMenuItem.Enabled = true;
}
}
/// <summary>
/// 测试连接字符串
/// </summary>
/// <param name="ConnectionString"></param>
/// <returns></returns>
public static bool TestConnection(string ConnectionString)
{
bool result = true;
SqlConnection m_myConnection = new SqlConnection(ConnectionString);
try
{
m_myConnection.Open();
return result;
}
catch
{
result = false;
return result;
}
finally
{
m_myConnection.Close();
}
}
/// <summary>
/// 延时函数
/// </summary>
/// <param name="delayTime">需要延时多少秒</param>
/// <returns></returns>
public static bool Delay(int delayTime)
{
DateTime now = DateTime.Now;
int s;
do
{
TimeSpan spand = DateTime.Now - now;
s = spand.Seconds;
//Application.DoEvents();
}
while (s < delayTime);
return true;
}
//转换为UTC时间(从1970年1月1日开始,国际时间相差8小时)
private static Int32 DateTimeToUTC(DateTime dt)
{
DateTime dateNow = dt.AddHours(-8);
DateTime st = new DateTime(1970, 01, 01, 00, 00, 00);
TimeSpan interval = dateNow - st;
Int32 t = (((interval.Days * 24 interval.Hours) * 60) interval.Minutes) * 60 interval.Seconds;
return t;
}
//UTC时间转为现实时间
private static DateTime UTCToDateTime(Int32 utc)
{
DateTime dtZone = new DateTime(1970, 1, 1, 0, 0, 0);
dtZone = dtZone.AddSeconds(utc);
return dtZone.ToLocalTime();
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
class UdpState
{
public UdpClient u;
public IPEndPoint e;
}
}