예제 #1
0
파일: Slave.cs 프로젝트: ktosiek/ProtoToy
        public Ramka DekodowanieFunkcji(Ramka ramka)
        {
            for (int i = 0; i < listaKodowFunkcji.Count; i++)
                if (ramka.funkcja == listaKodowFunkcji[i].kod)
                {
                    if (ramka.funkcja == 1)
                    {
                        ramka.dane[0] = Convert.ToByte(wyjscia[0]);
                        return ramka;
                    }
                    if (ramka.funkcja == 2)
                    {
                        ramka.dane[0] = Convert.ToByte(wejscia[0]);
                        return ramka;
                    }
                    if (ramka.funkcja == 3)
                    {
                        ramka.dane[0] = rejestryWyjsciowe[0];
                        return ramka;
                    }
                    if (ramka.funkcja == 4)
                    {
                        ramka.dane[0] = rejestryWejsciowe[0];
                        return ramka;
                    }
                    if (ramka.funkcja == 5)
                    {
                        if (ramka.dane[1] >= 0 && ramka.dane[1] <= iloscWyjsc)
                            wyjscia[ramka.dane[1]] = Convert.ToBoolean(ramka.dane[0]);
                        else
                            ramka.dane[0] = 2;
                        return ramka;
                    }
                    if (ramka.funkcja == 6)
                    {
                        if (ramka.dane[1] >= 0 && ramka.dane[1] <= iloscWyjsc)
                        rejestryWyjsciowe[ramka.dane[1]] = ramka.dane[0];
                        else
                            ramka.dane[0] = 2;
                        return ramka;
                    }
                }

            ramka.funkcja += 8;  //błąd nie znaleziono takiej funkcji dodaje 98
            ramka.dane[0] = 1;
            return ramka;
        }
예제 #2
0
파일: Slave.cs 프로젝트: ktosiek/ProtoToy
        public Ramka Receive(Ramka ramka)
        {
            if (this.adress == ramka.adres) //sprawdzanie poprawności adresu
            {
                if (ramka.dane[0].ToString() == ramka.suma.ToString())  //sprawdzanie poprawności sumy kontrolnej
                {
                    return DekodowanieFunkcji(ramka);
                }
                else
                {
                    ramka.dane[0] = 0;                //w przypadku blędu sumy kontrolnej
                    return ramka;
                }

            }

            else
            {
                ramka.adres = 0;                //w przypadku blędu adresu
                return ramka;
            }
        }