/*
 *========================================================================
 *
 *   시스템명 : 요금징수 시스템
 *   파 일 명 : eps_main.c
 *   작 성 자 : 조보용 (baarong@neighbor21.co.kr)
 *   작 성 일 : 2018.11.15
 *   수 정 일 :
 *   설    명 :
 *
 *========================================================================
*/

#ifndef  _EPS_PACK_H_
#define  _EPS_PACK_H_
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define ClearingCenter "CCGW00"
#define HQ_Center "HQCC00"
#define HEADdata_LEN     43
#define saledata_LEN     106
#define chrgdata_LEN     86
#define canceldata_LEN   100

typedef struct
{
    char  stx;
    int   len;
    char  send[7];
    char  recv[7];
    int   work;
    int   job;
    char  date[15];
    char  reply[5];
    char  path[61];
    char  file_id[17];
    int   file_size;
    char  etx;
} PACKET_RQ;

typedef struct _HEADdata
{
      char stx          ;  //STX
      char length    [4];  //length - STX, lengh, ETX제외한 길이
      char plz_id    [6];  //PLAZA_ID
      char grp_id    [6];  //GROUP_ID
      char job       [4];  //업무구분 WORK
      char work      [4];  //작업구분 JOB
      char send_date[14];  //전문 송신일시
      char rply_code [4];  //응답코드
} HEADdata;

typedef struct _saledata
{
    char OCRN_DTTM     [ 14 ]; /* AN 발생일시 */           
    char TAG_ID        [ 24 ]; /* AN TAG ID */             
    char TAG_ISSC_CD   [ 2  ]; /* AN TAG 발행사 코드 */    
    char WORK_DATES    [ 8  ]; /* AN 근무일자 */           
    char TOLOF_CD      [ 6  ]; /* AN 영업소 코드 */        
    char WORK_NO       [ 4  ]; /* AN 근무번호 */           
    char PROS_SEQ      [ 8  ]; /* N 처리일련번호 */        
    char WORKER_NO     [ 6  ]; /* AN 근무자번호 */         
    char TAG_ATR       [ 1  ]; /* AN TAG 속성 */           
    char TAG_HND_CD    [ 2  ]; /* AN TAG 세부코드 */       
    char TAG_KNCR      [ 1  ]; /* AN TAG 차종 */           
    char TAG_EXPT      [ 10 ]; /* AN TAG 등록된 만료기간 */
    char TAG_RGST_VHNO [ 6  ]; /* AN TAG등록 차량번호 */   
    char ISNC_VHNO     [ 12 ]; /* AN 발급한 차량번호 */    
    char TAG_CRC       [ 2  ]; /* AN TAG CRC */            

} saledata;

typedef struct _chrgdata
{
    char   OCRN_DTTM   [14];    /*AN 발생일시*/
    char   TAG_ID      [24];    /*AN TAG ID*/
    char   TAG_ISSC_CD [2 ];    /*AN 발행사 코드*/
    char   WORK_DATES  [8 ];    /*AN 근무일자*/
    char   TOLOF_CD    [6 ];    /*AN 영업소 코드*/
    char   WORK_NO     [4 ];    /*AN 근무번호*/
    char   PROS_SEQ    [8 ];    /* N 처리일련번호*/
    char   WORKER_NO   [6 ];    /*AN 근무자번호*/
    char   CHRGG_AMT   [8 ];    /* N 충전금액*/
    char   RFID_SGNT   [4 ];    /*AN RFID 서명값*/
    char   TAG_CRC     [2 ];    /*AN TAG CRC*/

} chrgdata;

typedef struct _canceldata
{
    char   OCRN_DTTM       [14];    /*AN 발생일시*/
    char   TAG_ID          [24];    /*AN TAG ID*/
    char   TAG_ISSC_CD     [2 ];    /*AN 발행사 코드*/
    char   WORK_DATES      [8 ];    /*AN 근무일자*/
    char   TOLOF_CD        [6 ];    /*AN 영업소 코드*/
    char   WORK_NO         [4 ];    /*AN 근무번호*/
    char   PROS_SEQ        [8 ];    /* N 처리일련번호*/
    char   WORKER_NO       [6 ];    /*AN 근무자번호*/
    char   BFEQ_CHRGG_DTTM [14];    /*AN 직전 충전 거래일시 */
    char   CHRGG_AMT       [8 ];    /* N 충전금액*/
    char   RFID_SGNT       [4 ];    /*AN RFID 서명값*/
    char   TAG_CRC         [2 ];    /*AN TAG CRC*/

} canceldata;


#endif
