-
-
Notifications
You must be signed in to change notification settings - Fork 2
TMA‐2 클라이언트 사용 가이드
TMA-1이 전송한 데이터를 실시간으로 모니터링하기 위한 웹 클라이언트입니다.
https://monolith.luftaquila.io/live/ 에서 서비스됩니다.
우선 차량 ID 설정
버튼을 눌러 사용자 등록 시 정한 차량 ID와 key를 입력합니다.
차량 ID와 key는 여러 명이 공통으로 사용하는 TMA-2 서버에서 각 팀을 구분하기 위한 용도입니다.
ID와 key를 입력하고 확인을 누르면 페이지가 새로고침되고 설정이 반영됩니다.
- 설정한 차량 ID와 key는 해당 브라우저에 저장됩니다. 다른 브라우저로 페이지에 접속하면 다시 설정해야 합니다.
UI 설정
버튼을 누르면 UI 설정 창이 표시됩니다.
UI는 여러 데이터를 묶는 데이터그룹과, 데이터그룹에 속한 데이터로 구성됩니다.
데이터 그룹 추가
버튼을 누르면 데이터그룹이 추가됩니다.
데이터그룹은 이름과 아이콘, 그리고 포함하고 있는 데이터로 이루어집니다.
이름을 입력하고, 필요하다면 아이콘을 선택합니다. 옆의 검색
버튼을 눌러 사용 가능한 아이콘 이름을 검색할 수 있습니다.
데이터 추가
버튼을 누르면 데이터그룹에 데이터를 추가합니다.
데이터는 다음과 같은 속성들을 가지고 있습니다.
- 이름
- 아이콘
- 디스플레이 타입
- 데이터 소스
- 데이터 배율
- 데이터 단위
데이터그룹과 같이 이름과 아이콘을 설정하고, 디스플레이 타입을 선택합니다.
TMA-2 클라이언트는 4가지 디스플레이 타입을 지원합니다.
데이터 소스의 값이 0이라면 OFF
, 0이 아니라면 ON
을 표시하는 가장 단순한 디스플레이입니다.
데이터 배율과 데이터 단위 설정을 지원하지 않습니다.
데이터 소스의 값을 그대로 보여주는 디스플레이입니다.
데이터 소스의 값에 배율을 곱한 값을 보여줍니다. 데이터 단위는 표시되는 값 우측에 작게 표시됩니다.
데이터 소스의 값과 함께 최근 1분간 그래프를 보여주는 디스플레이입니다.
차량의 실시간 위치를 지도에서 보여주는 디스플레이입니다.
데이터 소스, 배율, 단위 설정을 지원하지 않습니다.
자동으로 GPS / lat
과 GPS / lon
값을 이용해 차량의 위치를 표시합니다.
데이터 소스는 일반 데이터 소스와 CAN 데이터 소스로 구분됩니다.
CAN 트래픽을 제외한 나머지는 모두 일반 데이터로 분류됩니다.
설정 도구에서 일반
을 선택한 후, 아래 드롭다운 메뉴에서 소스를 선택합니다.
8 byte로 구성된 하나의 CAN 메시지는 다음 예시처럼 대개 여러 정보를 포함하고 있습니다.
CAN 메시지에서 특정 부분만을 분리해 데이터로 표시할 수 있습니다.
- CAN ID: CAN 메시지 ID를 설정합니다.
-
데이터 기본 단위: CAN 메시지를 바이트 단위로 분리할 것인지, 비트 단위로 분리할 것인지 선택합니다.
- Byte 단위
- Endian: 표시할 데이터가 CAN 메시지에 저장된 방식(엔디언)을 지정합니다.
- Byte #: 표시할 데이터를 가지고 있는 시작과 끝 바이트 번호를 지정합니다.
- Bit 단위
- Bit #: 표시할 데이터를 가지고 있는 시작과 끝 비트 번호를 지정합니다.
- Byte 단위
Bit 단위 데이터 분리 기능은 아직 지원하지 않습니다. (#7)
UI 설정 또한 브라우저에 저장됩니다. 다른 브라우저를 사용하여 접속하면 UI를 새로 설정해야 합니다.
매번 UI를 일일히 다시 설정하지 않도록 UI 내보내기와 불러오기 기능을 지원합니다.
UI 설정 내보내기
버튼을 누르면 현재 설정된 UI가 ui_config.json
파일로 다운로드됩니다.
UI 설정 불러오기
버튼을 누르면 파일 업로드 팝업이 표시됩니다.
내보냈던 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": "°"
}
]
}
]
사용하면서 문제나 궁금한 내용이 있다면 자작자동차포럼의 데이터 분석 카테고리에 question
태그를 달아 올려주세요.
If you have any problems or questions while using monolith, you can post it as a Q&A in the Discussions.