프로젝트/한이음

페이지 GET요청을 확인 중 지도페이지에 두번 이상 접속 하면 페이지 로딩시간이 굉장히 길어지고, websocket의 지도좌표값이 갱신되지 않는 현상 발견. 처음에는 단순히 컴퓨터의 렉때문에 느린것이라고 판단하고 내버려 두었지만, 생각보다 과하게 페이지 로딩이 되지 않아 의문을 가지고 지도 요청 시 websocket동작에 대해 한번 더 살펴보기로 함. 한이음 콜드론 프로젝트를 진행중 websocket을 통하여 http://127.0.0.1:8000/app1/page3 접속 시 실시간 지도 좌표정보를 보내 주었다. 브라우저로 실시간 좌표값을 보내주는 django의 파이썬 코드는 다음과 같다. # 장고 서버 실행시 WSConsumer class가 생성된다. class WSConsumer(AsyncWebsoc..
사용자가 목적지 정보 post 요청을 보내면, 그 목적지 데이터를 좌표값으로 변환 후 drone(jetson nano)로 전송해준다. 이때 views.py 함수에서 공유변수를 통해 manage.py에서 사용할 수 있도록한다. manage.py의 드론과 연결된 socket객체를 통해 목적지 데이터를 드론에게 전송한다. 사용자 post요청시 목적지 정보를 공유 변수 send_data_to_drone에 넣는다. ※ 이떄 send_data_to_drone 은 deque()자료구조이다. manage.py에서 views.py의 공유변수를 사용하기 위하여 import 해준다. 이전 포스팅에서 드론으로부터 실시간으로 수신대기하는 스레드 listen_data_from_jetson이다. 이 함수에 조건문을 이용하여 pos..
드론으로부터 실시간 위치정보를 받기 위해 Django server에 socket server를 열어 드론 클라이언트가 접속할 수 있도록 하였다. 드론으로부터 받은 실시간 GPS데이터는 곧바로 Websocket 실시간방식을 통하여 브라우저의 지도정보에 표시된다. Django 서버 시장시 socket서버를 실행시키고 프로젝트용 드론(클라이언트)가 들어 올때 까지 수신하도록 코드를 수정하였다. 프로젝트용 드론(클라이언트)가 접속했다면 드론으로부터 data를 수신할 수 있는 스레드를 한개 생성한다. listen_data_from_jetson함수는 항상 드론(jetson_nano)로부터 데이터를 받을 수 있도록 대기하는 역할 을 한다. 데이터가 들어온다면 Websocket 공유변수인 data_from_drone에..
장고 서버 실행시 드론제원정보 전송을 위한 쓰레드 생성 함수를 작성하였다. 그러나 서버 생성 시 스레드 한 개가생성될 거라 예상했던 것과 달리 두 개의 스레드가 호출되는 것을 확인할 수 있었다. 스레드뿐만 아니라 모든 프로그램이 두 개가 실행되는 것 같은 문제가 발생하였다. 알아보니 Djnago의 라이브 리로드 기능 때문이었다. 라이브 리로드 기능으로 인해 장고는 서버를 재시작 하지 않아도 바로바로 수정한 내용이 적용 되었는데,, 이것은 맨 처음 서버실행시 같은 프로세스를 두개 생성하기 때문이라고 한다. 그러므로 장고 서버생성시 한번 호출되어야 하는 프로그램(쓰레드, 프로세스)등이 있다면 아래와 옵션을 통해 리로드 기능을 끄고 실행 할 수 있다. noreload 옵션 사용하기 python manage.p..
1. 개발 프로젝트 관리 기본구조 .git : git버전관리에 필요한 자료들 drone : 드론 프로그래밍에 필요한(인공지능, 자율주행 알고리즘) 프로젝트 관리 폴더 web : 모바일 어플리케이션 프로그래밍에 필요한 프로젝트 관리 폴더 .gitignore : 깃사이트에 올리지 않아도 되는(무시해도되는)파일들을 적어놓는다. README.md : 프로젝트에 대한 설명 2. drone디렉토리 demo : 인공지능등의 파이썬 프로그래밍 데모(자유연습) - 근데 굳이 여기다가 안해도됨 개인적으로 하면깔끔 main_package : 프로젝트에 사용하는 각종 라이브러리, 함수, 클래스등을 분리해서 보관 main.py : 드론 프로그래밍이 소스코드 main파일 3. web디렉토리 backend/src : 백엔드단의 메..
최대한 간단하게만 적었구 기본적인 commit하는 방법은 알아야 될거같아요!! 1. 소스트리 or git(본인 편한 방식 사용)접속 후 본인 이름 브랜치로 접속하기!!!!(완전중요) 2. 자유롭게 개발하며 commit 하기~ 3. 기능 완성시 push하기 * 기능단위(ex 로그인기능, 방향전환기능, 데이터전송기능 등) -> 이때 로컬 브랜치, 리모트 브랜치 명 꼭 확인해주세요~(자기 이름브랜치인지 아닌지) 본인것만 체크 되어있는지 확인후에 push 눌러주셔야됩니다!! 4. github들어가서 pr요청하기 github 사이트의 pull requests 클릭 우측의 New pull request 클릭 왼쪽 값들을 반드시 dev 본인 브랜치이름으로 설정 왼쪽 값 설정 후 오른쪽 Create pull reque..
Don't stop 훈
'프로젝트/한이음' 카테고리의 글 목록