빠른 시일내에 만들어야 했기 때문에 코드가 "상당히" 난잡할 수 있습니다. 주석처리도 시간관계상 못했구요. 기능상의 문제를 고쳐야 하거나 추가하려는 분들은 ssh9930@gmail.com 으로 연락 주시길 바랍니다. 추가: Release가 아닌 Debug 빌드는 두 프로젝트 모두 excutables 폴더로 설정되어 있습니다.
gajwa-businfo는 가좌고등학교 버스정류장에 오는 각 버스들의 실시간 위치, 오는데 소요되는 시간 등을 출력해주는 버스정보안내 프로그램 입니다. 학교학교 정문 내부에 있는 FHD 해상도의 TV에서 하교시간대에 설정된 시간만큼 버스정보가 출력되도록 설계되었습니다.
gajwa-businfo는 .NET WPF 기반으로 개발되었으며, 스크래핑을 위해 외부 API Selenium.WebDriver와 헤드리스 파이어폭스 브라우져인 'geckodriver' 를 사용합니다. 스크래핑은 모바일용 경기버스정보 웹사이트의 '가좌고등학교' 정류소 안내 페이지 (http://m.gbis.go.kr/search/StationArrivalViaList.do?stationId=219001119) 를 이용합니다. 추가적인 개발 정보는 "https://github.com/ssh9930/gajwa-businfo" 에서 확인할 수 있습니다.
- https://github.com/ssh9930/gajwa-businfo에 접속해 초록색 'Clone or download' 버튼을 클릭
- 'Download ZIP' 클릭 후 압축 파일 다운로드
헤드리스 브라우져는 앞에서 나온 웹사이트에 저작권 문제때문에 업로드 되어있지 않습니다. 이 부분은 프로그램이 실행되는 cpu의 아키텍쳐에 따라 달라지므로 개발자에게 문의하세요. 헤드리스 브라우져가 없을경우 프로그램이 작동하지 않습니다.
- 다운받아진 압축 파일의 압축을 풀고, gajwa-businfo-master/excutables 폴더로 이동
- 기본으로 정보가 출력되는 노선 057을 제외한 프로그램이 가져올 노선들의 번호를 buslist.txt에 입력, 예) '062,063,N007'
- gajwa-businfo-manager.exe 실행
안내1: 057-average.txt 파일은 057 평균배차간격 정보가 기록된 파일입니다. "시행횟수,마지막으로 기록된 평균 배차간격 (초)"의 형식으로 기록됩니다. ex) 4,303
안내2: buslist.txt에 스크래핑 결과 존재하지 않는 노선이 입력된 경우, 자동으로 출력 노선 목록에서 제외됩니다.
안내3: 프로그램 화면은 5초마다 갱신됩니다.
주의0: gajwa-businfo.exe를 단독으로 실행할 경우 출력 시작시간과 종료시간의 제어 없이 24시간 출력됩니다.
주의1: 'gajwa-businfo-manager.exe', 'gajwa-businfo.exe', 'geckodriver.exe, 'WebDriver.dll', '057-average.txt', 'buslist.txt' 파일들이 같은 폴더에 있어야 프로그램이 정상적으로 동작합니다. 추가로 '057-average.txt'에는 별도의 형식을 갖춘 문자열이 기록되어 있어야 합니다.
주의2: buslist.txt에 반드시 형식을 지켜 입력해야 합니다. 노선번호와 쉼표 이외의 문자 (띄어쓰기, 탭) 등은 프로그램에서 노선번호 문자열에 포함된다고 인식하기 떄문에 버스정보를 가져오는데 차질이 생길 수 있습니다.
주의3: gajwa-businfo-manager.exe 에서 활성화 시간과 비활성화 시간의 간격을 1분 이내로 설정하면 프로그램에 오류가 발생할 수 있습니다.
버스정보안내시스템의 출력 시간 시간과 출력 종료 시간을 관리하는 프로그램 입니다. 각 요일에 해당하는 텍스트 상자에 버스정보안내시스템이 켜지기를 희망하는 시간대를 '00:00-00:00' 형식으로 적어주세요. ex) 17:00-17:40 텍스트 상자를 공백으로 놔둘경우 해당 요일에는 프로그램이 실행되지 않습니다.
'시작' 버튼을 누르면 활성화 시간대가 아니면 프로그램을 종료하고, 활성화 시간대가 되면 자동으로 프로그램을 실행시킵니다. '설정 저장' 버튼을 누르면 각 텍스트 상자에 입력한 시간 값들이 영구적으로 프로그램 내부에 저장되어 다음에 값을 입력할 필요가 없습니다.
주의0: 프로그램이 종료된다고 하여 연결된 모니터 (TV)가 같이 꺼지진 않습니다. 활성화/비활성화 시간대에 맞춰 수동으로 TV의 전원을 제어해야 합니다.
주의1: '시작' 버튼을 누르고 비활성화 시간대에 gajwa-businfo.exe 프로세스가 발견되면, gajwa-businfo-manager는 해당 프로세스를 즉시 종료합니다.
주의2: 각 요일별 텍스트 상자에 형식에 벗어난 문자열을 입력하고 '시작' 버튼을 누를 경우 오류가 발생합니다.