internal Var(string name, AdsDevice adsDevice) { Device = adsDevice; RemoteName = name; IndexGroup = -1; IndexOffset = -1; }
internal Var(long iGroup, long iOffset, AdsDevice adsDevice) { Device = adsDevice; RemoteName = null; IndexGroup = iGroup; IndexOffset = iOffset; }
protected virtual void OnDeviceLost(object obj_Device) { AdsDevice device = (AdsDevice)obj_Device; foreach (Var v in device.Vars) { v.TryUnsubscribe(); } EventHandler <AdsDevice> handle = DeviceLost; handle?.Invoke(this, device); }
protected virtual void OnDeviceReady(object obj_Device) { AdsDevice device = (AdsDevice)obj_Device; foreach (Var var in device.Vars) { var.TryUnsubscribe(); var.TrySubscribe(); } EventHandler <AdsDevice> handle = DeviceReady; handle?.Invoke(this, device); }
private AdsDevice GetDevice(int Port) { AdsDevice device; if (!dict_PortDevice.TryGetValue(Port, out device)) { device = new AdsDevice(Router.AmsNetId, Port); device.AdsClient.Timeout = tune_AdsClientTimeout; device.AdsClient.AdsNotificationEx += Client_AdsNotificationEx; lock (_locker_dict_PortDevice) dict_PortDevice.Add(Port, device); } return(device); }
private Var <T> CreateVariable <T>(string varName, int Port) { Var v; if (dict_NameVar.TryGetValue(varName, out v)) { return((Var <T>)v); } AdsDevice device = GetDevice(Port); Var <T> var = new Var <T>(varName, device); device.Vars.Add(var); dict_NameVar.Add(varName, var); var.TrySubscribe(); return(var); }
private Var <T> CreateVariable <T>(long IGrp, long IOffs, int Port) { string pseudoName = string.Concat(IGrp.ToString(), ":", IOffs.ToString()); Var v; if (dict_NameVar.TryGetValue(pseudoName, out v)) { return((Var <T>)v); } AdsDevice device = GetDevice(Port); Var <T> var = new Var <T>(IGrp, IOffs, device); device.Vars.Add(var); dict_NameVar.Add(pseudoName, var); var.TrySubscribe(); return(var); }