Skip to content

TMA‐2 클라이언트 사용 가이드

LUFT-AQUILA edited this page Oct 19, 2023 · 11 revisions

TMA-1이 전송한 데이터를 실시간으로 모니터링하기 위한 웹 클라이언트입니다.

https://monolith.luftaquila.io/live/ 에서 서비스됩니다.

image


1. 차량 ID 설정

우선 차량 ID 설정 버튼을 눌러 사용자 등록 시 정한 차량 ID와 key를 입력합니다.

차량 ID와 key는 여러 명이 공통으로 사용하는 TMA-2 서버에서 각 팀을 구분하기 위한 용도입니다.

ID와 key를 입력하고 확인을 누르면 페이지가 새로고침되고 설정이 반영됩니다.

image

  • 설정한 차량 ID와 key는 해당 브라우저에 저장됩니다. 다른 브라우저로 페이지에 접속하면 다시 설정해야 합니다.

2. UI 설정

UI 설정 버튼을 누르면 UI 설정 창이 표시됩니다.

UI는 여러 데이터를 묶는 데이터그룹과, 데이터그룹에 속한 데이터로 구성됩니다.

2-1. 데이터그룹

image

데이터 그룹 추가 버튼을 누르면 데이터그룹이 추가됩니다.

image

데이터그룹은 이름과 아이콘, 그리고 포함하고 있는 데이터로 이루어집니다.

이름을 입력하고, 필요하다면 아이콘을 선택합니다. 옆의 검색 버튼을 눌러 사용 가능한 아이콘 이름을 검색할 수 있습니다.

데이터 추가 버튼을 누르면 데이터그룹에 데이터를 추가합니다.


2-2. 데이터

image

데이터는 다음과 같은 속성들을 가지고 있습니다.

  • 이름
  • 아이콘
  • 디스플레이 타입
  • 데이터 소스
  • 데이터 배율
  • 데이터 단위

데이터그룹과 같이 이름과 아이콘을 설정하고, 디스플레이 타입을 선택합니다.

디스플레이 타입

TMA-2 클라이언트는 4가지 디스플레이 타입을 지원합니다.

1. digital

데이터 소스의 값이 0이라면 OFF, 0이 아니라면 ON을 표시하는 가장 단순한 디스플레이입니다.

image

데이터 배율과 데이터 단위 설정을 지원하지 않습니다.

2. value

데이터 소스의 값을 그대로 보여주는 디스플레이입니다.

image

데이터 소스의 값에 배율을 곱한 값을 보여줍니다. 데이터 단위는 표시되는 값 우측에 작게 표시됩니다.

3. graph

데이터 소스의 값과 함께 최근 1분간 그래프를 보여주는 디스플레이입니다.

image

4. gps

차량의 실시간 위치를 지도에서 보여주는 디스플레이입니다.

image

데이터 소스, 배율, 단위 설정을 지원하지 않습니다.

자동으로 GPS / latGPS / lon 값을 이용해 차량의 위치를 표시합니다.


데이터 소스

데이터 소스는 일반 데이터 소스와 CAN 데이터 소스로 구분됩니다.

일반 데이터 소스

CAN 트래픽을 제외한 나머지는 모두 일반 데이터로 분류됩니다.

image

설정 도구에서 일반 을 선택한 후, 아래 드롭다운 메뉴에서 소스를 선택합니다.

CAN 데이터 소스

8 byte로 구성된 하나의 CAN 메시지는 다음 예시처럼 대개 여러 정보를 포함하고 있습니다.

CAN 메시지에서 특정 부분만을 분리해 데이터로 표시할 수 있습니다.

image

  • CAN ID: CAN 메시지 ID를 설정합니다.
  • 데이터 기본 단위: CAN 메시지를 바이트 단위로 분리할 것인지, 비트 단위로 분리할 것인지 선택합니다.
    • Byte 단위
      • Endian: 표시할 데이터가 CAN 메시지에 저장된 방식(엔디언)을 지정합니다.
      • Byte #: 표시할 데이터를 가지고 있는 시작과 끝 바이트 번호를 지정합니다.
    • Bit 단위
      • Bit #: 표시할 데이터를 가지고 있는 시작과 끝 비트 번호를 지정합니다.

Bit 단위 데이터 분리 기능은 아직 지원하지 않습니다. (#7)


2-3. UI export/import

UI 설정 또한 브라우저에 저장됩니다. 다른 브라우저를 사용하여 접속하면 UI를 새로 설정해야 합니다.

매번 UI를 일일히 다시 설정하지 않도록 UI 내보내기와 불러오기 기능을 지원합니다.

UI 설정 내보내기 버튼을 누르면 현재 설정된 UI가 ui_config.json 파일로 다운로드됩니다.

UI 설정 불러오기 버튼을 누르면 파일 업로드 팝업이 표시됩니다.

image

내보냈던 ui_config.json 파일을 선택하고 확인 버튼을 누르면, 해당 UI가 그대로 적용됩니다.

아래 샘플 UI 설정을 복사해 ui_config.json 파일로 저장하고 불러오면 미리 설정된 샘플 UI가 적용됩니다.

샘플 ui_config.json
[
  {
    "name": "디지털",
    "icon": "wand-magic-sparkles",
    "data": [
      {
        "name": "DIN0",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN0"
      },
      {
        "name": "DIN1",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN1"
      },
      {
        "name": "DIN2",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN2"
      },
      {
        "name": "DIN3",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN3"
      },
      {
        "name": "DIN4",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN4"
      },
      {
        "name": "DIN5",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN5"
      },
      {
        "name": "DIN6",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN6"
      },
      {
        "name": "DIN7",
        "icon": "database",
        "display": "digital",
        "type": "standard",
        "source": "DIGITAL / DIN7"
      },
      {
        "name": "PIN0",
        "icon": "wave-square",
        "display": "value",
        "type": "standard",
        "source": "PULSE / PIN0",
        "scale": 1,
        "unit": ""
      },
      {
        "name": "PIN1",
        "icon": "wave-square",
        "display": "value",
        "type": "standard",
        "source": "PULSE / PIN1",
        "scale": 1,
        "unit": ""
      },
      {
        "name": "PIN2",
        "icon": "wave-square",
        "display": "value",
        "type": "standard",
        "source": "PULSE / PIN2",
        "scale": 1,
        "unit": ""
      },
      {
        "name": "PIN3",
        "icon": "wave-square",
        "display": "value",
        "type": "standard",
        "source": "PULSE / PIN3",
        "scale": 1,
        "unit": ""
      }
    ]
  },
  {
    "name": "아날로그",
    "icon": "gauge-simple-high",
    "data": [
      {
        "name": "AIN0",
        "icon": "0",
        "display": "value",
        "type": "standard",
        "source": "ANALOG / AIN0",
        "scale": 5,
        "unit": "V"
      },
      {
        "name": "AIN1",
        "icon": "1",
        "display": "value",
        "type": "standard",
        "source": "ANALOG / AIN1",
        "scale": 5,
        "unit": "V"
      },
      {
        "name": "AIN2",
        "icon": "2",
        "display": "value",
        "type": "standard",
        "source": "ANALOG / AIN2",
        "scale": 5,
        "unit": "V"
      },
      {
        "name": "AIN3",
        "icon": "3",
        "display": "value",
        "type": "standard",
        "source": "ANALOG / AIN3",
        "scale": 5,
        "unit": "V"
      },
      {
        "name": "CPU 온도",
        "icon": "temperature-three-quarters",
        "display": "graph",
        "type": "standard",
        "source": "ANALOG / CPU_TEMP",
        "scale": 1,
        "unit": "°C"
      },
      {
        "name": "LV 전압",
        "icon": "bolt",
        "display": "graph",
        "type": "standard",
        "source": "ANALOG / INPUT_VOLTAGE",
        "scale": 1,
        "unit": "V"
      }
    ]
  },
  {
    "name": "가속도",
    "icon": "car-on",
    "data": [
      {
        "name": "X-axis",
        "icon": "x",
        "display": "graph",
        "type": "standard",
        "source": "ACCELEROMETER / x",
        "scale": 1,
        "unit": "G"
      },
      {
        "name": "Y-axis",
        "icon": "y",
        "display": "graph",
        "type": "standard",
        "source": "ACCELEROMETER / y",
        "scale": 1,
        "unit": "G"
      },
      {
        "name": "Z-axis",
        "icon": "z",
        "display": "graph",
        "type": "standard",
        "source": "ACCELEROMETER / z",
        "scale": 1,
        "unit": "G"
      }
    ]
  },
  {
    "name": "GPS",
    "icon": "satellite",
    "data": [
      {
        "name": "map",
        "icon": "map-location-dot",
        "display": "gps"
      },
      {
        "name": "위도",
        "icon": "map-location-dot",
        "display": "value",
        "type": "standard",
        "source": "GPS / lat",
        "scale": 1,
        "unit": "°"
      },
      {
        "name": "경도",
        "icon": "map-location-dot",
        "display": "value",
        "type": "standard",
        "source": "GPS / lon",
        "scale": 1,
        "unit": "°"
      },
      {
        "name": "GPS 속도",
        "icon": "plane",
        "display": "graph",
        "type": "standard",
        "source": "GPS / speed",
        "scale": 1,
        "unit": "km/h"
      },
      {
        "name": "진행 방향",
        "icon": "location-arrow",
        "display": "value",
        "type": "standard",
        "source": "GPS / speed",
        "scale": 1,
        "unit": "°"
      }
    ]
  }
]