Beispiel #1
0
        /// <summary>
        /// 校准参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkGetMessage_CalibrationMessageArrived(object sender, TransmitEventArgs <TypeIdentification, APDU> e)
        {
            try
            {
                appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                              e.mdata2.APCI.ReceiveSequenceNumber);
                BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:校准参数");
                switch ((TypeIdentification)e.mdata2.ASDU.TypeId)
                {
                case TypeIdentification.P_AC_NA_1:     // 参数激活
                {
                    break;
                }

                case TypeIdentification.P_ME_NC_1:     //  测量值参数,短浮点数
                {
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "校准命令");
            }
        }
Beispiel #2
0
        /// <summary>
        /// 电能脉冲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void checkGetMessage_ElectricEnergyArrived(object sender, TransmitEventArgs <TypeIdentification, APDU> e)
        {
            try
            {
                appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                              e.mdata2.APCI.ReceiveSequenceNumber);
                BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:电能脉冲");
                switch ((TypeIdentification)e.mdata2.ASDU.TypeId)
                {
                case TypeIdentification.C_CI_NA_1:     //电能脉冲召唤
                {
                    break;
                }

                case TypeIdentification.M_IT_NA_1:     //累积量
                {
                    Action <APDU> update = UpdateElectricEnergy;
                    Dispatcher.BeginInvoke(update, e.mdata2);

                    break;
                }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "遥测命令");
            }
        }
Beispiel #3
0
        /// <summary>
        /// 遥控命令
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void checkGetMessage_TelecontrolCommandArrived(object sender, TransmitEventArgs <TypeIdentification, APDU> e)
        {
            try
            {
                var id  = (TypeIdentification)e.mdata2.ASDU.TypeId;
                var cot = (CauseOfTransmissionList)e.mdata2.ASDU.CauseOfTransmission1;
                var m   = eventTypeIDManager.GetEventProcess(id);
                if (m != null)
                {
                    m.Event.Set();
                }
                appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                              e.mdata2.APCI.ReceiveSequenceNumber);
                BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:遥控命令:");

                switch (cot)
                {
                case CauseOfTransmissionList.ActivationACK:     //激活确认
                {
                    SendSupervisoryFrame((ushort)(appMessageManager.RealReceiveSequenceNumber));

                    Action <APDU> lamp = ar => { UpdateTelecontrolState(ar); };
                    Dispatcher.BeginInvoke(lamp, e.mdata2);

                    break;
                }

                case CauseOfTransmissionList.DeactivateACK:    //停止激活确认
                {
                    break;
                }

                case CauseOfTransmissionList.ActivateTermination:    //激活终止
                {
                    break;
                }

                case CauseOfTransmissionList.Deactivate:
                {
                    break;
                }
                }



                //Action<APDU> update = UpdateTelesignalisation;
                //Dispatcher.BeginInvoke(update, e.mdata2);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "checkGetMessage_TelecontrolCommandArrived");
            }
        }
Beispiel #4
0
        /// <summary>
        /// 遥信信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void checkGetMessage_TelesignalisationMessageArrived(object sender, TransmitEventArgs <TypeIdentification, APDU> e)
        {
            try
            {
                appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                              e.mdata2.APCI.ReceiveSequenceNumber);
                BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:遥信命令:");

                Action <APDU> update = UpdateTelesignalisation;
                Dispatcher.BeginInvoke(update, e.mdata2);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "heckGetMessage_TelesignalisationMessageArrived");
            }
        }
Beispiel #5
0
        /// <summary>
        /// 文件服务
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void checkGetMessage_FileServerArrived(object sender, TransmitEventArgs <TypeIdentification, FilePacket> e)
        {
            try
            {
                appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                              e.mdata2.APCI.ReceiveSequenceNumber);
                BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:文件服务:");

                if (callDirectoryServer != null)
                {
                    callDirectoryServer.Enqueue(e.mdata2);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "checkGetMessage_FileServerArrived");
            }
        }
Beispiel #6
0
 /// <summary>
 /// 遥测命令
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void checkGetMessage_TelemeteringMessageArrived(object sender, TransmitEventArgs <TypeIdentification, APDU> e)
 {
     try
     {
         appMessageManager.UpdateReceiveSequenceNumber(e.mdata2.APCI.TransmitSequenceNumber,
                                                       e.mdata2.APCI.ReceiveSequenceNumber);
         BeginInvokeUpdateHistory(e.mdata2.FrameArray, e.mdata2.FrameArray.Length, "从站发送:I帧:遥测命令");
         //var m = eventTransmissionManager.GetEventProcess(TransmissionCotrolFunction.StartDataTransmission);
         //if (m != null)
         //{
         //    m.Event.Set();
         //}
         Action <APDU> update = UpdateTelemetering;
         Dispatcher.BeginInvoke(update, e.mdata2);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "遥测命令");
     }
 }
        private void btn_Ok_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txt_Code.Text))
            {
                MessageBox.Show("请输入编号", " 警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification);
                return;
            }

            DataTable dt = new DAL_dt_Settings().Getdt_SettingsByCode(txt_Code.Text);

            if (dt == null)
            {
                MessageBox.Show("暂未查询此编号内容", " 警告", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification);
                return;
            }

            var args = new TransmitEventArgs(dt.Rows[0]["dt_Code"].ToString(), dt.Rows[0]["info_DangH"].ToString());

            Transmit(this, args);
            this.Dispose();
        }
Beispiel #8
0
        /// <summary>
        /// S帧,监控数据到达
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkGetMessage_SupervisoryCommandArrived(object sender, TransmitEventArgs <ushort, byte[]> e)
        {
            try
            {
                //同步释放相应事件
                if (supervisoryFrameEvent != null)
                {
                    supervisoryFrameEvent.Set();
                }
                BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:S帧:接收序列号:" + e.mdata1.ToString());

                appMessageManager.AckReceiveSequenceNumber(e.mdata1);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "checkGetMessage_SupervisoryCommandArrived");
            }


            // throw new NotImplementedException();
        }
Beispiel #9
0
 /// <summary>
 /// 未知ID命令
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void checkGetMessage_UnknowMessageArrived(object sender, TransmitEventArgs <TypeIdentification, byte[]> e)
 {
     MessageBox.Show(e.mdata1.ToString(), "未识别的ID帧");
 }
Beispiel #10
0
        /// <summary>
        ///U帧 TCF传输控制功能事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkGetMessage_TransmitControlCommandArrived(
            object sender, TransmitEventArgs <TransmissionCotrolFunction, byte[]> e)
        {
            try
            {
                //同步释放相应事件
                //var m = eventTransmissionManager.GetEventProcess(e.mdata1);
                //if (m != null)
                //{
                //    m.Event.Set();
                //}


                switch (e.mdata1)
                {
                case TransmissionCotrolFunction.StartDataTransmission:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:启动数据传输STARTDT命令:");
                    break;
                }

                case TransmissionCotrolFunction.AcknowledgementStartDataTransmission:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:启动数据传输STARTDT确认:");

                    Action lamp = () => { UpdateDeviceOnlineStatusBar(true); };
                    Dispatcher.BeginInvoke(lamp);

                    var m = eventTransmissionManager.GetEventProcess(TransmissionCotrolFunction.StartDataTransmission);
                    if (m != null)
                    {
                        m.Event.Set();
                    }
                    break;
                }

                case TransmissionCotrolFunction.StopDataTransmission:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:停止数据传输STARTDT命令:");
                    break;
                }

                case TransmissionCotrolFunction.AcknowledgementStopDataTransmission:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:停止数据传输STARTDT确认:");
                    break;
                }

                case TransmissionCotrolFunction.TestFrame:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:测试帧TESTFR命令");
                    SendTCFCommand(TransmissionCotrolFunction.AcknowledgementTestFrame);
                    var m = eventTransmissionManager.GetEventProcess(TransmissionCotrolFunction.AcknowledgementTestFrame);
                    if (m != null)
                    {
                        m.Event.Set();
                    }
                    break;
                }

                case TransmissionCotrolFunction.AcknowledgementTestFrame:
                {
                    BeginInvokeUpdateHistory(e.mdata2, e.mdata2.Length, "从站发送:U帧:测试帧TESTFR确认");

                    break;
                }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "checkGetMessage_TransmitControlCommandArrive");
            }
        }