public void Init()
        {
            var xiServerConfig = XiServerConfigProvider.XiServerConfig;

            string serverUrl; // = System.Configuration.ConfigurationManager.AppSettings["XiServerAddress"];

//            address = @"net.pipe://localhost/XiTOCO";
            //address = "net.tcp://localhost/XiTOCO";

            serverUrl = xiServerConfig.ServerUrl;

            if (string.IsNullOrEmpty(serverUrl))
            {
                throw new Exception("The XiServer Address is not configed correctly");
            }

            var appName = Guid.NewGuid().ToString();

            XiServer = new XiServer(serverUrl, appName, this)
            {
                ContextTimeout = 5 * 1000,
                UserName       = xiServerConfig.UserName,
                Password       = xiServerConfig.Password
            };
            XiServer.StartKeepAlive(3);
        }
Example #2
0
        public static Task <OnDefineListCompleteEventArgs> AddDataListAsync(
            this XiServer server,
            bool enableList,
            uint updateRate,
            uint bufferingRate,
            FilterSet filterSet,
            CommunicationPreferences endpoints,
            ListRWAccessMode rwMode,
            SubscriptionUpdateMode subscrMode,
            object asyncState = null)
        {
            var t = new TaskCompletionSource <OnDefineListCompleteEventArgs>();

            //            dynamic xiDataListWrapper = new object();
            var xiDataListWrapper = new XiDataListWrapper();

            xiDataListWrapper.XiDataList = server.AddDataList(
                enableList,
                updateRate,
                bufferingRate,
                filterSet,
                endpoints,
                rwMode,
                subscrMode,
                (error, rslt, a) => t.TrySetResult(new OnDefineListCompleteEventArgs(
                                                       error,
                                                       rslt,
                                                       xiDataListWrapper.XiDataList,
                                                       a)),
                asyncState);

            return(t.Task);
        }
Example #3
0
        public static Task <XiServerInitateCompleteResult> InitiateAsync(this XiServer server,
                                                                         object asyncState = null)
        {
            var t = new TaskCompletionSource <XiServerInitateCompleteResult>();

            server.Initiate((e, o) => t.TrySetResult(new XiServerInitateCompleteResult(e, o)), asyncState);

            return(t.Task);
        }
Example #4
0
        public static IObservable <XiServerInitateCompleteResult> InitiateEx(this XiServer server)
        {
            var subject = new Subject <XiServerInitateCompleteResult>();

            new Task(() => server.Initiate((e, o) =>
            {
                var sub = (Subject <XiServerInitateCompleteResult>)o;
                sub.OnNext(new XiServerInitateCompleteResult()
                {
                    Error = e,
                });
                sub.OnCompleted();
            }, subject)).Start();


            return(subject.Take(1));
        }