添加扫描重连功能周期1分钟

This commit is contained in:
sc committed 2024-12-08 11:26:07 +08:00
commit 549700ee2d
2 files changed
+62 -58

No files matched your search

+42 -30
View File
@@ -87,13 +87,6 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
timer1s.Tick += Tick_Event_1S;
timer1s.Start();
DispatcherTimer timer5s = new DispatcherTimer//初始化循环,每1秒调用一次Tick
{
Interval = TimeSpan.FromSeconds(5)//秒
};
timer5s.Tick += Tick_Event_5S;
timer5s.Start();
//设置定时器
DispatcherTimer disTimer = new DispatcherTimer
{
@@ -109,6 +102,18 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
dis50ms.Tick += new EventHandler(DisTimer_50MS);//每一秒执行的方法
dis50ms.Start();//计时开始
}//时间周期初始化
void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS
{
DATA_view();
}
void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS
{
if (stringQueue.Count > 0) //信息发送队列
{
QueueString t = stringQueue.Dequeue();
MachiensTcpClient[t.ID].SendAsync(t.DAT);
}
}
void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
{
Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
@@ -119,46 +124,53 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{
MachiensTcpClient[i].SendAsync("SC830"+ Selet_Machines(Machines, "SYSKEY", i).ToString());
Updata_Machines(Machines, "State", i, "101");
// DataRow dt = machinesdata[i];
//Updata_Machines(Machines, Convert.ToInt16(dt["ID"]), "State", "800");
}
}
for (int i = 0; i < Machinesdata_Count; i++)
for (int i = 0; i < Machinesdata_Count; i++)
{
string mac_s = Selet_Machines(Machines, "State", i).ToString();
if ((mac_s == "101") || (mac_s == "201") || (mac_s == "202") || (mac_s == "309"))//获取信息
{
stringQueue.Enqueue(new QueueString { ID = i, DAT = "SC830" + Selet_Machines(Machines, "SYSKEY", i).ToString() });//信息插入队列
// MachiensTcpClient[i].SendAsync("SC830" + Selet_Machines(Machines, "SYSKEY", i).ToString());
}
}
if (Time5 > 5)
{
Tick_Event_5S();
Time5 = 0;
}
else { Time5++; }
if (Time60 > 60)
{
Tick_Event_60S();
Time60= 0;
}
else { Time60++; }
}
void Tick_Event_5S(object sender, EventArgs e)//Tick_Event周期执行事件5S
{
int Time5=0,Time60;
void Tick_Event_5S()//Tick_Event周期执行事件5S
{
for (int i = 0; i < Machinesdata_Count; i++)
{
if (Selet_Machines(Machines, "State", i).ToString() == "801")
{
MachiensTcpClient[i].SendAsync("SC800:SCCM[" + MachiensTcpClient[i].IP + ";" + MachiensTcpClient[i].Port + "]");
}
}
}
}
void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS
void Tick_Event_60S()
{
DATA_view();
}
void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS
{
if (stringQueue.Count > 0) //信息发送队列
for (int i = 0; i < Machinesdata_Count; i++)
{
QueueString t= stringQueue.Dequeue();
MachiensTcpClient[t.ID].SendAsync(t.DAT);
MachiensTcpClient[i] = new TcpClient();
DataRow dt = machinesdata[i];
Updata_Machines(Machines, "State", Convert.ToInt16(dt["ID"]), "800");
_ = AsyncTcpClient.TcpClient(MachiensTcpClient[i] //建立tcp连接
, Selet_Machines(Machines, "IP", Convert.ToInt16(dt["ID"])).ToString()
, Selet_Machines(Machines, "PORT", Convert.ToInt16(dt["ID"])).ToString());
}
}
}
private SQLiteHelper SQLiteHelpers = null; //定义数据库
private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径
@@ -173,16 +185,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
CountDown();
TcpClientNEW();
SQL_LINK();
SQL_LINK();
}
public static TcpClient[] MachiensTcpClient = new TcpClient[999];
public DataRow[] machinesdata = new DataRow[999];
public int Machinesdata_Count;
public void TcpClientNEW()
{
// bool Machine_ ;
DataRow[] machinesdata = Machines.Select("PORT>0 AND IP<>''", "id asc");//获取连接有效的组
machinesdata = Machines.Select("PORT>0 AND IP<>''", "id asc");//获取连接有效的组
Machinesdata_Count = machinesdata.Count();
for (int i = 0; i < Machinesdata_Count; i++)