public EIB_Adress(string EibAdrString) { EIB_Adress adr = EIB_Adress.Parse(EibAdrString); m_Adr = adr.m_Adr; m_Typ = adr.m_Typ; }
// Konstruktor Gruppenadr. oder Physik. Adr aus Integer anlegen public EIB_Adress(int Adr, EIB_Adress_Typ Typ) { if (Adr > MAX_ADR) { throw new Exception("zu grosse Adresse"); } if (Adr < MIN_ADR) { throw new Exception("Adresse darf nicht negativ sein"); } m_Adr = (ushort)Adr; m_Typ = Typ; }
private EIB_Adress_Typ m_Typ = EIB_Adress_Typ.GroupAdr; // Art der Adresse // Konstruktor Gruppenadr. aus Integer anlegen public EIB_Adress(int GA) { if (GA > MAX_ADR) { throw new Exception("Gruppenadresse zu gross"); } if (GA < MIN_ADR) { throw new Exception("Gruppenadresse darf nicht negativ sein"); } m_Adr = (ushort)GA; m_Typ = EIB_Adress_Typ.GroupAdr; }
// Physikadr. setzen private ushort Set_PA(ushort Bereich, ushort Linie, ushort Teilnehmer) { if (Teilnehmer > 255) { throw new Exception("Teilnehmer zu gross"); } if (Linie > 15) { throw new Exception("Linie zu gross"); } if (Bereich > 15) { throw new Exception("Bereich zu gross"); } m_Adr = (ushort)((Bereich << 12) + (Linie << 8) + Teilnehmer); m_Typ = EIB_Adress_Typ.PhysAdr; return(m_Adr); }
// Gruppenadr. setzen private ushort Set_GA(ushort HG, ushort MG, ushort UG) { if (UG > 255) { throw new Exception("Untergruppe zu gross"); } if (MG > 7) { throw new Exception("Untergruppe zu gross"); } if (HG > 31) { throw new Exception("Untergruppe zu gross"); } m_Adr = (ushort)((HG << 11) + (MG << 8) + UG); m_Typ = EIB_Adress_Typ.GroupAdr; return(m_Adr); }