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); }
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); }
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); }
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)); }