uart.h 2.15 KB
/**    
    @file     uart.h
    @date     2009-03-19
    @author   오재경 freefrug@falinux.com
    @brief    uds 를 사용한 통신을 담당한다.

    @modify   
              2010-08-18 (장길석) mingw와 함께 사용할 수 있는 코드 추가
    @todo    
    @bug     
    @remark   
    
    @warning 
*/
//
//  저작권    에프에이리눅스(주)
//            외부공개 금지
//
//----------------------------------------------------------------------------

#ifndef _UART_H_
#define _UART_H_

#define UART_RECV_FIFO_MAX    4096

#ifdef __cplusplus 
extern "C" { 
#endif 	

/// @{
/// @brief  외부에서 사용할수 있는 객체함수 리스트

poll_obj_t *uart_open( char *dev_name, int baud, char parity, int stop_bit); /// uart 을 open 한다.
void        uart_close( poll_obj_t *obj );                      /// uart 를 close 한다.
poll_obj_t *uart_get_byport( char *fname );                     /// uart 폴객체를 파일이름으로 찾는다.
int         uart_write( poll_obj_t *obj, char *buf, int len );  /// uart 를 통해 데이타를 전송한다.
int         uart_read( poll_obj_t *obj, char *buf, int len );   /// uart 를 통해 데이타를 읽는다.

int         uart_read_into_fifo( poll_obj_t *obj );                     /// uart 내부 수신버퍼에 데이타를 저장한다.
int         uart_copy_recv_fifo( poll_obj_t *obj, char *buf, int len ); /// uart 내부 수신버퍼에서 데이타를 읽어온다.
char       *uart_get_recv_fifo( poll_obj_t *obj );                      /// uart 내부 수신버퍼의 포인터를 얻는다.
int         uart_get_recv_fifo_count( poll_obj_t *obj );                /// uart 내부 수신버퍼에 저장된 데이타의 갯수를 얻는다.
int         uart_checkout_recv_fifo( poll_obj_t *obj, int len );        /// uart 내부 수신버퍼에서 앞쪽의 데이타를 제거한 후 뒤쪽의 데이타를 이동한다.

int         uart_recv_wait_fifo( poll_obj_t *obj, unsigned char *match, int match_len, int tmout_msec ); ///uart에서 비교데이타가 수신될때까지 감시한다.

/// @}

#ifdef __cplusplus 
}
#endif

#endif