|
kalmaeki 님이 쓰신 글 :
: 다른 분들은 쉽게 됐다고 하는데, 워낙 초짜라 이것도 어렵네요...머가먼지 -_-;;
:
: 일단 Cport를 인스톨하고 폼에 Comport1이랑 메모장, 그리고 버튼하나를 놓고
: 메모장에 쓴 내용을 serial로 송신하려고 합니다.
:
: void __fastcall TForm1::Button_SendClick(TObject *Sender)
: {
: AnsiString Str;
:
: Str = Edit1 ->Text;
: ComPort1->WriteStr(Str);
: ComLed1-> State = lsOn;
: Edit1 -> Clear();
:
: }
:
: 문제는 버튼을 누르면 Write file function failed (win error code:6) 이라고 나오네요..
: 제가 뭘 잘못한건지...
:
: 고수님들의 답변을 부탁드립니다.
음 우선 Edit1->Text 라고 하신걸 보니 메모장이 아니라 에디트 컨트롤을 쓰신거 같군요.?
에러가 나는 원인중 하나는 시리얼 포트가 지정이 잘못되었거나
시리얼 포트가 열려있지(Connect)않은거 같습니다.
보내기 전에 "ComPort1->open();" :-)
그외에 약간 조언을 드리자면
1. Str 을 선언하기 보다는 ( 오버헤드가 있으므로 )
ComPort1->WriteStr(Edit1->Text);
이렇게 하는편이 더 낳을거 같구요.
2. TComLed 컴포넌트의 경우에는 (저렇게 멤버 변수를 토클시키면 불이 켜지는지는 모르겠습니다)
Object Inspector 에 "LedSignal" 이라는 곳에서 원하는 것을 골라주고 (예 : 들어올때 깜박, 보낼때 깜박 등등)
붉은색의 "ComPort" 에 현재 사용하고 있는 TComPort 컴포넌트를 지정해 주면 알아서 깜박거리게 됩니다.
3. 위와 같은 원리로 TComComboBox 컴포넌트의 경우에도 위와 같이 ComPort 를 선택해 주고
"ComProperty" 속성에 콤보박스에 들어갈 원하는것 ( 포트번호,보드레이트,흐름제어,데이타비트,스톱비트등)
을 골라주면 자동으로 (지원하는것들) 들어가게 됩니다. 게다가 "AutoApply" 를 true 로 설정해 주면
자동으로 반영되지요.
그럼 좋은 주말 보내세요~ ^^
|