public int EIB_MC_PropertyRead_async( byte obj , byte propertyno , ushort start , byte nr_of_elem , EIBBuffer buf )
 {
     byte[] head = new byte[7]; byte[] ibuf = head; this.buf = buf; ibuf[2] = (byte)((obj)&0xff); ibuf[3] = (byte)((propertyno)&0xff); ibuf[4] = (byte)((start>>8)&0xff); ibuf[4 +1] = (byte)((start)&0xff); ibuf[6] = (byte)((nr_of_elem)&0xff); ibuf[0] = (byte)((0x0053>>8)&0xff); ibuf[1] = (byte)((0x0053)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_MC_PropertyRead_complete); return 0;
 }
 public int EIB_Cache_Read_Sync_async( ushort dst , EIBAddr src , EIBBuffer buf , ushort age )
 {
     byte[] head = new byte[6]; byte[] ibuf = head; this.buf = buf; this.ptr5 = src; ibuf[2] = (byte)((dst>>8)&0xff); ibuf[2 +1] = (byte)((dst)&0xff); ibuf[4] = (byte)((age>>8)&0xff); ibuf[4 +1] = (byte)((age)&0xff); ibuf[0] = (byte)((0x0074>>8)&0xff); ibuf[1] = (byte)((0x0074)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_Cache_Read_Sync_complete); return 0;
 }
 public int EIB_MC_PropertyRead( byte obj , byte propertyno , ushort start , byte nr_of_elem , EIBBuffer buf )
 {
     if (EIB_MC_PropertyRead_async (obj , propertyno , start , nr_of_elem , buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIB_M_ReadIndividualAddresses( EIBBuffer buf )
 {
     if (EIB_M_ReadIndividualAddresses_async (buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetAPDU_async( EIBBuffer buf )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; complete = new complete_t (EIBGetAPDU_complete); return 0;
 }
 public int EIB_MC_PropertyWrite( byte obj , byte propertyno , ushort start , byte nr_of_elem , byte[] buf , EIBBuffer res )
 {
     if (EIB_MC_PropertyWrite_async (obj , propertyno , start , nr_of_elem , buf , res ) == -1) return -1; return EIBComplete ();
 }
 public int EIB_MC_Read( ushort addr , int buf_len, EIBBuffer buf )
 {
     if (EIB_MC_Read_async (addr , buf_len, buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetGroup_Src_async( EIBBuffer buf , EIBAddr src , EIBAddr dest )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; this.ptr5 = src; this.ptr6 = dest; complete = new complete_t (EIBGetGroup_Src_complete); return 0;
 }
 public int EIBGetTPDU( EIBBuffer buf , EIBAddr src )
 {
     if (EIBGetTPDU_async (buf , src ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetBusmonitorPacket_async( EIBBuffer buf )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; complete = new complete_t (EIBGetBusmonitorPacket_complete); return 0;
 }
 public int EIBGetGroup_Src( EIBBuffer buf , EIBAddr src , EIBAddr dest )
 {
     if (EIBGetGroup_Src_async (buf , src , dest ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetBusmonitorPacketTS_async( UInt8 status , UInt32 timestamp , EIBBuffer buf )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.ptr2 = status; this.ptr7 = timestamp; this.buf = buf; complete = new complete_t (EIBGetBusmonitorPacketTS_complete); return 0;
 }
 public int EIBGetBusmonitorPacketTS( UInt8 status , UInt32 timestamp , EIBBuffer buf )
 {
     if (EIBGetBusmonitorPacketTS_async (status , timestamp , buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetBusmonitorPacket( EIBBuffer buf )
 {
     if (EIBGetBusmonitorPacket_async (buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIB_MC_PropertyScan( EIBBuffer buf )
 {
     if (EIB_MC_PropertyScan_async (buf ) == -1) return -1; return EIBComplete ();
 }
 public int EIBGetTPDU_async( EIBBuffer buf , EIBAddr src )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; this.ptr5 = src; complete = new complete_t (EIBGetTPDU_complete); return 0;
 }
 public int EIB_MC_PropertyScan_async( EIBBuffer buf )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; ibuf[0] = (byte)((0x0062>>8)&0xff); ibuf[1] = (byte)((0x0062)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_MC_PropertyScan_complete); return 0;
 }
 public int EIB_Cache_LastUpdates( ushort start , byte timeout , EIBBuffer buf , UInt16 ende )
 {
     if (EIB_Cache_LastUpdates_async (start , timeout , buf , ende ) == -1) return -1; return EIBComplete ();
 }
 public int EIB_MC_PropertyWrite_async( byte obj , byte propertyno , ushort start , byte nr_of_elem , byte[] buf , EIBBuffer res )
 {
     byte[] head = new byte[7]; byte[] ibuf = head; ibuf[2] = (byte)((obj)&0xff); ibuf[3] = (byte)((propertyno)&0xff); ibuf[4] = (byte)((start>>8)&0xff); ibuf[4 +1] = (byte)((start)&0xff); ibuf[6] = (byte)((nr_of_elem)&0xff); if (buf.Length < 0) throw new IndexOutOfRangeException ("data to short"); ibuf = new byte[head.Length + buf.Length]; sendlen = buf.Length; for (int i = 0; i < head.Length; i++) ibuf [i] = head[i]; for (int i = 0; i < buf.Length; i++) ibuf [i + head.Length] = buf[i]; this.buf = res; ibuf[0] = (byte)((0x0054>>8)&0xff); ibuf[1] = (byte)((0x0054)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_MC_PropertyWrite_complete); return 0;
 }
 public int EIB_Cache_LastUpdates_async( ushort start , byte timeout , EIBBuffer buf , UInt16 ende )
 {
     byte[] head = new byte[5]; byte[] ibuf = head; this.buf = buf; this.ptr4 = ende; ibuf[2] = (byte)((start>>8)&0xff); ibuf[2 +1] = (byte)((start)&0xff); ibuf[4] = (byte)((timeout)&0xff); ibuf[0] = (byte)((0x0076>>8)&0xff); ibuf[1] = (byte)((0x0076)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_Cache_LastUpdates_complete); return 0;
 }
 public int EIB_MC_Read_async( ushort addr , int buf_len, EIBBuffer buf )
 {
     byte[] head = new byte[6]; byte[] ibuf = head; this.buf = buf; ibuf[2] = (byte)((addr>>8)&0xff); ibuf[2 +1] = (byte)((addr)&0xff); ibuf[4] = (byte)(((buf_len)>>8)&0xff); ibuf[4 +1] = (byte)(((buf_len))&0xff); ibuf[0] = (byte)((0x0051>>8)&0xff); ibuf[1] = (byte)((0x0051)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_MC_Read_complete); return 0;
 }
 public int EIB_Cache_Read_Sync( ushort dst , EIBAddr src , EIBBuffer buf , ushort age )
 {
     if (EIB_Cache_Read_Sync_async (dst , src , buf , age ) == -1) return -1; return EIBComplete ();
 }
 public int EIB_M_ReadIndividualAddresses_async( EIBBuffer buf )
 {
     byte[] head = new byte[2]; byte[] ibuf = head; this.buf = buf; ibuf[0] = (byte)((0x0032>>8)&0xff); ibuf[1] = (byte)((0x0032)&0xff); if (_EIB_SendRequest (ibuf) == -1) return -1; complete = new complete_t (EIB_M_ReadIndividualAddresses_complete); return 0;
 }
 public int EIBGetAPDU( EIBBuffer buf )
 {
     if (EIBGetAPDU_async (buf ) == -1) return -1; return EIBComplete ();
 }