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; }
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; } }