Device Procedures

본 장에서는 Smart[Fleet]에 연결하고자 하는 단말이 수행하는 절차에 대해서 기술합니다. 기술 된 절차를 좀 더 이해하기 쉽도록 Smart[Fleet] Device Simulator 를 참고하세요.


Device Connection

Smart[Fleet]은 단말 연동을 위해서 MQTT 프로토콜을 사용합니다. 단말이 MQTT 프로토콜을 통해서 Smart[Fleet] 플랫폼과 연동하기 위해서는 다음의 설정 값을 사용합니다.

URL smartfleet.sktelecom.com Smart[Fleet] 개발 서버
Port
9900
CA Signed Certification with ECC Encryption
username 할당 받은 Access Token (20자리) 값
password N/A
cleanSession True
version 3.1.1

단말은 정상적으로 접속을 한 후에 RPC 요청을 수신하기 위해서 아래 Topic을 Subscribe 한다.

Topic /v1/sensors/me/rpc/request/+

Device Registration

본 프로시저는 단말을 플랫폼에 등록하고, 단말의 타입에 따라 액티베이션 및 센서가 부착된 차량 정보와 매핑하는 일반적인 등록 절차를 기술한다.


Activation이 필요한 단말의 등록 절차

본 프로시저는 단말 동작 전 단말의 활성화(Activation)가 요구되는 단말에 적용되는 등록 절차를 기술한다.

./images/procedure_1.png
순번 설명
Prestep 사전에 각 단말은 SKT에서 제공한 Access Token을 보유하고 있어야 하며, Application (고객사)에서도 동일한 Access Token을 보유하고 있어야 함
1 Application Owner가 포털이나 HTTP API를 통하여 플랫폼에 단말의 정보를 등록하는 요청함
2 플랫폼은 1번 과정에서 요청받은 단말의 정보를 기반으로 단말의 정보를 등록 상기 등록과정에서 오류가 발생한 경우에는 수신 받은 인터페이스에 따라 회신
3 단말이 플랫폼에 연결을 시도한다. (Device Connection 참조)
4 RPC를 수신하기 위한 RPC Topic에 Subscribe를 한다. (Device Connection 참조)
5 차량과 등록된 센서 간 매핑 요청
6
  • 플랫폼에서 5번의 요청에 따라 요청 받은 단말이 Activation이 필요한지 여부를 판단한다.
  • 단말의 Activation 필요 여부는 플랫폼에 등록한 단말의 정보인 SensoractivationRequired 값이 true인 경우를 의미한다.
7
  • 상기 6번 과정에서 단말이 Activation이 필요하다고 명시된 경우, 플랫폼은 해당 단말에 Activation 정보를 내려주기 위한 RPC 제공
Message Format Device Activation을 위한 Request 참조
8 단말이 7번 단계의 Activation 요청을 수신
9
  • 단말이 Activation을 잘 수신했고, 이에 따라 Activation 수행 예정이라는 메세지를 플랫폼에 전달한다.
Message Format Device Activation을 위한 Response 참조
10 플랫폼이 고객사(포털 또는 HTTP Response)에게 9번 과정의 단말 RPC 메시지 수신 상태를 전달한다. (매핑과 액티베이션은 추후에 진행되는 것을 명시한다)
11
  • 단말이 Activation(일반적으로 일정 시간이 걸릴 수 있음)을 수행한 후에 Activation 결과를 단말이 플랫폼에 전달한다.
Message Format Device Activation을 위한 Result 참조
12 플랫폼은 수신한 Activation 결과를 저장하고, 정상적으로 Activation이 된 경우 단말과 차량을 매핑한다.
13 플랫폼은 12번의 결과를 고객사에 전달한다.


Activation이 필요하지 않는 단말의 등록 절차

본 프로시저는 단말 동작 전 단말의 활성화(Activation)가 요구되지 않는 단말에 적용되는 등록 절차를 기술한다.

./images/procedure_2.png
순번 설명
Prestep 사전에 각 단말은 SKT에서 제공한 Access Token을 보유하고 있어야 하며, Application (고객사)에서도 동일한 Access Token을 보유하고 있어야 함
1 Application Owner가 포털이나 HTTP API를 통하여 플랫폼에 단말의 정보를 등록하는 요청함
2 플랫폼은 1번 과정에서 요청받은 단말의 정보를 기반으로 단말의 정보를 등록 상기 등록과정에서 오류가 발생한 경우에는 수신 받은 인터페이스에 따라 회신
3 단말이 플랫폼에 연결을 시도한다. (Device Connection 참조)
4 RPC를 수신하기 위한 PRC Topic에 Subscribe를 한다. (Device Connection 참조)
5 차량과 등록된 센서 간 매핑 요청
6 플랫폼에서 5번의 요청에 따라 요청 받은 단말이 Activation이 필요한지 여부를 판단한다.
7 5번 과정의 매핑 요청에 따라 센서 엔티티에 센서가 연결된 차량의 식별자를 기입하여 논리적인 링크를 구성한다.
8 플랫폼이 고객사(포털 또는 HTTP Response)에게 센서와 차량 매핑 결과를 전달한다.


Device RPC

본 프로시저는 어플리케이션에서 요청된 단말 제어 절차를 기술한다.

./images/procedure_3.png
순번 설명
Prestep 별도 기술된 Device Registration(activation-procedure) 절차를 거친다. 서비스 등록 단계에서 RPC 결과 및 단말 Attribute 변경 정보를 수신하기 위한 HTTP Server 주소를 기입 받는다.
1 고객사의 Application에서 단말 제어 요청이 발생한다.
2
  • 고객사의 Application이 HTTP POST 메시지를 통해서 RPC 요청을 수행한다.
REST API /api/plugins/rpc/twoway/{device-Id}
3
  • 플랫폼은 2번 과정에서 수신한 RPC 요청 메시지를 단말에 포워딩 한다. 이때, 플랫폼은 RPC에 대한 요청 식별자``request-ID``를 Topic의 하나로 제공한다.
Topic v1/sensors/me/rpc/request/{request-ID}
4
  • 단말은 RPC 요청을 수신했다는 Ack를 플랫폼에 Return 한다. 단 해당 수신에 대한 Ack 메세지는 20초 내로 전송되지 않으면 Timeout 된 후 에러로 처리된다.
Topic v1/sensors/me/rpc/response/{request-ID}
Message Format Response 참조
5 플랫폼은 RPC 요청 수신 결과 메시지를 포워딩하여 Application에 상기 2번의 Response 형태로 응답한다.
6
  • 단말은 RPC 결과를 플랫폼에 전달한다.
Topic v1/sensors/me/rpc/result/{request-ID}
Message Format Result 참조
7 플랫폼은 상기 6번 과정의 Attribute가 Update 된 경우에 해당 결과를 그대로 고객사의 application에 푸시 형태로 제공한다. 이때, 주소는 Prestep에서 정의한 HTTP Server 주소를 활용한다.


OBD Device Procedures

본 프로시저는 OBD 단말이 데이터를 전송하는 프로시저를 명세합니다.

OBD Trip Data

본 프로시저는 OBD 센서에서 발생한 운행 기록을 위한 정보를 업로드 하는 절차를 기술한다.

./images/procedure_4.png
순번 설명
Prestep 별도 기술된 Device Registration(activation-procedure) 절차를 정상적으로 수행한다.
1
  • 단말은 차량의 운행이 시작되는 순간 부터 등록 시점에 명세한 주기에 따라 MicroTrip 데이터를 플랫폼에 전달한다.
Topic v1/sensors/me/tre, QoS 0
Message Format Microtrip 참조
2
  • 단말이 차량이 운행이 종료된 후, 운행 종료를 알리는 Trip 데이터를 플랫폼에 전달한다.
Topic v1/sensors/me/tre, QoS 1
Message Format Trip Message 참조

OBD Event Data

본 프로시저는 OBD 센서에서 발생한 운행 이벤트 정보를 업로드 하는 절차를 기술한다.

./images/procedure_5.png
순번 설명
Prestep 별도 기술된 Device Registration(activation-procedure) 절차를 정상적으로 수행한다.
1 차량에서 플랫폼에 전달할 이벤트가 발생한다.
2
  • 1번 과정에서 발생한 이벤트를 아래 규격에 맞추어 플랫폼에 전달한다.
Topic v1/sensors/me/tre, QoS 1
Message Format
  • 전달 가능한 이벤트는 아래와 같다.
  1. Diagnostic Information
  2. Collision warning (Driving)
  3. Collision warning (Parking)
  4. Battery Warning
  5. Unplugged Warning
  6. Turn-off Warning