en ko

태그 표현식

태그 표현식을 사용하여 고유하고 동적인 시계 화면을 만듭니다. 태그 표현식은 태그 값(날짜 및 시간 또는 배터리 상태, 걸음 수와 같은 시계 데이터)을 기반으로 구성요소의 회전, 배치, 불투명도를 변경할 수 있는 조건입니다. 태그 값이 변경되면 시계 화면이 동적으로 변경됩니다.

예를 들어 화면의 객체가 찰나의 순간에 수직으로 이동하는 시계 화면을 만들거나, 특정 시간에 표시되거나 사라지는 객체가 있는 시계 화면을 만들 수 있습니다.

구성요소의 회전, 배치, 불투명도 속성 입력란에 태그 표현식을 직접 입력합니다.

태그는 대괄호로 묶어야 합니다. 시계 화면 스튜디오에서 태그 스크립팅 대화상자를 열려면 태그를 클릭하세요. 스크립팅 대화상자에서 긴 태그 표현식을 입력하고 원하는 데이터를 검색할 수 있습니다.

그림 1. 태그 스크립팅 대화상자

다음 표에는 태그 설명 및 값 범위가 나와 있습니다.

날짜 및 시간

태그

정의

타입

범위

UTC_TS

에포크로부터 UTC 밀리초로 표시된 타임스탬프

Number

1256953732

MSEC

밀리초

Number

0 - 999

123

SEC

1분 기준의 초

Number

0 - 59

12

SEC_Z

1분 기준의 초(앞에 0 표시)

String

00 - 59

03

SEC_MSEC

1분 기준의 초(밀리초 포함)

Number

0.0 - 59.999

1.234

SEC_IN_DAY

1일 기준의 초

Number

0 - 86,400

12,345

MIN

1시간 기준의 분

Number

0 - 59

3

MIN_Z

1시간 기준의 분(앞에 0 표시)

String

00 - 59

03

MIN_SEC

1시간 기준의 분(초 포함)

Number

0.0 - 59.999

1.234

HOUR_0_11

1일 기준의 시(0-11)

Number

0 - 11

3

HOUR_0_11_Z

1일 기준의 시(0-11, 앞에 0 표시)

String

00 - 11

03

HOUR_0_11_MIN

1일 기준의 시(0-11, 분 포함)

Number

0.0 - 11.999

1.234

HOUR_1_12

1일 기준의 시(1-12)

Number

1 - 12

3

HOUR_1_12_Z

1일 기준의 시(0-12, 앞에 0 표시)

String

01 - 12

03

HOUR_1_12_MIN

1일 기준의 시(0-12, 분 포함)

Number

1.0 - 12.999

1.234

HOUR_0_23

1일 기준의 시(0-23)

Number

0 - 23

3

HOUR_0_23_Z

1일 기준의 시(0-23, 앞에 0 표시)

String

00 - 23

03

HOUR_0_23_MIN

1일 기준의 시(0-23, 분 포함)

Number

0.0 - 23.999

1.234

HOUR_1_24

1일 기준의 시(1-24)

Number

1 - 24

3

HOUR_1_24_Z

1일 기준의 시(1-24, 앞에 0 표시)

String

01 - 24

03

HOUR_1_24_MIN

1일 기준의 시(1-24, 분 포함)

Number

1.0 - 24.999

1.234

DAY_1_31

날짜(1-31)

Number

1 - 31

3

DAY_1_31_Z

날짜(1-31, 앞에 0 표시)

String

01 - 31

13

DAY_1_31_HOUR

날짜(1-31, 시 포함)

Number

1.0 - 31.999

1.234

DAY_WEEK

요일

Number

1(일요일) - 7(토요일)

3

DAY_WEEK_F

요일(전체 텍스트)

String

일요일 - 토요일

수요일

DAY_WEEK_S

요일(약어)

String

일 - 토

FIRST_DAY_WEEK

한 주의 첫 번째 요일

Number

1 (일요일) - 7 (토요일)

미국의 경우 1, 프랑스의 경우 2

DAY_IN_YEAR

1년 기준 날짜

Number

1 - 365

123

DAYS_IN_MON

이번 달 기준 날짜

Number

28 - 31

31

MON

1년 기준 월

Number

1 - 12

3

MON_Z

1년 기준 월(앞에 0 표시)

String

01 - 12

03

MON_F

1년 기준 월(전체 텍스트)

String

1월 - 12월

11월

MON_S

1년 기준 월(약어)

String

1 - 12

11

MON_DAY

월(날짜 포함)

Number

1.0 - 12.999

11.111

YEAR

연도

Number

0000 - 9999

2021

YEAR_S

축약된 연도(마지막 두 자리로 표시)

String

00 - 99

21

YEAR_MON

연도(월 포함)

Number

2021.307

WEEK_IN_YEAR

1년 기준 주

Number

1-52

24

WEEK_IN_MON

1개월 기준 주

Number

1 ~ 5

2

IS_24H

시스템에서 24시간 형식을 사용하는지 여부

Number

0(12시간), 1(24시간)

0

IS_DST

시스템에서 일광 절약 시간을 사용하는지 여부

Number

0(아니요), 1(예)

0

TMZN_ABB

시간대 약어

String

PST

TMZN_OFS

시간대 오프셋

String

-12 - +14

+9

TMZN_OFS_WITH_DST

일광 절약 시간에 맞게 수정된 시간대 오프셋

String

-12 - +14

-7

TMZN_ID

시간대 ID

String

Asia/Seoul

IS_AFTNOON

시간이 정오 이전인지 이후인지 여부

Number

0(오전), 1(오후)

0

AMPM_PO

AM 또는 PM 문자열의 위치

Number

-1(알 수 없음), 0(첫 번째), 1(마지막)

0

AMPM

시스템 언어에 맞게 형식이 지정된 AM/PM 문자열

String

AM/PM

AM

설정 정보

태그

정의

타입

범위

LANG_LOC

언어, 국가, 변형, 스크립트, 확장자로 구성된 시스템 언어 객체의 문자열 표현 예: en-US

String

ko_KR

디바이스 정보

태그

정의

타입

범위

BATT_PER

현재 배터리 잔량 비율

Number

0~100

70

BATT_IS_CHARGE

배터리가 충전 중인지 여부

Number

0(아니요), 1(예)

1

BATT_IS_LOW

시계의 배터리가 부족한 상태에서 충전 중이 아닌지 여부

Number

0(아니요), 1(예)

0

BATT_TEM_C

현재 배터리 온도(°C)

Number

28.8

BATT_TEM_F

현재 배터리 온도(°F)

Number

83.84

UNREAD_NC

기기에서 읽지 않은 알림 수

Number

3

센서 데이터

태그

정의

타입

범위

IS_ACC

기기에 가속도계 센서가 있는지 여부

Number

0(아니요), 1(예)

1

ACC_X

X축에서의 가속도

Number

ACC_Y

y축에서의 가속도

Number

ACC_Z

Z축에서의 가속

Number

ACC_A_X

X축에서의 가속 각도

Number

-90.0 - 90.0

ACC_A_Y

Y축에서의 가속 각도

Number

-90.0 - 90.0

ACC_A_Z

Z축에서의 가속 각도

Number

-90.0 - 90.0

ACC_A_XY

각도 X + 각도 Y

Number

-180.0 - 180.0

헬스 데이터

태그

정의

타입

범위

HR

심박수

Number

0 -

60

HR_Z

심박수(앞에 0 표시)

String

00

80


120

SC

걸음 수

Number

0 -

1000

SC_GOAL

걸음 수 목표

Number

1 - 20000

20000

SC_PER

걸음 수 목표 대비 걸음 수

Number

0 - 100

달의 위상

태그

정의

타입

범위

MOON_PO

달의 위상 위치

Number

0 - 28(아래 참고)

14.5

MOON_TY

달의 위상 유형

Number

0 - 7(아래 참고)

2

MOON_TY_NAME

유형 이름

String

(아래 참고)

MOON_PO 태그의 범위 정의는 다음과 같습니다.

  • 0-0.5: 신월
  • 0.5-6.5 : 저녁 초승달
  • 7 : 상현
  • 7.5-13.5 : 상현망
  • 14 : 보름달
  • 14.5-20.5 : 하현망
  • 21 : 하현
  • 21.5-27.5 : 아침 초승달
  • 27.5-28 : 신월

MOON_TY 및 MOON_TY_NAME 태그의 범위 정의는 다음과 같습니다.

  • 0 : 신월
  • 1 : 저녁 초승달
  • 2 : 상현
  • 3 : 상현망
  • 4 : 보름달
  • 5 : 하현망
  • 6 : 하현
  • 7 : 아침 초승달

날씨

태그

정의

타입

범위

WTHR_IS_AVAIL

사용 가능한 날씨 데이터가 있는지 여부

Number

0 (아니오), 1 (예)

1

WTHR_COND

현재 날씨 상태

Number

0 - 15 (아래 참고)

8

WTHR_COND_NAME

사람이 읽을 수 있는 현재 날씨 상태

String

SUNNY

WTHR_IS_DAY

낮 시간의 날씨 조건인지 여부

Number

0 (밤 시간), 1 (낮 시간)

0

WTHR_TEM

현재 온도

Number

25

WTHR_TEM_UNIT

온도 단위

Number

1 / 2 (아래 참고)

1

WTHR_DAY_TEM_LOW

하루 중 최저 온도

Number

18

WTHR_DAY_TEM_HIGH

하루 중 최고 온도

Number

30

WTHR_CHANCE_PPTN

현재 강수 확률

Number

0 - 100

0

WTHR_UV_INDEX

현재 자외선 지수

Number

3

WTHR_LAST_UPDATED

날씨 데이터가 마지막으로 업데이트된 시점의 타임스탬프

Number

[WTHR_COND] 태그의 가능한 값은 다음과 같습니다.

  • 0: UNKNOWN_VALUE
  • 1: CLEAR
  • 2: CLOUDY
  • 3: FOG
  • 4: HEAVY_RAIN
  • 5: HEAVY_SNOW
  • 6: RAIN
  • 7: SNOW
  • 8: SUNNY
  • 9: THUNDERSTORM
  • 10: SLEET
  • 11: LIGHT_SNOW
  • 12: LIGHT_RAIN
  • 13: MIST
  • 14: PARTLY_CLOUDY
  • 15: WINDY

[WTHR_TEM_UNIT] 태그의 가능한 값은 다음과 같습니다.

  • 1: CELSIUS
  • 2: FAHRENHEIT

날씨 예보 함수

함수

정의

반환 타입

표현식 예

forecastHour(index, String)

시간별 날씨 예보. 인덱스는 1부터 시작

Number / String

forecastHour(1, "COND")

forecastHour(1, "COND_NAME")

지금부터 1시간 후의 예보 조건

8

SUNNY

forecastDay(index, String)

일일 날씨 예보. 인덱스는 1부터 시작

Number / String

forecastDay(2, "COND_DAY")

forecastDay(2, "COND_DAY_NAME")

지금부터 2일 후의 예보 조건

8

SUNNY

forecastHour 함수의 두번째 매개변수의 가능한 값은 다음과 같습니다.

  • IS_AVAIL
  • COND
  • COND_NAME
  • IS_DAY
  • TEM

forecastDay 함수의 두번째 매개변수의 가능한 값은 다음과 같습니다.

  • IS_AVAIL
  • COND_DAY
  • COND_DAY_NAME
  • COND_NIGHT
  • COND_NIGHT_NAME
  • TEM_HIGH
  • TEM_LOW
  • CHANCE_PPTN
  • CHANCE_PPTN_NIGHT

함수

함수

정의

반환 타입

표현식 예

출력 예

round(num)

num에 가장 가까운 정수를 반환합니다.

Number

round(1.6)

2

floor(num)

num보다 작거나 같은 최대 정수를 반환합니다.

Number

floor(1.6)

1

ceil(num)

num보다 크거나 같은 최소 정수를 반환합니다.

Number

ceil(1.2)

2

sin(num)

num의 사인 값을 반환합니다.

Number

sin(1)

0.84147096

cos(num)

num의 코사인 값을 반환합니다.

Number

cos(1)

0.5403023

tan(num)

num의 탄젠트 값을 반환합니다.

Number

tan(1)

1.5574077

abs(num)

0부터의 거리를 반환합니다.

Number

abs(-10)

10

clamp(num, min, max)

maxmin 사이에 고정된 num 값을 반환합니다.

Number

clamp([ACC_A_X], -30, 60)

-30~60

numberFormat(form, num)

numform 형식으로 변환합니다. form은 다음 값으로 구성됩니다.

0: 빈 공백을 0으로 채웁니다.


#: 값이 없는 곳은 표시하지 않습니다.


.: 소수점 위치를 나타냅니다.

Number

(numberFormat("#.#", [SEC_MSEC]))

(numberFormat("#.###", ([SEC_MSEC]*10)))


(numberFormat("000.000", ([SEC_MSEC]*10)))


(numberFormat("0000.000", ([SEC_MSEC]*10)))

32.4

324.37


324.370


0324.370

asin(num)

num의 아크사인 함수를 반환합니다.

Number

asin(0.841)

1

acos(num)

num의 아크코사인 함수를 반환합니다.

Number

acos(0.54)

1

atan(num)

num의 아크탄젠트 함수를 반환합니다.

Number

atan(1.557)

1

deg(num)

num을 라디안에서 도 단위로 변환합니다.

Number

deg(3.142)

180

rad(num)

num을 도에서 라디안 단위로 변환합니다.

Number

rad(180)

3.141

pow(base, exponent)

지수로 제곱된 밑의 결과를 반환합니다.

Number

pow(12, 2)

144

연산자

태그 표현식은 태그 표현식의 값을 수정할 수 있는 다양한 연산자를 지원합니다.

산술 연산자

산술 연산자는 기본적인 수학 함수입니다. 산술 연산자는 두 값(피연산자) 간에 함수를 실행합니다.

연산자

정의

+

덧셈

-

뺄셈

*

곱셈

/

나눗셈의 몫

%

나눗셈의 나머지

다음 예는 태그 표현식에서 태그 및 산술 연산을 사용하는 방법을 보여줍니다.

  • 5 * [BATT_PER] :

    배터리 잔량 비율에 5를 곱한 값이 반환됩니다.

    배터리 잔량 비율이 7%이면 반환되는 값은 35입니다.

  • [SEC] / 3 :

    1분 기준 초를 3으로 나눈 몫이 반환됩니다.

    1분에 경과된 초 수가 7이면 반환되는 값은 2.33입니다.

  • [SEC] % 3 :

    1분 기준 초를 3으로 나눈 나머지가 반환됩니다.

    1분에 경과된 초 수가 7이면 반환되는 값은 1입니다.

  • 3 + 5 * [BATT_PER] :

    배터리 잔량 비율에 5를 곱한 다음 3이 더해집니다.

    배터리 잔량 비율이 7%이면 반환되는 값은 38입니다.

    곱셈이 덧셈보다 우선하므로 먼저 곱셈이 수행된 다음, 3이 그 결과에 더해집니다(3 + 5 * 7 → 3 + 35 → 38).

  • (3 + 5) * [BATT_PER] :

    괄호의 덧셈 연산이 먼저 수행되고 그 결과에 배터리 진량 비율이 곱해집니다. 배터리 잔량 비율이 7%이면 반환되는 값은 56입니다.

관계 연산자

관계 연산자는 두 값을 비교하여 관계(예: 어느 값이 더 크거나 작은지 또는 서로 같은지)를 결정합니다. true인 비교는 값 1을 반환합니다. false인 비교는 값 0을 반환합니다.

연산자

정의

<

미만

<=

이하

>

초과

>=

이상

==

같음

!=

같지 않음

관계 연산은 산술 연산과 결합되는 경우가 있습니다. 다음은 관계 연산만 사용하거나 관계 연산과 산술 연산을 사용하는 예입니다.

  • [BATT_PER] <= 15 :

    배터리 잔량 비율이 15% 이하인 경우 [BATT_PER] <= 15가 true이고 1을 반환합니다.

    배터리 잔량 비율이 15%보다 큰 경우 [BATT_PER] <= 15는 false이고 0을 반환합니다.

  • 1000 * ([HRATE] < 100) + 120

    심박수가 100bpm 미만인 경우 [HRATE] < 100은 true이고 값 1을 반환합니다. 그다음으로 1에 1,000을 곱하고 120을 더합니다. 반환되는 최종 값은 1,120입니다.

    심박수가 100bpm 이상인 경우 [HRATE] < 100은 false이고 값 0을 반환합니다. 그다음으로 0에 1,000을 곱하고 120을 더합니다. 반환되는 최종 값은 120입니다.

논리 연산자

논리 연산자는 둘 이상의 관계 연산의 결과를 결합하고 값 1(true) 또는 0(false)을 반환합니다. 태그 표현식은 두 가지 유형의 논리 연산(AND 및 OR)을 지원합니다.

  • AND – 별표(*)로 표시됩니다.

    AND 논리 연산자가 값 1(true)을 반환하려면 두 관계 연산이 모두 true여야 합니다. 그렇지 않은 경우 반환 값은 0(false)입니다.

  • OR – 더하기 기호(+)로 표시됩니다.

    OR 논리 연산자가 값 1(true)을 반환하려면 하나 이상의 관계 연산이 true여야 합니다. 두 관계 연산이 모두 false인 경우 반환 값은 0(false)입니다.

다음 표는 논리 연산의 결과를 설명합니다.

관계 연산 1의 결과

관계 연산 2의 결과

AND(*)의 결과

(관계 연산 1) * (관계 연산 2)

OR(+)의 결과

(관계 연산 1) + (관계 연산 2)

0(false)

0(false)

0 * 0 = 0

0 + 0 = 0

0(false)

1(true)

0 * 1 = 0

0 + 1 = 1

1(true)

0(false)

1 * 0 = 0

1 + 0 = 1

1(true)

1(true)

1 * 1 = 1

1 + 1 = 1

두 피연산자(연산자 양쪽의 값)가 모두 관계 연산인 경우에만 논리 연산자가 적용됩니다. 두 피연산자 중 하나가 숫자 값인 경우 산술 연산자가 적용됩니다.

논리 연산

산술 연산

산술 연산

두 피연산자가 모두 관계 연산임:

(0 <= 1) * (1 < 2)


결과: 1

한 피연산자는 관계 연산이고 다른 피연산자는 값임:

(0 <= 1) *120


결과: 120

두 피연산자가 모두 값임:

1 * 120


결과: 120

이 태그 표현식은 연산자 양쪽에 두 개의 관계 연산(0<=1 및 1<2)으로 구성됩니다. 따라서 논리 연산자가 적용됩니다. 두 관계 연산이 모두 true이므로 이 태그 표현식의 최종 결과는 1(true)입니다.

이 태그 표현식은 관계 연산(0<=1)과 숫자 값(120)으로 구성됩니다. 따라서 산술 연산자가 적용됩니다.
관계 연산의 결과는 1(true)이고, 여기에 120이 곱해집니다. 이 연산의 최종 결과는 120입니다.

이 태그 표현식은 2개의 숫자 값(1과 120)으로 구성됩니다. 따라서 산술 연산자가 적용됩니다. 결과는 1에 120을 곱한 값이며, 최종 결과 120이 반환됩니다.

3항 연산자

3항 연산에는 3개의 피연산자가 있습니다. 조건부 연산과 조건부 연산이 true인 경우의 결과, 조건부 연산이 false인 경우의 결과가 여기에 해당됩니다. 조건부 연산은 관계 연산 또는 논리 연산일 수 있습니다.

3항 연산은 다음과 같은 형식으로 표시됩니다.

conditional_operation? result_if_true: result_if_false

다음 예는 시계 화면에서 이미지의 불투명도를 설정하는 데 사용됩니다.

  • [BATT_PER] <= 20? 15: 100

    이 연산은 배터리 잔량 비율이 20% 이하인 경우 시계 화면의 이미지 불투명도를 15로 설정합니다. 그 외의 경우에는 불투명도를 100으로 설정합니다.

  • ([BATT_PER] >= 50) * ([BATT_PER] <= 75)? 100: 0

    이 예에서는 조건부 연산에 논리 연산을 사용합니다.

    이는 배터리 잔량 비율이 50% 이상이고 75% 이하인 경우 시계 화면의 이미지 불투명도를 100으로 설정합니다. 그 외의 경우에는 불투명도를 0으로 설정합니다.

중첩 3항 연산

3항 연산은 다른 3항 연산의 결과 피연산자 내에 중첩될 수 있습니다.

예를 들어 두 개의 3항 연산 (a? b: c)와 (x? y: z)가 있는 경우 다음과 같은 중첩된 3항 연산을 만들 수 있습니다.

  • conditional_operation? (a? b: c): result_if_false

    If conditional_operation 이 true인 경우 조건부 연산 a를 확인합니다.

    a가 true인 경우 결과는 b입니다. a가 false인 경우 결과는 c입니다.

    If conditional_operation 이 false인 경우 결과는 result_if_false.

  • conditional_operation? result_if_true: (x? y: z)

    If conditional_operation 이 true인 경우 결과는 result_if_true.

    If conditional_operation 이 false인 경우 조건부 연산 x를 확인합니다.

    x가 true인 경우 결과는 y입니다. x가 false이면 결과는 z입니다.

  • conditional_operation? (a? b: c): (x? y: z)

    If conditional_operation 이 true인 경우 조건부 연산 a를 확인합니다.

    a가 true인 경우 결과는 b입니다. a가 false인 경우 결과는 c입니다.

    If conditional_operation 이 false인 경우 조건부 연산 x를 확인합니다.

    x가 true인 경우 결과는 y입니다. x가 false이면 결과는 z입니다.