private void Control_central_ControllerCommStatusChanged(object sender, CommProgressReportArg e) { switch (e.Progress) { case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.Finish: /* 获取治疗带使用时间 */ this.CureBandServiceTime = control_central.BoardInfo.CureBandServiceTime[this.Channel]; /* 获取治疗带状态 */ // 如果使用时间达到最大值,则标记为过期 if (this.CureBandServiceTime >= CPublicVariables.Configuration.MaxCureBandServieTime && !bgw_cure.IsBusy) { this.CureBandState = ENUM_STATE.Overdue; } else { this.CureBandState = control_central.BoardInfo.State[this.Channel]; } /* 显示实时温度 */ if (this.CureBandState == ENUM_STATE.Standby || this.CureBandState == ENUM_STATE.Curing || this.CureBandState == ENUM_STATE.Heating) { this.RealtimeTemperature = control_central.BoardInfo.Temperature[this.Channel]; } else { this.realtime_temperature = 0.0; } break; case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.PortOpened: /* * 产生PortOpened事件有两种情况: * 1、程序启动 * 2、通讯中断后重新恢复连接 * 如果出现第二种情况,可能是控制板断电或者其它情况造成的重启,此时需要根据PC端记录的状态恢复每个通道的工作状态, * 因此这里向每个通道重新写入控制信息 */ if (this.CureAction == ENUM_ACTION.Started || this.CureAction == ENUM_ACTION.Paused) { control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.Start, this.Channel, 0)); control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.SetTemper, this.Channel, this.PresetTemperatureInCurrentStage)); } else { control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.Stop, this.Channel, 0)); } break; } }
private void Control_central_ControllerCommStatusChanged(object sender, CommProgressReportArg e) { switch (e.Progress) { case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.Finish: /* 获取治疗带使用时间 */ this.CureBandServiceTime = control_central.BoardInfo.CureBandServiceTime[this.Channel]; /* 获取治疗带状态 */ // 如果使用时间达到最大值,则标记为过期 if (this.CureBandServiceTime >= CPublicVariables.Configuration.MaxCureBandServieTime && !bgw_cure.IsBusy) this.CureBandState = ENUM_STATE.Overdue; else this.CureBandState = control_central.BoardInfo.State[this.Channel]; /* 显示实时温度 */ if (this.CureBandState == ENUM_STATE.Standby || this.CureBandState == ENUM_STATE.Curing || this.CureBandState == ENUM_STATE.Heating) this.RealtimeTemperature = control_central.BoardInfo.Temperature[this.Channel]; else this.realtime_temperature = 0.0; break; case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.PortOpened: /* * 产生PortOpened事件有两种情况: * 1、程序启动 * 2、通讯中断后重新恢复连接 * 如果出现第二种情况,可能是控制板断电或者其它情况造成的重启,此时需要根据PC端记录的状态恢复每个通道的工作状态, * 因此这里向每个通道重新写入控制信息 */ if (this.CureAction == ENUM_ACTION.Started || this.CureAction == ENUM_ACTION.Paused) { control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.Start, this.Channel, 0)); control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.SetTemper, this.Channel, this.PresetTemperatureInCurrentStage)); } else { control_central.SetControllerWorks(new CCommandQueueItem(CCommandQueueItem.ENUM_CMD.Stop, this.Channel, 0)); } break; } }
/// <summary> /// 通讯状态改变引发的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Control_central_ControllerCommStatusChanged(object sender, CommProgressReportArg e) { switch(e.Progress) { case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.PortOpening: txt_CommErrInfo.Text = e.Info; break; case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.Err: if (brd_CommErr.Visibility == Visibility.Hidden) brd_CommErr.Visibility = Visibility.Visible; txt_CommErrInfo.Text = e.Info; break; case CommProgressReportArg.ENUM_COMM_EVENT_TYPE.Finish: if (brd_CommErr.Visibility == Visibility.Visible) brd_CommErr.Visibility = Visibility.Hidden; break; } }