Exemplo n.º 1
0
 internal Var(string name, AdsDevice adsDevice)
 {
     Device      = adsDevice;
     RemoteName  = name;
     IndexGroup  = -1;
     IndexOffset = -1;
 }
Exemplo n.º 2
0
        internal Var(long iGroup, long iOffset, AdsDevice adsDevice)
        {
            Device = adsDevice;

            RemoteName  = null;
            IndexGroup  = iGroup;
            IndexOffset = iOffset;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }