private void                    write(DataItem aItem)
 {
     mWriteRequests = mWriteRequests + 1;
     byte[] lValue = aItem.write(mClient);
     if (lValue != null && aItem.mGroup != 0)
     {
         var lGroupDsc = mGroups[aItem.mGroup - 1];
         int lIndex    = aItem.Byte - lGroupDsc.mStart;
         if (aItem.DataType == EWordlen.S7_Bit)
         {
             if (lValue[0] == 1)
             {
                 lGroupDsc.mBuffer[lIndex] = (byte)(lGroupDsc.mBuffer[lIndex] | (1 << aItem.Bit));
             }
             else
             {
                 lGroupDsc.mBuffer[lIndex] = (byte)(lGroupDsc.mBuffer[lIndex] & ~(1 << aItem.Bit));
             }
         }
         else
         {
             for (int i = lIndex; i < lValue.Length; i++)
             {
                 lGroupDsc.mBuffer[i] = lValue[i];
             }
         }
     }
 }
 private void                write(DataItem aItem)
 {
     mWriteRequests = mWriteRequests + 1;
     aItem.write(mClient);
 }