파일 데이터 형식
아두이노 기기에서 사용하는 파일 데이터 형식은 다음과 같다.
(뜀걸음 시작 시각) // (시작 시각) - (1970/01/01 00:00:00) sec
(상대 시각),(상대 x 좌표),(상대 y 좌표)
(상대 시각),(상대 x 좌표),(상대 y 좌표)
(상대 시각),(상대 x 좌표),(상대 y 좌표)
...예를 들면 이런 식이다.
1633930262
10,-61,30
20,-74,43
30,-67,50
...이런 형식을 사용하게 된 이유는 BLE의 낮은 전송 속도 때문이다. BLE는 Bluetooth Low Energy의 약자로 소모 전력을 크게 줄인 대신 전송 속도도 크게 줄어들었다. 때문에 효율적인 데이터 송수신을 위해서는 데이터의 크기를 줄여야만 했다.
상대 시각을 사용하지 않는다면?
상대 시각 대신 절대 시각만 사용한다면 어떻게 될까?
1633930272,-61,30
1633930282,-74,43
1633930292,-67,50
1633930302,-61,51
...절대 시각을 사용한다면 원본 데이터 형식의 첫째 줄, 시작 시각이 필요 없을 것이다. 이는 상대 시각의 기준이 되는 시각이기 때문이다. 대신 매 줄마다 6~8개의 문자를 추가적으로 사용하게 된다. 때문에 절대 시각을 사용하는 것은 데이터의 용량 면에서 큰 손해이다.
상대 좌표를 사용하지 않는다면?
상대 좌표 대신 절대 좌표만 사용한다면 어떻게 될까?
1633930262
0,37.88131,127.72997
10,37.88070,127.73027
20,37.88057,127.73040
30,37.88064,127.73047
...파일 용량이 늘어나는 것은 둘째 치고, 더 큰 문제가 있다. 질주 기기의 사용 대상은 군장병으로 군 내에서 사용하게 될 것이다. 그런데 기기에서 절대 좌표를 수집한다면? 이는 군 부대의 위치를 수집하는 것과 더불어 이동 코스 데이터를 통해 부대의 모양까지 유추할 수 있다. 때문에 절대 좌표는 절대 사용할 수 없다.
위의 절대 좌표를 상대 좌표로 변환해보자. 이때 위에서와 같은 보안 문제로 기준 좌표는 사용할 수 없다. 따라서 앱에서는 사용자가 위도 37도, 경도 127도(대한민국 평택)에서 출발하였다 가정하고 거리를 계산한다. 이때 약간의 오차가 발생하지만 정상적인 사용이 불가능한 정도는 아니다.
1633930262
10,-0.00061,0.00030
20,-0.00074,0.00043
30,-0.00067,0.00050
...쓸모 없는 소수점 때문에 데이터의 용량이 커진다. 소수점을 제거한다.
1633930262
10,-61,30
20,-74,43
30,-67,50
...이것이 현재 사용하고 있는 파일 데이터 형식이다.
Last updated