예제 #1
0
        private VariableObserver(IHubConnectionContext<dynamic> clients)
        {
            this.Clients = clients;

            try
            {
                IControl control = IControl.create();
                control.connect(IP_UTEST, 9090);
                Console.WriteLine("Connexion OK !!!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Connexion NON OK !!!");
            }

            vc = Vs.getVariableController();

            _listDataObs = new List<DataObserver>{
                new DataObserver { DataId=2, PathName = "CODES/CT1_M1_PNT/LiveBit", ValueObs="" }
            };

            _timer = new Timer(UpdateDataObservers, null, _updateInterval, _updateInterval);

            ///=======================================================================================================
            ///Il faut charger les valeurs au moins une fois sinon la librairie n'arrive pas a récupérer le type
            ///Et donc il n'arrive pas à mettre les valeurs à jours   :/
            ///=======================================================================================================
                foreach (DataObserver rowObserver in _listDataObs)
                {

                    DataObserver dObs = readValue3(rowObserver);

                    InjectionVariableStatus status = new InjectionVariableStatus();
                    vc.getInjectionStatus(rowObserver.PathName, status);

                    if (status.state == InjectionStates.InjectionStates_IsSet)
                    {
                        rowObserver.IsForced = true;
                    }
                    else
                    {
                        rowObserver.IsForced = false;
                    }
                }
            ///=======================================================================================================
        }
예제 #2
0
        private void UpdateDataObservers(object state)
        {
            lock (_updateDObsLOCK)
            {
                if (!_updateDObs)
                {
                    _updateDObs = true;

                    foreach (DataObserver rowObserver in _listDataObs)
                    {

                        DataObserver dObs = readValue3(rowObserver);

                        InjectionVariableStatus status = new InjectionVariableStatus();
                        vc.getInjectionStatus(rowObserver.PathName, status);

                        if (status.state == InjectionStates.InjectionStates_IsSet)
                        {
                            rowObserver.IsForced = true;
                        }
                        else
                        {
                            rowObserver.IsForced = false;
                        }

                        BroadcastDataObserver(rowObserver);
                    }

                    _updateDObs = false;
                }
            }
        }