Exemplo n.º 1
0
        // Julkiset metodit, joita voidaan kutsua käyttöliittymästä

        /// <summary>
        /// Tällä metodilla käsketään prosessia ottamaan yhteys simulaattoriin, jos yhteyttä ei vielä ole.
        /// Jos sekvenssin tila yhteyttä muodostaessa on jokin muu kuin Impregnation, pysäytetään sekvenssi.
        /// </summary>
        public void AlustaProsessi()
        {
            if (clientStatus != "Connected" || clientStatus != "Connecting")
            {
                prosessi.YhteysMuuttui += new YhteysEventHandler(YhteysMuuttui);
                prosessi.YhdistaProsessiin();

                Trace.WriteLine("tila logiikassa yhdistämisen jälkeen: " + clientStatus);

                if (clientStatus == "Connected")
                {
                    PaivitaTiedot handler = paivita;
                    handler?.Invoke();
                    // Pysäytetään sekvenssi yhteyden palatessa, jos sekvenssi on ollut käynnissä yhteyden katketessa
                    if (tila != 1)
                    {
                        kaynnistetty = false;
                        PysaytaSekvenssi();
                    }
                }
            }
            if (!kaynnistetty)
            {
                // Tilataan event prosessin mittauksien muuttumisesta ja määritellään sille event handler
                prosessi.MikaMuuttui += new OmaEventHandler(PaivitaArvot);
                kaynnistetty          = true;
            }
        }
Exemplo n.º 2
0
        // Metodi, jota kutsutaan event handlerilla eventin noustessa. Metodilla päivitetään päivitetyt arvot toimintalogiikan tietoon
        private void PaivitaArvot(object source, MuuttuneetEvent m)
        {
            Dictionary <string, int> muuttuneet = m.PalautaArvot();

            foreach (string avain in muuttuneet.Keys)
            {
                if (muuttuneet[avain] == 0)
                {
                    mitattavatBool[avain] = prosessi.PalautaBool(avain);
                }
                if (muuttuneet[avain] == 1)
                {
                    mitattavatDouble[avain] = prosessi.PalautaDouble(avain);
                }
                if (muuttuneet[avain] == 2)
                {
                    mitattavatInt[avain] = prosessi.PalautaInt(avain);
                }
            }
            // Lopuksi nostetaan event ja ilmoitetaan invokella käyttöliittymälle muuttuneista mittauksista
            PaivitaTiedot handler = paivita;

            handler?.Invoke();
        }