/// <summary> /// 主站控制命令,召唤命令 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void checkGetMessage_MasterInterrogationArrived(object sender, MasterCommmadEventArgs e) { try { appMessageManager.UpdateReceiveSequenceNumber(e.MasterCMD.APCI.TransmitSequenceNumber, e.MasterCMD.APCI.ReceiveSequenceNumber); //同步释放召唤等待 var m = eventTypeIDManager.GetEventProcess((TypeIdentification)e.MasterCMD.ASDU.TypeId); if (m != null) { m.Event.Set(); } switch ((CauseOfTransmissionList)e.MasterCMD.ASDU.CauseOfTransmission1) { case CauseOfTransmissionList.ActivationACK: { BeginInvokeUpdateHistory(e.MasterCMD.FrameArray, e.MasterCMD.FrameArray.Length, "从站发送:I帧:召唤激活确认"); break; } case CauseOfTransmissionList.ActivateTermination: { BeginInvokeUpdateHistory(e.MasterCMD.FrameArray, e.MasterCMD.FrameArray.Length, "从站发送:I帧:召唤结束"); SendSupervisoryFrame((ushort)(appMessageManager.RealReceiveSequenceNumber)); break; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "checkGetMessage_MasterInterrogationArrived"); } }
/// <summary> /// 主站控制命令,初始化命令 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void checkGetMessage_MasterInitializeArrived(object sender, MasterCommmadEventArgs e) { try { appMessageManager.UpdateReceiveSequenceNumber(e.MasterCMD.APCI.TransmitSequenceNumber, e.MasterCMD.APCI.ReceiveSequenceNumber); //同步释放相应事件 var m = eventTypeIDManager.GetEventProcess((TypeIdentification)e.MasterCMD.ASDU.TypeId); if (m != null) { m.Event.Set(); } appMessageManager.UpdateReceiveSequenceNumber(e.MasterCMD.APCI.TransmitSequenceNumber, e.MasterCMD.APCI.ReceiveSequenceNumber); BeginInvokeUpdateHistory(e.MasterCMD.FrameArray, e.MasterCMD.FrameArray.Length, "从站发送:I帧:主站初始化:"); } catch (Exception ex) { MessageBox.Show(ex.Message, "checkGetMessage_MasterInitializeArrived"); } }
/// <summary> /// 主站初始化,时间同步命令 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void checkGetMessage_MasterTimeArrived(object sender, MasterCommmadEventArgs e) { try { //同步释放相应事件 var m = eventTypeIDManager.GetEventProcess((TypeIdentification)e.MasterCMD.ASDU.TypeId); if (m != null) { m.Event.Set(); } appMessageManager.UpdateReceiveSequenceNumber(e.MasterCMD.APCI.TransmitSequenceNumber, e.MasterCMD.APCI.ReceiveSequenceNumber); BeginInvokeUpdateHistory(e.MasterCMD.FrameArray, e.MasterCMD.FrameArray.Length, "从站发送:I帧:时间同步:"); MakeLogMessage(sender, "", "时间同步应答" + e.MasterCMD.ToString(), LogType.Time); } catch (Exception ex) { MessageBox.Show(ex.Message, "checkGetMessage_MasterTimeArrived"); } }