일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- VB.NET
- 입문
- dll
- 문자열
- PostgreSQL
- 소니
- xml
- 파이어버드
- 델파이
- c#
- SDK
- Visual Basic
- 설치
- MFC
- winsock
- 파라미터
- Delphi
- SQL
- Visual Studio 2005
- WIN32 SDK
- 기초
- 셋업
- 데이터베이스
- 예제
- Firebird
- 인스톨
- MySQL
- vb
- 초보
- 시리얼 통신
- Today
- Total
목록시리얼 통신 (10)
프로그래밍 노트
◆ 델파이에서 TComport 설치하기 01) TComport 소스를 다운 받아 적당한 폴더에 설치한다. C:\Program Files\Borland\BDS\4.0\lib\cportu 개인적으로 위의 폴더에 풀어두었다. 02) Delphi를 실행한구 CportLibX.dbk를 연다.(최신 버전을 선택한다.) 03) CportLibX.dpk 열면 CportLibX.bpl이 Project Manager에 표시된다. 그러면 CportLibX를 오른쪽 클릭하면 아래의 그림과 같이 팝업메뉴가 표시되고 거기서 Compile을 클릭한다. 04) 그리고 델파이에서 다시 DsgnCPortX.dpk를 연다. 05) 그러면 DsGnCportX.bpl이 Project Manager에 표시된다. DsgnCportX.bpl에서 ..
■ 타임아웃 통신 제어 프로그램은 상대 장치의 상태에 따라 통신이 도중에 끊어질 수 있다. 만약 100바이트가 올것이 데이터 수신 중에 송신 쪽의 문제로 80바이트만 송신한 경우 수신을 도중에 멈추고 알람을 표시할 필요가 있다. 타이머는 이런 목적으로 사용한다. 타이머의 설정은 SetCommTimeouts(HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts) 를사용하고 설정된 데이터를 읽을 때는 GetCommTimeouts(HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts)를 사용한다. SetCommTimeouts(HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts) 인수 hFile : CreateFile()이 반환한 핸들..
■ 시리얼 포트 설정 시리얼 I/O의 파라미터 설정은 SetCommState()로 하고 GetCommState()로 설정된 파라미터 정보를 볼 수 있다. BOOL SetCommState( HANDLE hFile, // 통신 디바이스 핸들 LPDCB lpDCB // DCB 구조체 포인터 }; 인수: hFile: CreateFile()에서 반환된 핸들 lpDCB: 현재 설정된 다비아스 상태를 가지고 있는 DCB 구조체 포인터 반환값 성공하면 0이 아니고 실패하면 0 BOOL GetCommState( HANDLE hFile, // 통신 디바이스 핸들 LPDCB lpDCB // DCB 구조체 포인터 }; 인수: hFile: CreateFile()에서 반환된 핸들 lpDCB: 현재 설정된 다비아스 상태를 가지고 ..
■ 시리얼 포트 오픈 시리얼 포트는 파일처럼 다룬다. 시리얼 포트를 오븐 하기위해서는 CreateFile()을 사용한다. HANDLE CreateFile( LPCTSTR lpFileName, // 포트 이름을 가르키는 버퍼의 포인터 DWORD dwDesiredAccess, // 억세스모드(READ, WRITE) DWORD dwShareMode, // 포트의 공유 방법 비정(공유 불가: 0으로 설정) LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 시큐리티 속성 DWORD dwCreationDisposition, // 포트 여는 방법 지정(OPEN_EXISTING로 기존 파일 지정) DWORD dwFlagsAndAttributes, // 포트의 속성 지정 HANDLE h..
델파이를 첨 써보는지라 델파이에서 시리얼 통신을 하려면 어떻게 해야된나 오늘 하루 종일 열심히 해맸다. SourceForge.net에 델파이용 ComPort Library가 있어서 그것을 이용해서 간단한 시리얼 통신하는 프로그램을 만들어 보려했지만 델파이 초짜다 보니 무엇을 어떻게 해야되는지도 한참 해멨다. http://sourceforge.net/projects/comport/ 먼저 위 사이트에 가서 Download를 선택하면 지금은 ComPort Library 3.1(cport-3.10.zip)을 다운 로드 받을 수 있다. 다운로드 받은 압축파일을 풀면 여러개의 파일이 나온다. 여기서 sources.zip 파일과 examples.zip 파일을 다시 푼다. 새로 작업할 폴더를 하나 만든다. 새 폴더에 ..
동작모드 Single-Ended 최대도달거리 약15m 최고통신속도 20kb/s 지원전송방식 Full Duplex 최대출력전압 ±25V 최대입력전압 ±15V RS232C 데이터 단말기(DTE: Data Terminal Equipment)와 데이터 통신기(DCE: Data Communication Equipment)사이의 인터페이스에 대한 전기적인 인수, 컨트롤 핸드쉐이킹, 전송속도, 신호 대기시간, 임피던스 인수등를 정의되어 있으며 전송되는 데이터의 포맷과 내용에 대해서는 정의되어 있지않고 DTE간의 인터페이스에 대한 내용도 포함하지 않는다. RS232 9pin 커넥터 핀번호 기능 신호명 방향 1 케리어 검출 CD 입력 2 데이터 수신 RXD 입력 3 데이터 송신 TXD 출력 4 데이터 단말 Ready D..
WIN32 SDK에서 시리얼 통신을 하려면... WinAPI에서는 시리얼 포트도 파일처럼 CreateFile로 파일을 열고 WriteFile로 데이터를 쓰거나 ReadFile로 데이터를 읽거나 CloseHandle로 파일을 닫는다. 일반적으로 파일을 다루는 것과 비슷하지만 시리얼 통신에서는 여기에다가 통신을 하기위한 설정이 필요한다. SetCommState가 이런한 설정을 하게된다. 시리얼 통신을 하기위한 순서는 1) CreateFile로 파일을 연다. 2) SetCommState함수로 통신포트의 설정을 한다. 3) ReadFile이나 WriteFile로 데이터를 송수신한다. 4) CloseHandle로 파일을 닫는다. 시리얼 통신을 하기위해서는 Windows에서는 HANDLE형의 변수로 파일등의 오브젝..
플렛폼 SDK 커뮤티케이션 커뮤니케이션의 함수 일람 함수 설명 BuildCommDCB 지정한 DCB구조체에 디바이스 제어 문자열로 지정한 값을 저장한다. BuildCommDCBAndTimeouts 디바이스 정의 문자열을 다비아스 제어 블럭 코드에 변환한 후, 디바이스 제어 블럭에 저장한다. ClearCommBreak 지정한 통신 디바이스의 회선이 끊긴 상태를 해제하고 문자 송신을 다시 시작한다. ClearCommError 통신 에러의 정보를 얻고 통신 디비이스의 현재 상태를 통지한다. CommConfigDialog 드라이버가 제공하는 설정 다이얼로그 박스를 표시한다. EscapeCommFunction 지정한 통신 디바이스에 확장 기능을 실행하도록 지시한다. GetCommConfig 통신 디바이스의 현재 ..
Win32 SDK로 만든 간단한 시리얼 통신 예제 한 문자 보내고 받기 컴포트가 COM1로 고정되어있음으로 테스트 할때 바꾸어 주고 다시 빌드해야됨. // 시리얼 포트 직접 입출력 #include #include "resource.h" BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM); DWORD RecvData(LPVOID ); // 수신 전용 스레드 HWND hWndCopy; // 스레드를 위한 핸들의 카피 HANDLE hFile; // 파일 핸들 int nSwitch; int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow) { // 다이알로그 표시 Dialo..
VB.NET에서 시리얼 통신하는 정말 간단한 예제 VB.NET은 해본적이 없어서 아직 아는게 별로 없다. 오늘 처음으로 Delgate라는 것을 봤다. Invoke도 그렇고... 잘은 모르겠지만 예전에 VB6에서는 메세지 박스가 떠있으면 컨트롤은 다른 이벤트가 발생하지 않았다. 그런데 Delgate와 Invoke를 쓰면 메세지 박스가 떠있더라도 메세지를 받을 수 있다. Imports System.IO.Ports ' Serial 통신용 Imports System.Threading ' 쓰레드용 Public Class frmMain Private WithEvents ComPort As New System.IO.Ports.SerialPort ' Delegate : 대리자를 선언하는 데 사용한다. ' 대리자는 형식..