Transformation script для string

Started by Mikhail V. Platonov, July 28, 2008, 11:59:30 AM

Previous topic - Next topic

Mikhail V. Platonov

Каким образом можно сменить формат данных Data Collection из строкового в цифровой? Например, мне приходит с датчика температура в виде string ("20.0" или "23.4", к примеру), но мне нужно получить из этого цифру (float скорее всего), чтобы иметь возможность обрабатывать значение в threshold'е. Есть ли какая-нибудь функция навроде str2float или есть способ это сделать по-другому?

Извините, если такой вопрос уже был, но я не нашёл ответа, перепробовав все возможные поисковые запросы.
Нашел лишь следующее:

Quote from: Victor Kirhenshtein on May 21, 2008, 12:40:30 PMFor thresholds on strings - you can use "equal", "not equal", "like", and "not like" operations in thresholds for string DCIs. Or use transformation script to transform them into numbers if it's possible.

, но там к сожалению не сказано, каким должен быть transformation script, чтобы "transform them into numbers".

Спасибо.

Anth0ny

хм... я тож получаю температуры с серверов... но както не заморачивался на такое...
а можно поподробнее, зачем нужно это превращение?

Threshold'ы и без этого прекрасно работают.

Mikhail V. Platonov

Quote from: Anth0ny on July 28, 2008, 03:27:40 PM
хм... я тож получаю температуры с серверов... но както не заморачивался на такое...
а можно поподробнее, зачем нужно это превращение?

Threshold'ы и без этого прекрасно работают.

А вот у меня не работают. Поясню. Мне нужно отслеживать, чтобы температура в помещении была от 20 до 25 градусов. Но так как температура приходит в виде string (так ее датчик отдаёт по SNMP), то в threshold'е я могу использовать только "equal", "not equal", "like" и "not like", иначе не срабатывает. Но мне нужны такие вещи как "greater" или "less", т.е. неравенство, а они доступны только для цифровых форматов данных, как integer или float.
Может быть, конечно, можно сравнить строковое представление цифрового значения, но как это сделать, мне не понятно.

Victor Kirhenshtein

Quote from: Indigo on July 28, 2008, 11:59:30 AM
Каким образом можно сменить формат данных Data Collection из строкового в цифровой? Например, мне приходит с датчика температура в виде string ("20.0" или "23.4", к примеру), но мне нужно получить из этого цифру (float скорее всего), чтобы иметь возможность обрабатывать значение в threshold'е. Есть ли какая-нибудь функция навроде str2float или есть способ это сделать по-другому?

Достаточно просто поставить тип данных float для данного DCI. Если полученная строка содержит число, то будет произведена конвертация, иначе будет подставлено значение 0.

Mikhail V. Platonov

Quote from: Victor Kirhenshtein on July 28, 2008, 07:04:04 PM
Достаточно просто поставить тип данных float для данного DCI. Если полученная строка содержит число, то будет произведена конвертация, иначе будет подставлено значение 0.

О, отлично, спасибо.