コード例 #1
0
        /// <summary>
        /// Creates an instance of the required MicrowaveReceiver class
        /// </summary>
        /// <param name="config">the configuration info for the receiver</param>
        /// <returns>a microwave receiver class instance</returns>
        /// <exception cref="System.Exception">Thrown if config.ReceiverType is unrecognized</exception>
        private static MicrowaveReceiver CreateInstance(MicrowaveControlInfo config)
        {
            switch (config.ReceiverType)
            {
            case MicrowaveReceiverType.PMR_AR100:
                return(new PMR_AR100(config.TCPAddress,
                                     config.TCPPort,
                                     config.UsesTCP,
                                     config.ComPort,
                                     config.BaudRate));

            case MicrowaveReceiverType.Vislink_HDR1000:
                return(new Vislink_HDR1000(config.TCPAddress,
                                           config.TCPPort,
                                           config.UsesTCP,
                                           config.ComPort,
                                           config.BaudRate,
                                           config.BlockDownConverterFrequency));

            case MicrowaveReceiverType.Test:
                return(new TestReciever(config.TCPAddress,
                                        config.TCPPort,
                                        config.UsesTCP,
                                        config.ComPort,
                                        config.BaudRate));

            default:
                throw new Exception("Unsupported Microwave Receiver type");
            }
        }
コード例 #2
0
        /// <summary>
        /// Opens the microwave control service
        /// </summary>
        /// <param name="sourceName">source name to open</param>
        public void Open(ClientConnectRequest request)
        {
            try
            {
                this.clientRequest = request;
                AppLogger.Message(request.UserName + " MicrowaveControlService.Open " + request.SourceName);

                if (!ResourceManager.Acquire <ResourceManager.MutexRule>(request.SourceName,
                                                                         typeof(MicrowaveControlService),
                                                                         request.UserName))
                {
                    string owner = ResourceManager.GetOwner(request.SourceName, typeof(MicrowaveControlService));
                    throw new SourceHasMaxClientsException("The microwave receiver is in use by " + ((owner == null) ? "<unknown>" : owner) + ".");
                }
                resourceAcquired = true;

                StreamSourceInfo sourceConfig = StreamSources.LoadFromFile().FindSource(request.SourceName);
                if (sourceConfig.MicrowaveControl == null)
                {
                    throw new SourceConfigException("Source does not have MicrowaveControl section defined!");
                }
                microwaveConfig = sourceConfig.MicrowaveControl;

                //get client callback
                clientCallback = OperationContext.Current.GetCallbackChannel <IMicrowaveControl2Callback>();

                //create microwave receiver instance
                microwaveReceiver = MicrowaveControlService2.CreateInstance(microwaveConfig);
                if (!microwaveReceiver.Connected)
                {
                    throw new SourceConfigException("Communication with the microwave receiver could not be established.");
                }
                microwaveReceiver.ReceiverTuningChange      += new EventHandler <MicrowaveReceiver.ReceiverEventArgs>(microwaveReceiver_ReceiverTuningChange);
                microwaveReceiver.ReceiverLinkQualityChange += new EventHandler <MicrowaveReceiver.ReceiverEventArgs>(microwaveReceiver_ReceiverLinkQualityChange);
                microwaveReceiver.ReceiverConnectionChange  += new EventHandler(microwaveReceiver_ReceiverConnectionChange);

                scanner = new PeakScan(microwaveReceiver);
                scanner.ScanCompleted += new EventHandler <ScanCompleteEvent>(scanner_ScanCompleted);

                //load cached presets
                LoadSavedPresets();

                microwaveReceiver.StartPollingLinkQuality();
            }
            catch (Exception exc)
            {
                AppLogger.Dump(exc);
                throw;
            }
        }
コード例 #3
0
        /// <summary>
        /// Creates an instance of the required MicrowaveReceiver class
        /// </summary>
        /// <param name="config">the configuration info for the receiver</param>
        /// <returns>a microwave receiver class instance</returns>
        /// <exception cref="System.Exception">Thrown if config.ReceiverType is unrecognized</exception>
        private static MicrowaveReceiver CreateInstance(MicrowaveControlInfo config)
        {
            switch (config.ReceiverType)
            {
            case MicrowaveReceiverType.PMR_AR100:
                return(new PMR_AR100(config.TCPAddress,
                                     config.TCPPort,
                                     config.UsesTCP,
                                     config.ComPort,
                                     config.BaudRate));

            default:
                throw new Exception("Unsupported Microwave Receiver type");
            }
        }