Serial Communication

Source (FishEye) : FishEye link address, SerialCommunication_V1.0_20120731.tgz
Issue Tracker (Jira) : Jira link address

Serial Communication

1.       개요

직렬통신장치(Serial Communication Device)를 위한 API로써, Windows와 Linux에서 사용이 가능하다.

 

2.       파라미터 정보

이 API를 동작시키기 위해서는 parameter 에 다음의 정보를 포함하고 있어야 한다.

 

Name

Data Type

Description

PortName

string

사용한 포트의 이름

TimeOut

unsigned long

송/수신 최대 지연시간

BaudRate

unsigned long

통신 속도

DataBits

int

데이터 비트의 크기, 5, 6, 7, 8(비트) 중에 하나를 선택해야 함

StopBits

int

정지 비트의 크기

0 : 1bit

1 : 1.5bit

2 : 2bit

Parity

int

패리티 비트

0 : None Parity

1 : Even Parity

2 : Odd Parity

FlowControl

int

흐름 제어 모드

0 : None

1 : Xon/Xoff

2 : Hardware

 

3.       인터페이스

3.1.    Initialize

직렬통신장치의 초기화 정보( parameter )를 이용하여 초기화 시킨다.

 

Declaration

int Initialize (Property parameter)

Arguments

parameter: 직렬통신장치의 초기화 정보를 저장하고 있는 변수

Return Value

API_SUCCESS: 성공적으로 직렬통신장치를 초기화 시킨 경우

API_ERROR: 직렬통신장치를 초기화 시키는 도중 에러가 발생한 경우

 

3.2.    Finalize

직렬통신장치를 종료시킨다.

 

Declaration

int Finalize(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 직렬통신장치를 종료 시킨 경우

API_ERROR: 직렬통신장치를 종료시키는 도중 에러가 발생한 경우

 

3.3.    Enable

직렬통신장치를 활성화 시킨다.

 

Declaration

int Enable(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 직렬통신장치를 활성화 시킨 경우

API_ERROR: 직렬통신장치를 활성화시키는 도중 에러가 발생한 경우

 

3.4.    Disable

직렬통신장치를 비활성화시킨다.

 

Declaration

int Disable(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 직렬통신장치를 비활성화 시킨 경우

API_ERROR: 직렬통신장치를 비활성화 시키는 도중 에러가 발생한 경우

 

3.5.    SetParamter

직렬통신장치의 파라미터를 변경한다.

 

Declaration

int SetParameter(Property parameter)

Arguments

parameter: 설정 정보

Return Value

API_SUCCESS: 직렬통신장치의 파라미터를 성공적으로 변경시킨 경우

API_ERROR: 직렬통신장치의 파라미터를 변경시키는 도중 에러가 발생한 경우

 

3.6.    GetParameter

직렬통신장치의 설정 정보를 얻어온다.

 

Declaration

int GetParameter(Property &parameter)

Arguments

parameter: 설정정보가 저장될 변수

Return Value

API_SUCCESS: 성공적으로 직렬통신장치의 파라미터를 얻어온 경우

API_ERROR: 직렬통신장치의 파라미터를 얻어오는 도중 에러가 발생한 경우

 

3.7.    OnExecute

컴포넌트의 Callback API 중 onExecute에서 호출되는 함수로, 주기적으로 동작해야 하는 코드가 여기에 작성해야 한다. 이 API에서는 사용되지 않음

 

Declaration

int OnExecute(void)

Arguments

없음

Return Value

API_NOT_SUPPORTED

 

3.8.    GetStatus

직렬통신장치의 현재 상태를 반환한다.

 

Declaration

DEVICE_STATUS GetStatus(void)

Arguments

없음

Return Value

DEVICE_STATUS

DEVICE_STATUS의 자세한 정보를 OPRoS Device API 문서 참고

 

3.9.    Lock

직렬통신장치를 동시에 사용하는 것을 방지하고 위해 사용되는 함수로 직렬통신장치를 다른 곳에서 사용할 수 없도록 잠근다. Lock을 호출한 후에 반드시 Unlock을 호출해야 한다. 그러지 않을 경우 API가 Deadlock에 빠질 수 있다.

 

Declaration

void Lock(void)

Arguments

없음

Return Value

없음

 

3.10.                           Unlock

다른 프로그램에서 동시에 사용할 수 없도록 잠근 것을 푼다.

 

Declaration

void Unlock(void)

Arguments

없음

Return Value

없음

 

3.11.                           Write

직렬통신장치를 통해서 데이터를 전송한다.

 

Declaration

int Write(unsigned char *data, int size)

Arguments

data: 전송할 데이터가 저장된 변수

size: 전송할 데이터의 개수

Return Value

0보다 크거나 같은 경우: 전송된 데이터의 개수

API_ERROR: 데이터를 전송하는 도중 에러가 발생한 경우

 

3.12.                           Read

직렬통신장치를 통해서 수신된 데이터를 읽어온다.

 

Declaration

int Read(unsigned char *data, int size)

Arguments

data: 수신된 데이터를 저장할 변수

size: 읽어올 데이터의 개수

Return Value

0 보다 크거나 같은 경우: 읽어온 데이터의 개수

API_ERROR: 데이터를 읽어오는 도중 에러가 발생한 경우

 

4.       컴포넌트 프로파일의 Property 설정 예제

다음과 같이 시리얼 포트를 사용할 경우

              - 지연허용시간: 10ms

              - 통신포트: 1첫 번째 포트

              - 통신속도: 9600bps

              - 데이터 비트: 8bit

              - 정비 비트: 1bit

              - 패리티 비트: 사용하지 않음

              - 흐름제어: 사용하지 않음

 

<properties>

  < property name= "ApiName" type= "std::string" > SerialCommunication.dll </ property >

  < property name= "PortName" type= "std::string" > COM1 </ property >

  < property name= "TimeOut" type= "unsigned long" >10</ property >

  < property name= "BaudRate" type= "unsigned long" >9600</ property >

  < property name= "StopBits" type= " int " >0</ property >

  < property name= "ParityBit" type= " int " >0</ property >

  < property name= "FlowControl" type= " int " >0</ property >

< /properties>

 

  • No labels