Blame view

app/app-prime-modbus/include/fanet/uart-packet-dle.h 2.14 KB
8c2952457   김태훈   응용 프로그램 추가
1
2
3
  /**    
      @file     uart-packet-dle.h
      @date     2010-09-17
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
4
5
      @author   오재경 freefrug@falinux.com
      @brief    uart 통신형태를 분석하고 관리한다.
8c2952457   김태훈   응용 프로그램 추가
6
7
8
9
10
11
12
13
14
15
16
                
                dle / stx / data(crc16) / dle / etx
  
      @modify   
      @todo    
      @bug     
      @remark   
      
      @warning 
  */
  //
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
17
18
  //  저작권    에프에이리눅스(주)
  //            외부공개 금지
8c2952457   김태훈   응용 프로그램 추가
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  //
  //----------------------------------------------------------------------------
  
  #ifndef _UART_PACKET_DKE_H_
  #define _UART_PACKET_DKE_H_
  
  #define UART_PACKET_MAX_SIZE    4096
  
  enum { ANSEQ_FIND_STX=0, ANSEQ_FIND_ETX };
  enum { ANERR_NONE=0, ANERR_CRC };
  
  typedef  void(*on_uart_packet_t)( poll_obj_t *obj, char *buf, int count, int error );
  
  
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
33
  /// 시리얼패켓 분석용 구조체
8c2952457   김태훈   응용 프로그램 추가
34
35
  typedef struct 
  {
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
36
  	// 사용자 변경변수
8c2952457   김태훈   응용 프로그램 추가
37
38
39
  	int   stx;
  	int   etx;
  	int   dle;
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
40
  	unsigned short (*make_crc16)(char *buf, int count );  // 기본적인 crc 함수가 매치된다.
8c2952457   김태훈   응용 프로그램 추가
41
  
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
42
  	// 사용자 변경불가
8c2952457   김태훈   응용 프로그램 추가
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  	poll_obj_t *obj;
  	
  	int     an_seq;
  	int     an_cnt;
  	int     dle_flag;
  	int     data_cnt;
  	int     error;
  	char    data_buf[UART_PACKET_MAX_SIZE];
  	on_uart_packet_t  on_packet;
  	
  } uart_packet_analysis_t;
  
  
  #ifdef __cplusplus 
  extern "C" { 
  #endif 	
  
  /// @{
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
61
  /// @brief  외부에서 사용할수 있는 객체함수 리스트 
8c2952457   김태훈   응용 프로그램 추가
62
  
3061c73f6   김태훈   인코딩 변경 EUC-KR -> ...
63
64
65
66
67
  extern void  upacket_dle_create( poll_obj_t *obj, on_uart_packet_t callback );              /// uart 패켓 관린 객체 생성
  extern void  upacket_dle_free( poll_obj_t *obj );                                            /// uart 패켓 관린 객체 해제
  extern void  upacket_dle_clear( uart_packet_analysis_t *up );                                /// uart 패켓분석 클리어
  extern int   upacket_dle_read_from_uart( poll_obj_t *obj, on_uart_packet_t callback );      /// uart 에서 데이타를 읽어 패켓을 분석한 후 패켓이 만들어지면  등록된 콜백함수를 호출한다.
  extern int   upacket_dle_write_to_uart( poll_obj_t *obj, const char *data_buf, int count  ); /// uart 에 패켓을 만들어 전송한다.
8c2952457   김태훈   응용 프로그램 추가
68
69
70
71
72
73
74
75
76
77
78
  
  
  
  
  /// @}
  
  #ifdef __cplusplus 
  }
  #endif 
  
  #endif