private void OnWriteValueMessage(WriteValueMessage <bool> msg) { if (_linkBitMap.TryGetValue(msg.LinkId, out int bitIndex)) { lock (_lockValue) { int value = Value; int mask = 1 << bitIndex; bool bitVal = (value & mask) != 0; if (bitVal != msg.Value) { if (msg.Value) { value |= mask; } else { value &= ~mask; } Write(value); } } } }
private void OnWriteValueMessage(WriteValueMessage <double> msg) { if (LinkId == msg.LinkId) { var v = (int)(msg.Value * 1000); Value = v; Write(); } }