Выполнение операции записи маски для регистра хранения
maskWrite(m, записывает данные в объект MODBUS address,andMask,orMask)m в реестр держателей по адресу address, используя указанные значения маски. Функция может устанавливать или очищать отдельные биты в конкретном регистре хранения. Она представляет собой операцию чтения/изменения/записи и использует комбинацию маски И, маски ИЛИ и текущего содержимого регистра.
Алгоритм функции работает следующим образом:
Result = (register value AND andMask) OR (orMask AND (NOT andMask))
Например:
Hex Binary Current contents 12 0001 0010 And_Mask F2 1111 0010 Or_Mask 25 0010 0101 (NOT And_Mask) 0D 0000 1101 Result 17 0001 0111
Если orMask значение равно 0, результатом является просто логическое значение ANDing текущего содержимого и andMask. Если andMask значение равно 0, результат равен orMask значение.