// initialize
        public void Initialize(HermesMiddleware.DataAcquisitionServiceServer.Subscription subscription)
        {
            // copy simple data
            sVariable = subscription.variable;
            sName     = subscription.name;
            sGUID     = subscription.GUID;

            foreach (HermesMiddleware.DataAcquisitionServiceServer.Expression expression in subscription.Items)
            {
                // we use just range everywhere
                HermesMiddleware.DataAcquisitionServiceServer.Range rangeSource = (HermesMiddleware.DataAcquisitionServiceServer.Range)expression;

                // create new range
                Range rangeTarget = new Range(rangeSource);

                // add it to the elements
                conditions.Add(rangeTarget);
            }
        }
        public HermesMiddleware.DataAcquisitionServiceProxy.Subscription ConvertServer2Proxy(HermesMiddleware.DataAcquisitionServiceServer.Subscription sourceSubscription)
        {
            HermesMiddleware.DataAcquisitionServiceProxy.Subscription targetSubscription = new HermesMiddleware.DataAcquisitionServiceProxy.Subscription();
            targetSubscription.GUID     = sourceSubscription.GUID;
            targetSubscription.name     = sourceSubscription.name;
            targetSubscription.variable = sourceSubscription.variable;
            targetSubscription.Items    = new HermesMiddleware.DataAcquisitionServiceProxy.Expression[sourceSubscription.Items.Length];

            for (int i = 0; i < sourceSubscription.Items.Length; i++)
            {
                targetSubscription.Items[i] = ConvertServer2Proxy(sourceSubscription.Items[i]);
            }

            return(targetSubscription);
        }