Example #1
0
        } // GetDvbStpClientSegmentInfoList

        private void Deserialize()
        {
            if (Request.AvoidDeserialization)
            {
                return;
            }
            Worker.ReportProgress(999);

            foreach (var payload in Request.Payloads)
            {
                if (payload.XmlType != null)
                {
                    payload.XmlDeserializedData = UiDvbStpSimpleDownloadResponse.ParsePayload(payload.XmlType,
                                                                                              payload.Data,
                                                                                              payload.PayloadId,
                                                                                              !Request.AllowXmlExtraWhitespace,
                                                                                              Request.XmlNamespaceReplacer);
                } // if

                if (!Request.KeepRawData)
                {
                    payload.Data = null;
                } // if
            }     // foreach
        }         // Deserialize
Example #2
0
        } // constructor

        #region DownloadDlg events

        private void DownloadDlg_Load(object sender, EventArgs e)
        {
            if (Request == null)
            {
                throw new ArgumentNullException();
            }

            TelemetryScreenName = string.Format("{0}: {1}:{2} 0x{3:X2}", this.GetType().Name, Request.MulticastAddress, Request.MulticastPort, Request.PayloadId);

            if (!string.IsNullOrEmpty(Request.Description))
            {
                labelDownloadingPayloadName.Text = Request.Description;
            } // if
            labelDownloadSource.Text = string.Format(labelDownloadSource.Text, Request.MulticastAddress, Request.MulticastPort);
            FormatProgressPercentage = labelProgressPct.Text;
            FormatSectionProgress    = labelSectionProgress.Text;
            FormatEllapsedTime       = labelEllapsedTime.Text;
            DataReceptionSymbol      = labelDataReception.Text[0];

            labelProgressPct.Text     = null;
            labelSectionProgress.Text = null;
            labelDataReception.Text   = null;
            labelReceiving.Visible    = false;
            labelEllapsedTime.Text    = null;

            Response = new UiDvbStpSimpleDownloadResponse();
        }  // DownloadDlg_Load
Example #3
0
        } // Response

        protected override UiDvbStpBaseDownloadResponse ShowDialog(IWin32Window owner)
        {
            using (var dlg = new DvbStpSimpleDownloadDialog(Request))
            {
                dlg.ShowDialog(owner);
                TelemetryScreenName = dlg.TelemetryScreenName;
                Response            = dlg.Response;
                return(Response);
            } // using
        }     // ShowDialog
Example #4
0
        } // DisplayParsingData

        #endregion

        #region BackgroundWorker DoWork

        void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            DvbStpSimpleClient stpClient;

            byte[] payload;

            InitWorker(e);

            stpClient             = new DvbStpSimpleClient(Request.MulticastAddress, Request.MulticastPort);
            CancelDownloadRequest = stpClient.CancelRequest;
            try
            {
                stpClient.ReceiveDatagramTimeout  = Request.ReceiveDatagramTimeout;
                stpClient.NoDataTimeout           = Request.NoDataTimeout;
                stpClient.SectionReceived        += StpClient_SectionReceived;
                stpClient.PayloadSectionReceived += StpClient_PayloadSectionReceived;

                payload          = stpClient.GetPayload(Request.PayloadId, Request.SegmentId);
                Response.Version = stpClient.SegmentVersion;
                e.Result         = payload;
#if DEBUG
                if ((payload != null) && (Request.DumpToFile != null))
                {
                    File.WriteAllBytes(Request.DumpToFile, payload);
                } // if
#endif
                if ((Request.PayloadDataType != null) && (payload != null))
                {
                    Worker.ReportProgress(int.MaxValue);
                    Response.DeserializedPayloadData = UiDvbStpSimpleDownloadResponse.ParsePayload(Request.PayloadDataType, payload, Request.PayloadId, !Request.AllowXmlExtraWhitespace, Request.XmlNamespaceReplacer);
                } // if
            }
            finally
            {
                e.Cancel = Worker.CancellationPending;
                stpClient.Close();
            } // finally
        }     // Worker_DoWork