Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

델파이와 C++ 빌더용 강력한 시리얼 통신 컴포넌트 (파이어몽키 프로젝트용이며 윈도우에서 작동함)


Recommended Posts

Gheorghe-Razvan Radu의  "Powerful Serial Communication Component in FireMonkey for Delphi and C++ Builder on Windows" 을 번역했습니다. (원문 작성: 2020년 8월 26일, 최종 번역: 2023년 8월 23일)

spacer.png

파이어몽키용 ComPort(TFComport)는 시리얼 포트에 연결된 장치와 통신하는데 사용하는 컴포넌트로써 사용하기 쉽고 매우 강력하다.

제조사인 WinSoft의 웹 사이트에서 이 컴포넌트의 평가판을 다운로드할 수 있다.

spacer.png

 

TFComport의 특징

  • 사용하기 쉽고 매우 강력하다.
  • RS232 프로토콜을 사용하여 시리얼 포트에 연결된 모든 장치와 통신 할 수 있다.
  • 멀티 스레딩과 오버래핑(overlapping)을 사용하므로, 성능을 극대화한다.
  • 정품 버전에는 소스 코드가 포함되어 있다.
  • Windows 32/64비트 지원, 델파이/C++ 빌더 XE2 - 10.4 지원 (옮긴이: 번역일 2023.8 기준 최신 버전인 11까지 지원됨)
  • 애플리케이션에 배포하기 위한 로열티 부담이 없음


설치

설치는 매우 간단하고 자동이다: 여기에서 인스톨러(설치 파일)를 다운로드하고 실행한 후 단계를 따르면 된다(설치를 시작하기 전에 IDE를 닫아야 함).

 


사용 방법

제조사에서 제공하는 좋은 데모 프로젝트(여기를 클릭)가 기본 예제로 제공된다. 하지만 지금 이 글은 이 기본 예제를 조금 더 확장해서 GSM 휴대폰과 통신을 해보려고 한다. 주로, GSM 휴대폰 안에는 시리얼 포트를 사용하여 통신을 할 수 있고 표준 AT 명령을 사용할 수있다. 지금 우리가 하려는 것은 TFComport를 사용하여 일부 AT 명령을 전화기에게 보내고 전화기의 응답을 읽는 것이다.

테스트에는 삼성 갤럭시 A10e를 사용하겠다. 컴퓨터에 이 휴대폰을 USB 케이블로 연결하면 일반적으로 윈도우 10은 이 장치에 필요한 드라이버들을 설치한다. 
드라이버 설치가 완료되고 나면, 장치 관리자에서 모뎀 장치를 볼 수 있다. 휴대폰과 통신하는 데 사용할 시리얼 포트는 (아래 화면과 같이)COM5 이다.

spacer.png

IDE를 시작하고 데모 프로젝트를 열어 실행해 보자. 
모든 장치와 시리얼 포트로 통신하려면 통신 파라미터를 설정하고 통신을 여는 다음 단계를 준수해야 한다.

spacer.pngspacer.pngspacer.png

 

 

 

 

 

 

 

명령을 입력하기 위한 TEdit(EditCommand) 하나와 그 명령을 휴대폰으로 보내기 위한 TButton(ButtonSend)을 폼 위에 올려둔다.

spacer.png


TFComport에는 AfterOpen 이벤트가 있다. 이 이벤트는 포트가 열리거나 닫혔을 때 무언가를 수행하고 싶을 때 매우 유용핟. 기본 데모에는 UpdateComInfo라는 프로시저가 이미 포함되어 있다. 이 프로시저는 해당 포트의 Active 프로퍼티를 기준으로 버튼을 활성화 또는 비활성화한다.

spacer.png

 

UpdateComInfo 프로시저를 수정하여, EditCommand와 SendButton을 포함하도록 하자.

procedure TFormMain.UpdateComInfo;
begin
  if not FDisableUpdate then
    with FComPort do
    begin
      if Active then
        ButtonOpenClose.Text := 'Close'
      else
        ButtonOpenClose.Text := 'Open';
 
      Memo.Enabled := Active;
      if Active then
        Memo.SetFocus;
      ComboBoxDeviceName.Enabled := not Active;
      ButtonConfig.Enabled := not Active;
      ButtonSetRTS.Enabled := Active;
      ButtonClearRTS.Enabled := Active;
      ButtonSetDTR.Enabled := Active;
      ButtonClearDTR.Enabled := Active;
//---- 우리가 추가한 코드
      ButtonSend.Enabled := Active;
      EditCommand.Enabled := Active;
    end;
end;

이제 휴대폰에게 명령을 보내야 한다. ButtonSend에 대한 클릭 이벤트에서 수행하도록 하자.

procedure TFormMain.ButtonSendClick(Sender: TObject);
begin
  Memo.Lines.Add('AT Command sent: '+EditCommand.Text);
  FComPort.Write(EditCommand.Text+#13#10,TEncoding.ANSI);
end;

결과는 다음과 같다:

spacer.png

 

파이어몽키용 ComPort가 필요한 컴포넌트라고 생각된다면, WinSoft 웹사이트에서 정식 버전을 구입하면 된다!

위 데모가 마음에 든다면, ComPort Component SuiteWinSoft의 멋진 기타 100 여가지 컴포넌트들이 함께 들어 있는 Enterprise Component Pack을 구입할 수도 있다.

(옮긴이: 이하 당시에 진행된 프로모션 안내는 번역하지 않음)

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.