Согласен, что заказчик должен понимать что не все получается "за так".
Самое простое - опрос всех всех данных, которые могут понадобиться клиенту, по расписанию (после первого чтения измеренного значения читаем скажем уставку 1, потом опять измеренное значение, потом уставку 2, потом опять измеренное значение и т.д. Как все траебуемые параметры вычитали - переходим к началу этого кольца). Измеренные значения с флагами ошибок читаем постоянно, а остальные параметры потихоньку вычитываем с гораздо большим интервалом времени. При этом, естественно, клиент будет получать последнее годное значение. Иначе задача превращается в написание обмена "с поведением". При поступлении запроса на чтение чего-то такого, что не является текущим значением, надо будет дождаться завершения обмена и послать новый запрос и тут еще чудеса будут при неответах и переспросах. В принципе, все это пишется и вот недавно писали что-то такое
Но экстрим в этом есть.