- Windows 7 or later
- Raspbian Buster or later(Buster 미만 버전은 Python3.7을 지원하지 않음)
- Python 3.7 설치
- Pycharm Community 설치
- GitTool(GitKraken, Github Desktop, Git Bash 등등)로 레포지토리 복제
- Pycharm 으로 virtual env 생성
pip3 install -r requirements-windows.txt
로 의존 라이브러리 설치- Python으로 run.py 실행
sudo apt-get install python3 python3-dev-tools python3-setuptools qt5-default
로 파이썬 설치sudo python3 -m pip install -r requirements-posix.txt
로 의존 라이브러리 설치sudo python3 run.py
로 실행(GUI 환경에서 실행)
planner.ui
를 이용하여MainWindow(QtWidgets.QMainWindow)
를 생성- 각 로그 유닛(
external_storage_manager.py
,music_player.py
,scheduler.py
)을 생성 후 실행 data/schedule.py
를 바탕으로 스케줄 조회 창 완성,data/quick_macros.py
를 바탕으로 매크로 버튼 목록 완성- 로그 갱신 타이머(
log_timer(QTimer)
) 실행 MainWindow
콘솔 입력, 로그 표시, 매크로 입력 등의 UI 작업 처리
ExternalStorageManager(QThreadWithLogging)
외부저장장치 변동 시에 외부저장장치의 mp3를 내부저장장치로 복사MusicPlayer(QThreadWithLogging)
플레이 리스트에 음악이 있다면 재생
Scheduler(QThreadWithLogging)
data/schedule.py
에 따라서 해당하는 태그를 실행- 로그 갱신 타이머 중단 후 각 로그 유닛의
close()
호출 뒤 종료.
test
테스트 방송 송출get_musics
현재 기상송 목록 표시all_around_test
당일 스케줄의 모든 태그 명령어 순차 실행-로 시작하는 명령어들
태그 명령어로 실행
고정 오디오 재생시 사용
입구폐쇄, 점호준비, 점호시작, 점호종료, 기숙사퇴실, M-N학년급식
기상송
기상송 재생목록에 추가buffer/
에 비었을 경우(ExternalStorageManager
참조) 기본 노래 추가
(실제 재생은MusicPlayer
에서 실행함)기상송초기화
buffer/
초기화아침운동체크
MusicPlayer
에서 재생중인 노래 일시정지 후아침운동체크.mp3
재생
create_quick_macro_button
매크로 버튼 UI 생성 함수qt_message_handler
Qt가 보내는 메시지 핸들링 함수
run.py
,scheduler.py
,music_player.py
,external_storage_manager.py
등의 기본 소스코드가 루트에 존재audio/
오디오 파일 존재audio/default_music/
각 요일별 기본 노래 존재buffer/
외부저장소(USB)에서 복사된 파일이 존재data/
리소스 파일 존재data/planner.ui
Qt5 UI 파일data/quick_macros.py
매크로의 이름과 해당 콘솔 명령어 목록data/requiremnets-posix.txt
리눅스 환경에서 필요한 파이썬 모듈 목록data/requiremnets-windows.txt
윈도우 환경에서 필요한 파이썬 모듈 목록data/schedule.py
평일과 휴일의 스케쥴의 태그 명령어와 시간 목록