private void bw_DoWork(object sender, DoWorkEventArgs e) { bool exit = false; e.Result = false; CMDRevBLL cmdRevBLL = new CMDRevBLL(); CMDSend cmdSend = new CMDSend(); int id; if (!string.IsNullOrEmpty(hostInfo.Addr) && int.TryParse(hostInfo.Addr, out id)) { cmdSend.GUID = Guid.NewGuid().ToString(); cmdSend.Addr = hostInfo.Addr; cmdSend.Content = $"{id} 召测全部"; cmdSend.ContentType = (int)CMDType.RecruitAllCMD; cmdSend.CreateDate = DateTime.Now; cmdSend.ID = hostInfo.IDID; cmdSend.UpdateDate = cmdSend.CreateDate; cmdSend.State = (int)CMDState.NO; Debug.WriteLine("开始往数据库中写入命令"); { if (new CMDSendBLL().Add(cmdSend)) { timeout = defaultTimeout; Debug.WriteLine("写入服务器命令成功"); } else { return; } } while (true) { if (bw.CancellationPending == true || timeout == 0) { e.Cancel = true; break; } switch ((CMDType)(cmdSend.ContentType)) { case CMDType.RecruitAllCMD: { try { Debug.WriteLine("查询服务器返回的值"); List <CMDRev> result = cmdRevBLL.GetModelByIDAndTime(cmdSend.ID, (int)CMDType.RecruitAllRev, -60, (int)CMDState.NO); if (result != null && result.Count > 0) { string strContent = result[0].Content; if (string.IsNullOrWhiteSpace(strContent)) { Debug.WriteLine("命令执行失败"); // 命令失败 bw.ReportProgress(99, strContent); exit = true; } else { Debug.WriteLine("命令执行成功"); // 命令成功 bw.ReportProgress(100, strContent); exit = true; e.Result = true; Thread.Sleep(2000); } result[0].State = (int)CMDState.Yes; result[0].UpdateDate = DateTime.Now; cmdRevBLL.Update(result[0]); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } } break; default: break; } if (exit == true) { break; } timeout--; bw.ReportProgress(timeout, null); Thread.Sleep(1000); } } }
private void bw_DoWork(object sender, DoWorkEventArgs e) { bool exit = false; e.Result = false; CMDRevBLL cmdRevBLL = new CMDRevBLL(); CMDSend cmdSend = new CMDSend(); int id; if (!string.IsNullOrEmpty(hostInfo.Addr) && int.TryParse(hostInfo.Addr, out id)) { cmdSend.GUID = Guid.NewGuid().ToString(); cmdSend.Addr = hostInfo.Addr; cmdSend.Content = HexHelper.ByteArrayToHexString(ProtocolManage.LightGPRSProtocol.IntervalSyncCMD(id, start, len, count)); cmdSend.ContentType = (int)CMDType.InterSetCMD; cmdSend.CreateDate = DateTime.Now; cmdSend.ID = hostInfo.IDID; cmdSend.UpdateDate = cmdSend.CreateDate; cmdSend.State = (int)CMDState.NO; Debug.WriteLine("开始往数据库中写入命令"); { if (new CMDSendBLL().Add(cmdSend)) { timeout = defaultTimeout; Debug.WriteLine("写入服务器命令成功"); } else { return; } } while (true) { if (bw.CancellationPending == true || timeout == 0) { e.Cancel = true; break; } switch ((CMDType)(cmdSend.ContentType)) { case CMDType.InterSetCMD: { try { Debug.WriteLine("查询服务器返回的值"); List <CMDRev> result = cmdRevBLL.GetModelByIDAndTime(cmdSend.ID, (byte)CMDType.InterSetRev, -60, (int)CMDState.NO); if (result != null && result.Count > 0) { string[] strContent = result[0].Content.Split(' '); if (strContent.Length == 3) { if (int.Parse(strContent[2]) == 1) { Debug.WriteLine("命令执行成功"); // 命令成功 bw.ReportProgress(100, true); exit = true; e.Result = true; Thread.Sleep(2000); } else { Debug.WriteLine("命令执行失败"); // 命令失败 bw.ReportProgress(99, false); exit = true; } result[0].State = (int)CMDState.Yes; result[0].UpdateDate = DateTime.Now; cmdRevBLL.Update(result[0]); } } } catch (Exception ex) { Debug.WriteLine(ex.Message); } } break; default: break; } if (exit == true) { break; } timeout--; bw.ReportProgress(timeout, null); Thread.Sleep(1000); } } }
void bw_DoWork(object sender, DoWorkEventArgs e) { bool exit = false; e.Result = false; CMDRevBLL cmdRevBLL = new CMDRevBLL(); Debug.WriteLine("开始往数据库中写入命令"); { if (new CMDSendBLL().Add(cmdSend)) { timeout = defaultTimeout; Debug.WriteLine("写入服务器命令成功"); } else { return; } } while (true) { if (bw.CancellationPending == true || timeout == 0) { e.Cancel = true; break; } switch ((CMDType)(cmdSend.ContentType)) { case CMDType.TimeSyncCMD: { try { Debug.WriteLine("查询服务器返回的值"); List <CMDRev> result = cmdRevBLL.GetModelByIDAndTime(cmdSend.ID, (byte)CMDType.TimeSyncRev, -60, (int)CMDState.NO); if (result != null && result.Count > 0) { string[] strContent = result[0].Content.Split(' '); if (strContent.Length == 3) { if (int.Parse(strContent[2]) == 1) { Debug.WriteLine("命令执行成功"); // 命令成功 bw.ReportProgress(100, true); exit = true; e.Result = true; Thread.Sleep(2000); } else { Debug.WriteLine("命令执行失败"); // 命令失败 bw.ReportProgress(99, false); exit = true; } result[0].State = (int)CMDState.Yes; result[0].UpdateDate = DateTime.Now; cmdRevBLL.Update(result[0]); } } } catch (Exception ex) { Debug.WriteLine(ex.Message); } } break; case CMDType.InterSetCMD: { try { Debug.WriteLine("查询服务器返回的值"); List <CMDRev> result = cmdRevBLL.GetModelByIDAndTime(cmdSend.ID, (byte)CMDType.InterSetRev, -60, (int)CMDState.NO); if (result != null && result.Count > 0) { string[] strContent = result[0].Content.Split(' '); if (strContent.Length == 3) { if (int.Parse(strContent[2]) == 1) { Debug.WriteLine("命令执行成功"); // 命令成功 bw.ReportProgress(100, true); exit = true; e.Result = true; Thread.Sleep(2000); } else { Debug.WriteLine("命令执行失败"); // 命令失败 bw.ReportProgress(99, false); exit = true; } result[0].State = (int)CMDState.Yes; result[0].UpdateDate = DateTime.Now; cmdRevBLL.Update(result[0]); } } } catch (Exception ex) { Debug.WriteLine(ex.Message); } } break; default: break; } if (exit == true) { break; } timeout--; bw.ReportProgress(timeout, null); Thread.Sleep(1000); } }