[Arduino] - 디스플레이 오토피벗 디바이스 "피버시노" 파이썬 프로그램 업데이트 (피버시노 v.1.1.2)
"피벗이노"는 화면 방향을 전환할때 display.exe 라는 외부 프로그램을 사용해왔다. 문제는 핵심적인 기능을 담당하는 이 프로그램에 문제가 생기면 아무것도 하지 못한다. 이렇게 프로그램이 분산되어 있으면 결손, 손상, 수정에 어려움이있다. MDSN에서 개발자들에게 제공해주는 DEVMODE 를 이용하면 연결된 디스플레이 정보를 가져와 컨트롤 패널의 디스플레이 설정을 프로그래밍으로 만져볼 수 있다. 실제로 디스플레이와 관련된 응용프로그램이나 드라이브를 운용하기위한 드라이버를 만들때 사용된다. DEVMODE를 이용해 rotateTO 함수를 만들었다. rotateTO 함수 작동방식은 오토피벗 기능을 사용할 디스플레이 넘버를 지정해주고 모니터의 현재 방향에 따른 너비와 높이 값 교환 및 회전이다. 이 함수를 이용하면 display.exe에 의존하지 않아도 된다. 파이썬 에서는 win32api를 이용해 DEVMODE를 사용할수 있다. win32api를 사용하려면 라이브러리가 있어야한다. pip install pypiwin32 이 함수는 Rotating the Screen in C# 을 참고하여 작성되었다. Mapping the APIs 의 NativeMethods 클래스에 화면 방향에 따른 상수 값이 정해져 있다. 여기서 봐야 할 값들은 다음과 같다. DMDO_DEFAULT = 0; DMDO_90 = 1; DMDO_180 = 2; DMDO_270 = 3; 이 상수값들이 디스플레이의 회전 방향을 결정해준다. # Changing Screen Orientation Programmatically def rotateTO(rotateDic): display_num = 0 # display 1 device = win32.EnumDisplayDevices(None,display_num) dm = win32.EnumDisplaySettin