API for developers

GiFit Protocol
v2.0
Gymbet 통신 API




(Version 2.0)
[목차]

1. 개요
     1.1  적용범위
     1.2  적용단말기
     1.3  통신사양 

2. BLE 연결 Process
     2.1  BLE연결 흐름도
     2.2  BLE연결 Sequence 

3. 프로토콜 구조
     3.1  Service/ Characteristics 기본 구조
     3.2  SPCode Write
     3.3  StartTime Write
     3.4  Calculation reset Write
     3.5  Weight Machine Data
     3.6  Cycle Data
1. 개요
     -  본 문서는 Application으로 Bluetooth LE 통신을 통해, 당사의 제품인 GiFit을 제어하는데 필요한 프로토콜을 정의한 문서이다.
     -  프로토콜은 제어 프로토콜과 응답 프로토콜로 구성되어 있다.
     -  제어 프로토콜은 Application에서 GiFit을 제어하기 위한 프로토콜을 정의한 것이며, 응답 프로토콜은 GiFit에서 App으로 동작상태를 알리기         위한 프로토콜을 정의한 것이다. 

1.1 적용단말기
     -  Android 휴대폰
     -  iOS 휴대폰 

1.2  통신사양
     -  통신 방식: Bluetooth 5(LE)  
     -  프로파일: GAP/GATT
     -  전송 속도: 50Hz
     -  PHY: 2M
     -  Supervision timeout: 1,000ms(android) / 720ms(iOS)
     -  Slave latency: 0
2.  BLE 연결 Process
2.1  BLE 연결 흐름도 

2.2  BLE 연결 Sequence
     1)    QR 코드 Scan
     2)    해당 QR 코드에 담겨 있는 GiFit Local name 수신
     3)    GiFit Local name과 동일한 GiFit Scan 후, BLE 연결
     4)    운동 시작시간 및 SP 코드 명령 (정상적 명령 확인 후, 연산 알고리즘이 동작하며 countor distance data 전송)
     5)    기핏에서 SP코드 및 운동 시작시간 명령 정상확인 후, 운동 Data 50Hz로 수신
     6)    GiFit으로부터 운동 종료 signal 수신 후, BLE 연결 종료
3.  프로토콜 구조
3.1  Service / Characteristics 기본 구조
Service
UUID: 0x1826

   Char
   UUID: 0x2ADA
   Value: State, Sensor data, Count, Battery state

   Char
   UUID: 0x2A23
   Value: FW version, S/N
3.2  SP Code Write (Char 0x2ADA)
     -  SP Code: 4 Bytes / HEX
     -  SP Code에 따라, GiFit이 Weight Machine, Cycle 중 SP코드에 매칭된 알고리즘 적용 

3.3  Start Time Write (Char 0x2A23)
     -  BLE 연결 직후, 10초 내 “BLE 연결 시작 시간”의 Unix time을 HEX로 변환하여 GiFit Char 0x2A23에 write
     -  Start time: 4 Bytes / HEX

3.4  Calculation reset Write (Char 0x2ADA)
     -  운동 연산 알고리즘 reset 명령: 0x50(1 Byte / HEX) (Char 0x2ADA에 write)
     -  운동 시작 시간 및 SP코드를 입력한 직후 상태와동일한 상태로 전환
     -  필수는 아니지만, 디버깅 등을 위해 필요한 경우사용

3.5  Weight Machine Data
STA
RAW
CNT
BAT
     3.5.1  STA
          1)  BLE 연결 후 SP 코드와 시작 시간을모두 GiFit(HW)에 명령을 보내서, STA 값이 0x77로 변경되어야 정상적으로 count연산을 시작함

     3.5.2  RAW
          1)  HEX → DEC 변환

     3.5.3  CNT
          1)  HEX → DEC 변환

     3.5.4  BAT
3.6  Cycle Data
STA
RAW
CAD
BAT
     3.5.1  STA
          1)  Weight machine 과 동일

     3.5.2  RAW
          1)  HEX → DEC 변환

     3.5.3  CAD
          1)  Cadence data

     3.5.4  BAT
          1)  Weight machine과 동일