Python®과 함께하는 SerialTool.


목차


Python이란?

Python®은 동적 의미론을 가진 해석된 객체 지향 고급 프로그래밍 언어입니다. 고급 내장 데이터 구조와 동적 타이핑 및 동적 바인딩은 빠른 애플리케이션 개발에 매우 매력적이며 기존 구성 요소를 연결하는 스크립팅 또는 접착 언어로 사용됩니다.
Python의 간단하고 배우기 쉬운 문법은 가독성을 강조하여 프로그램 유지 관리 비용을 줄입니다. Python은 모듈과 패키지를 지원하여 프로그램 모듈성과 코드 재사용을 장려합니다. Python 인터프리터와 광범위한 표준 라이브러리는 모든 주요 플랫폼에서 소스 또는 이진 형식으로 무료로 제공되며 자유롭게 배포할 수 있습니다.
Python®에 대한 자세한 정보는 웹사이트를 참조하십시오: www.python.org

법적 고지: "Python"은 PSF의 등록 상표입니다. SerialTool은 PSF와 제휴하거나 후원받지 않습니다. SerialTool은 스크립트 실행을 위해 Python을 호환 프로그래밍 언어로 사용하며 PC에 공식 버전의 Python이 설치되어 있어야 합니다.

SerialTool과 Python

SerialTool을 위한 Python 코드 에디터.


시리얼 포트를 사용하고 시리얼 포트로부터 데이터를 표시할 수 있는 환상적인 그래픽 인터페이스가 있기를 원하셨습니까?
이러한 기능이 필요하고 누구나 접근할 수 있는 간단한 언어로 시리얼 포트를 쉽게 제어할 수 있는 프로그램을 직접 만들고 싶다면, Python과 함께하는 SerialTool이 바로 찾던 도구입니다.
일부 프로그램은 시리얼 포트를 사용하며 일부 스크립팅 솔루션을 제공합니다. 즉, 코드를 작성하고 실행할 수 있지만 종종 언어를 모르거나 몇 줄의 코드를 통합하는 방법을 알아내는 데 몇 시간이 걸립니다! SerialTool과 내장된 Python을 사용하면 Python 스크립트를 작성하고 SerialTool의 모든 기능을 제한 없이 활용할 수 있습니다.
SerialTool은 라이브러리 형태의 기본 기능을 통합하고 몇 줄만으로 원하는 시리얼 포트를 검색하고 열고 읽고 쓸 수 있습니다. SerialTool은 들어오고 나가는 패킷의 그래픽 관리를 처리하며 원하는 기능을 수행하기 위해 Python 코드를 사용할 수 있습니다.
Python에서 쓰기 및 테스트를 용이하게 하기 위해 SerialTool은 스크립트를 업로드하고 수정할 수 있는 텍스트 에디터를 제공합니다. 통합 에디터는 Python 구문을 인식하며 코드 작성을 쉽게 할 수 있습니다.

시리얼 포트와 Python에 대한 자세한 내용

SerialTool과 그 통합 Python 라이브러리가 제공하는 기능에 대해 더 깊이 파고들어 보겠습니다. 실제 예를 들어 시작해 보겠습니다.
우리가 만든 장치의 펌웨어를 업로드할 수 있는 소프트웨어를 클라이언트나 동료에게 전달하려고 합니다. 이는 소프트웨어를 처음부터 만들어야 하고, 그래픽 인터페이스와 사용자 상호작용, 파일 선택 및 오류 또는 확인 메시지와 같은 여러 측면을 통합해야 하는 상당히 흔한 시나리오입니다.
이 경우 다른 언어와 달리 Python은 작업을 쉽게 만들지만 동시에 외부 라이브러리를 설치하고 업데이트를 따라가야 합니다.
SerialTool은 간단한 기능을 제공함으로써 기본적인 문제를 해결하여 신속하고 직관적으로 시리얼 포트를 선택할 수 있게 하며, 파일 로딩 및 저장을 위한 대화 상자와 프로그램 실행에 대한 사용자에게 정보를 제공하는 메시지 상자를 제공합니다.
이러한 기능은 매우 간단하게 호출되며 SerialTool을 설치할 수 있는 플랫폼(Windows, MacOS, Linux)에서 네이티브로 작동합니다. 이는 외부 라이브러리에 대한 의존성을 완전히 제거하며 사용자와의 상호작용의 기본 기능을 매우 간단하고 빠르며 직관적으로 몇 줄의 코드로 만듭니다.

기본 예제로 돌아가서, 우리는 모든 활성 포트를 닫고 SerialTool.scan 함수와 사용자가 선택한 시리얼 포트를 사용하여 사용 가능한 시리얼 포트를 검색하여 시작합니다.
이 시점에서 우리는 사용자가 사용하고자 하는 포트를 알고 있으며, GUI에 이미 존재하는 매개변수 설정이나 매개변수를 사용하여 SerialTool.open 함수를 사용하여 열기만 하면 됩니다. 시리얼 포트가 열리면 SerialTool.gui_loadfile 함수를 사용하여 파일을 로드하도록 요청하고, Python의 네이티브 함수를 사용하여 파일을 열고, 펌웨어 다운로드 실행에 대한 확인을 요청할 수 있습니다.
우리는 파일에 있는 버퍼를 SerialTool.write로 작성하고 쓸 바이트 수를 지정하며, 업데이트할 장치로부터 응답(예상되는 경우)을 SerialTool.read 명령으로 기다리는 순간에 도달합니다.
몇 분 안에 자신의 장치 또는 타사 장치를 업데이트하기 위한 프로그램을 작성할 수 있는 몇 가지 간단한 명령입니다.
복잡하게 들리나요? SerialTool은 통합된 잘 설명된 예제를 제공합니다.

Python을 위한 통합된 예제

이해를 돕고 결과를 달성하기 위해 SerialTool은 통합된 기능을 즉시 사용할 수 있도록 직접 기능적이고 주석이 달린 예제를 통합합니다. 통합된 기능이 시리얼 포트를 작동시키기 위해 외부 Python 라이브러리를 요구하지 않는다는 것이 큰 장점입니다.
Python의 기본 설치와 함께 우리의 예제는 이미 기능적입니다. 제공된 예제에서 우리 소프트웨어에 통합된 SerialTool 라이브러리의 모든 기능이 사용 가능합니다. 제안된 코드의 일부를 조정하기만 하면 몇 분 내에 스크립트를 사용자 지정하고 시리얼 포트용 프로그램을 개발할 수 있습니다.
SerialTool에서 제안된 예제는 버전별로 통합되어 사용 가능한 기능과 그 구현에 대한 직접적인 개요를 항상 제공합니다.
SerialTool 기능에 대한 전용 문서는 우리의 Python을 위한 SerialTool API 페이지에서 사용할 수 있습니다.

Python 설치

많은 튜토리얼은 PC에 Python이 이미 설치되어 있지 않은 경우 설치를 시작하고 최소한의 사용성에 도달할 수 있도록 구성합니다. 우리는 이 부분을 마지막으로 남겨두었습니다. 왜냐하면 SerialTool을 통해 Python 환경 메뉴가 한 번 Python이 PC에 설치되면 기존 구성을 검색하고 테스트할 것이기 때문입니다.
언급했듯이, Python은 무료이며 해석된 언어이며 PC에 인터프리터가 설치되어 있어야 합니다. 이 언어에 익숙한 사람들에게는 많은 설명이 필요 없지만, 이 놀라운 언어와 개발 환경을 처음 시도하는 사람들을 위한 단계는 매우 간단합니다.
Windows의 경우, 가장 최신 버전의 Python(이 문서 작성 시 3.12 버전)을 다운로드하고 실행 파일을 실행하여 완전히 설치합니다.
MacOS의 경우, Python이 이미 설치되어 있을 가능성이 높으며 Python 2 버전을 참조할 수 있으며 공식 Python 웹사이트에서 직접 실행 파일을 다운로드하여 최신 버전(이 문서 작성 시 3.12 버전)으로 업데이트해야 합니다(Windows와 동일하게).

MacOS 사용자를 위한 참고 사항: MacOS용 SerialTool의 현재 버전에서는 Python 3.12 프레임워크가 이미 통합되어 코드 서명에 대한 Apple의 요구 사항을 준수합니다. 시스템에 설치된 다른 버전을 사용하려면 "Python Environment" 메뉴에서 설정을 변경할 수 있습니다.

Linux의 경우, Ubuntu에서는 sudo apt-get install python3, Fedora에서는 sudo dnf install python3 명령어를 사용하여 명령 줄을 통해 설치해야 합니다.
Python 설치에 대해 의심이 있거나 어려움이 있는 경우, 공식 사이트나 온라인에 있는 수십 개의 튜토리얼을 항상 참조할 수 있습니다.

Python 환경 설정 및 구성.


설치가 확인되고 "Python 환경" 메뉴에서 설치를 검증한 후, "설치 확인" 버튼을 눌러 현재 Python 설정을 가져오고 SerialTool의 후속 시작을 위해 저장하기만 하면 됩니다.

준비가 되었습니다! 첫 번째 예제를 로드하고 [실행] 버튼을 눌러 SerialTool과 Python을 사용하여 시리얼 포트용 첫 프로그램을 작성하는 모험을 시작하세요.

추가 정보

스크립트 작성을 용이하게 하기 위해 통합된 에디터는 IDE의 전형적인 기능을 가지고 있지만 현재는 디버깅을 허용하지 않습니다.
사용 가능한 옵션 중에서 스크립트 실행이 끝날 때 시리얼 포트를 자동으로 닫는 옵션을 항상 선택하는 것이 좋습니다."스크립트 실행이 끝나면 자동으로 시리얼 포트 닫기." 스크립트에 쓰기 오류가 발생하면 SerialTool은 후속 스크립트 시작 시 닫아야 할 모든 열린 시리얼 포트를 닫도록 조치합니다.
스크립트를 중지하고 종료하려면 sys.exit() 함수를 사용하는 것이 권장되지 않습니다. 이는 Python이 통합되어 있기 때문에 SerialTool의 전체 종료를 초래할 수 있습니다. 소스 코드를 통해 스크립트 실행을 중지해야 하는 경우 SerialTool.stopscript 함수가 제공됩니다.
루프 내에 있을 경우 GUI에서 [정지] 버튼을 직접 사용하여 실행을 중지할 수 있습니다.
Python이 SerialTool에 직접 통합되어 있기 때문에 스크립트는 SerialTool 프로세스의 일부가 됩니다. 이와 관련하여 사이클에 While True 루프를 포함할 때, time.sleep(0.1) (from time library) 함수를 사용하여 작은 수면(일반적으로 0.1초)을 배치하는 것이 중요합니다. 그렇지 않으면 응용 프로그램을 완전히 멈출 위험이 있습니다.
과도하게 걱정하지 마십시오. 우리의 예제는 이러한 작은 지연을 삽입해야 할 중요한 지점을 강조합니다.

자주 묻는 질문

Python 통합이 일부 기능에 제한되어 있습니까?
아니요. Python 스크립트의 모든 기능이 직접 사용 가능하며 시스템에 있는 외부 라이브러리를 포함하여 로드할 수 있습니다.

SerialTool과 Python은 모든 운영 체제에서 작동합니까?
예. SerialTool과 Python이 사용 가능한 모든 플랫폼에서 사용이 가능합니다. 즉, Windows, MacOS, Linux에서 사용할 수 있습니다.

Python을 반드시 다운로드하고 설치해야 합니까?
예. 사용하려는 PC에 Python 인터프리터가 있어야 합니다. SerialTool은 Python3를 기반으로 하며 Python2와의 호환성은 두 버전의 호환성에 직접적으로 의존합니다. Python2 사용자는 어떤 경우에도 Python3을 사용하는 것이 권장됩니다.

Python은 SerialTool과 어떻게 상호 작용합니까?
Python 스크립트는 원하는 기능을 호출함으로써 우리 소프트웨어에 직접 통합된 SerialTool 라이브러리를 통해 상호 작용합니다. Python을 통해 설정된 매개변수, 시리얼 포트의 개방 및 폐쇄를 포함한 매개변수는 주 사용자 인터페이스에 직접 연결됩니다. 본질적으로 SerialTool 라이브러리와 그 기능을 통해 Python으로 직접 SerialTool을 조종합니다.

SerialTool의 기능을 계속 사용할 수 있습니까?
예. 모든 SerialTool 기능은 계속 사용 가능하며, AutoAnswer, Alarm, SerialScope, 패킷 디스플레이, 데이터 녹음, 네트워크로 패킷 전송 등이 사용자 인터페이스에서 선택할 수 있습니다.

여러 포트를 동시에 사용할 수 있습니까?
예. SerialTool의 기본 기능은 동시에 여러 시리얼 포트를 관리하는 것입니다. Python에서는 SerialTool.assignPort 함수를 사용하여 사용하고자 하는 시리얼 포트에 사용할 일련 번호를 할당할 수 있습니다.

사용 전에 항상 GUI를 사용하여 포트를 열고 설정해야 합니까?
아니요. 이미 언급했듯이, 시리얼 포트 관리는 Python에서 직접 사용할 수 있습니다.

RTS 및 DTR 매개변수도 설정할 수 있습니까?
예. 라이브러리를 사용하면 스크립트 실행 중 시리얼 포트를 여는 동안 및 그 동안 RTS 및 DTR 핀 설정을 직접 조종할 수 있습니다.

SerialTool 라이브러리에 다른 기능을 구현하도록 요청할 수 있습니까?
예. Python용 SerialTool 라이브러리에 추가 기능의 추가 구현은 고려되며 가능한 경우 및 SerialTool의 개발 역학을 기반으로 구현됩니다.

어떤 종류의 지원을 받을 수 있습니까?
저희 팀은 스크립트를 통합하고 스크립트 작성을 용이하게 하거나 오류를 식별하는 데 도움을 줄 수 있습니다. 지원은 실제 Python 스크립트 작성이나 위탁에 포함되지 않습니다. 지원은 Python과 SerialTool의 통합과 관련이 있습니다.