public cEMI(EIB_Telegramm tele) { this.m_destination = tele.DestAdr; this.m_APCI = tele.apci; this.m_source = tele.SourceAdr; m_value = tele.RawData; m_DataLen = tele.DataLen; }
public HDKnx(cEMI emi) { this.emi = emi; //m_sourceAdr = emi.sourceAdr; m_destAdr = emi.destinationAdr; time = emi.receiveTime; name = "auto_" + time.ToShortTimeString(); rawValue = emi.GetRawData(); }
public HDKnx(cEMI emi) { this.emi = emi; //m_sourceAdr = emi.sourceAdr; m_destAdr = emi.destinationAdr; time = emi.receiveTime; name = "auto_" + time.ToShortTimeString(); rawValue = emi.GetRawData(); }
/// <summary> /// Konstruktor for EIS3/EIS4 (Datum oder Zeit) /// </summary> /// <param name="EIB Destination Adress"></param> /// <param name="bool"></param> public cEMI(EIB_Adress eIB_Adress, DateTime time, bool IsDatum) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; if (IsDatum) { Eis4 = time; } else { Eis3 = time; } }
/// <summary> /// Konstruktor aus Byte Array /// </summary> /// <param name="array"></param> public cEMI(byte[] array) { m_ReceiveTime = DateTime.Now; try { // Quelle eintragen m_source = new EIB_Adress((array[sourceAdrH] << 8) + array[sourceAdrL], EIB_Adress_Typ.PhysAdr); // Ziel eintragen if ((array[control2] & 0x80) == 0x80) { m_destination = new EIB_Adress((array[DestAdrH] << 8) + array[DestAdrL], EIB_Adress_Typ.GroupAdr); } else { m_destination = new EIB_Adress((array[DestAdrH] << 8) + array[DestAdrL], EIB_Adress_Typ.PhysAdr); } // Datenlänge m_DataLen = array[dataLen] & 0x0f; // APCI bestimmen m_APCI = (APCI_Typ)((array[10] >> 6) & 0x03); // Daten kopieren m_value = new byte[m_DataLen]; Array.Copy(array, 10, m_value, 0, m_DataLen); for (ushort i = 0; i < m_DataLen; i++) { m_value[i] = array[i + 10]; } // APCI-Flag aus den Daten ausblenden if (m_DataLen > 0) { m_value[0] = (byte)((byte)m_value[0] & (byte)0x3F); } } catch (Exception e) { throw new Exception("Fehler in cEMI-Konstruktor aus Array", e); } return; }
/// <summary> /// Konstruktor for EIS1 (bool) /// </summary> /// <param name="EIB Destination Adress"></param> /// <param name="bool"></param> public cEMI(EIB_Adress eIB_Adress, bool flag) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; Eis1 = flag; }
/// <summary> /// Konstruktor for EIS11 (long) /// </summary> /// <param name="EIB Destination Adress"></param> /// <param name="value"></param> public cEMI(EIB_Adress eIB_Adress, uint value) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; Eis11 = value; }
/// <summary> /// Konstruktor for EIS5 (float) /// </summary> /// <param name="EIB Destination Adress"></param> /// <param name="Float"></param> public cEMI(EIB_Adress eIB_Adress, float value) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; Eis5 = (float)value; }
/// <summary> /// Konstruktor for EIS3 (Zeit) /// </summary> /// <param name="EIB Destination Adress"></param> /// <param name="bool"></param> public cEMI(EIB_Adress eIB_Adress, DateTime time) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; Eis3 = time; }
/// <summary> /// Konstruktoe für EIS2 (Dim) /// </summary> /// <param name="eIB_Adress"></param> /// <param name="flag"></param> public cEMI(EIB_Adress eIB_Adress, byte val) { this.m_destination = eIB_Adress; m_APCI = APCI_Typ.Send; Eis2 = val; }