Форум » » Раньше был Digital Gauge » Ответить

Раньше был Digital Gauge

RuckShot1: Добрый день! Каким образом в Crestron App выводить температуру? Раньше в crestron mobile, я digital gauge выводил аналоговое значение (например = 235), расставлял знаки в свойствах после запятой и получал 23,5 на экране. А теперь как? Есть элемент Formatted text, в котором для вывода аналоговой переменной захожу в Label, и там есть несколько параметров типа данных, но что-то не один не подходит(( Спасибо!

Ответов - 6

Игорь K.: Я не стал искать форматирования аналоговых переменных для SmartGraphics. Вывожу строками, сразу со значками температуры и влажности. Попробуйте такой код S+: #SYMBOL_NAME "C2N-RTHS" ANALOG_INPUT Temperature, Humdity; STRING_OUTPUT Temperature$, Humdity$; INTEGER Tmp1,Tmp2; CHANGE Temperature { IF (Temperature>10000) { Tmp1=65535-Temperature; Tmp2=Tmp1+1; Temperature$="-"+ITOA(Tmp2)+"\xB0"; } ELSE IF (Temperature<10000) { Temperature$=ITOA(Temperature/10)+"\xB0C"; } } CHANGE Humdity { Humdity$=ITOA(Humdity)+"\x25"; } Константа 10000 пусть не пугает - это остатки кода. Были попытки приладить датчик на улице, не вышло, большая нелийнейность.

RuckShot1: Спасибо! Получилось! Только единственное вопрос. Я получаю аналоговое значение 2550, что равняется 25,5 градусов. Я делю на 100, чтобы получить запятую, и после получаю в индерект ровно 25. А если я хочу получить дробное? CHANGE Temperatura { Temp$ = ITOA(Temperatura/100) + "\xB0C"; }

Игорь K.: Целую и дробную часть нужно считать отдельно. Нужно ли?


RuckShot1: Нее, я хочу чтобы температура на экране отображалась не просто 22 градуса, а 22,5 Или вы не это имели ввиду?

Игорь K.: Можно сделать, есть функция remove, "откусывает" опредленное количество цифр, в нашем случае 2. Далее в двух переменных будут целая и дробная части. Затем без арифметики "склеиваете" их в выходную строковую переменую с запятой между ними.

Kaveckiy: В Crestron App, который использует Smart Graphics есть элемент Formatted Text. В его свойстве Lable пишете - "<A$1?%2.2f> °С" - выводите значение с аналогового Join 1 (описание формата смотрите ниже). (вроде по памяти верно написал, вечером открою проект - перепроверю) This format specifier will display the analog join value as a floating point number, adding trailing and leading zeros if necessary. Format: %A.Bf where: A - specifies the number of leading zeroes to the left of the decimal point and B - the number of decimal places to the right of the decimal point



полная версия страницы