드론으로부터 실시간 위치정보를 받기 위해 Django server에 socket server를 열어 드론 클라이언트가 접속할 수 있도록 하였다.
드론으로부터 받은 실시간 GPS데이터는 곧바로 Websocket 실시간방식을 통하여 브라우저의 지도정보에 표시된다.
Django 서버 시장시 socket서버를 실행시키고 프로젝트용 드론(클라이언트)가 들어 올때 까지 수신하도록 코드를 수정하였다.
프로젝트용 드론(클라이언트)가 접속했다면 드론으로부터 data를 수신할 수 있는 스레드를 한개 생성한다.
listen_data_from_jetson함수는 항상 드론(jetson_nano)로부터 데이터를 받을 수 있도록 대기하는 역할 을 한다.
데이터가 들어온다면 Websocket 공유변수인 data_from_drone에 append()해준다.
※ 이때 data_from_drone은 deque 자료구조이다.
http://127.0.0.1:8000/app1/page3 접속시 connect함수가 실행되며 data_from_drone deque()를 참조하게 되고, 실시간으로 받은 데이터가 존재한다면 Websocket을 통하여 브라우저의 지도에 표시된다.
사용자가 새로 페이지에 접속했을때 기존에 data_from_drone 데큐에 들어있전 자료들은 모두 초기화 시킨다.
그리고 새롭게 드론데이터를 가져와서 동기화를 시켜준다.
'프로젝트 > 한이음' 카테고리의 다른 글
[한이음] 페이지 이동시 websocket 함수의 무한루프처리 (0) | 2022.10.02 |
---|---|
[한이음]Django서버로부터 실시간데이터 수신 (0) | 2022.09.27 |
[한이음] Django 서버 시작시 2개 프로세스 생성 (0) | 2022.09.26 |
[한이음-콜드론] 프로젝트 디렉토리구조 (0) | 2022.07.10 |
[한이음-콜드론] 개발 메뉴얼 (0) | 2022.06.04 |