⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osstruct.h

📁 应用较为广泛的 杉德 刷卡 POS机 的调用示例。
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
	Operating System
--------------------------------------------------------------------------
	FILE  osstruct.h
--------------------------------------------------------------------------
    INTRODUCTION
    ============
    Created :		2002-10-03		Xiaoxi Jiang
    Last modified :	2002-10-03		Xiaoxi Jiang
    Module :
    Purpose :
        Header file.

    List of routines in file :

    File history :
*/

struct s1mes {
       char     mes[17];
};

struct sos_setting {
    uchar   OsDateFormat;       // Date Format
    uchar   OsDateSeparator;    // Date separator character
    uchar   OsTimeSeparator;    // Time separator character
    uchar   OsAmountSeparator;  // Amount separator character
    uchar   OsNombreDigits;     // Number of digits
// Default characters matrix for the OS
    uchar   Os_display_CM;      // characters matrix for display
    uchar   Os_pinpad_CM;       // characters matrix for pinpad
    uchar   Os_printer_CM;      // characters matrix for printer
    uchar   Menu_display_CM;    // characters matrix for menu display
// Default characters matrix for the applications
    uchar   Def_display_CM;     // default characters matrix for display
    uchar   Def_pinpad_CM;      // default characters matrix for pinpad
    uchar   Def_printer_CM;     // default characters matrix for printer
};

struct xdsos_setting {
    uchar   OsDateSeparator;    // Date separator character
    uchar   OsTimeSeparator;    // Time separator character
};

// analysis structure for the various cash register messages
typedef struct {
    uchar   lg_message_mini;    // waited message minimum length. If no length
                                // control, value set to 0
    uchar   lg_message_max;     // waited message maximum length. If no length
                                // control, value set to 255
    uchar   pos_deb_comp;       // comparison start index. If no string control,
                                // value set to 255
    uchar * pt_identification;  // comparison string
    uchar   tab_position_montant[5];// position of the amounts which have to be
                                // managed. Missing amounts are replaced by 0xFF
    uchar   ecr_further_acq;    // additional keyboarding indicator (applicative
                                // level)
    void    (*Fct_tmp)();       // report formating function pointer
} typ_identification;

// LC le 22/09/97 : nouvelle structure : ajoute 'Fct_rcv'
typedef struct {
    uchar   lg_message_mini;    // waited message minimum length. If no length
                                // control, value set to 0
    uchar   lg_message_max;     // waited message maximum length. If no length
                                // control, value set to 255
    uchar   pos_deb_comp;       // comparison start index. If no string control,
                                // value set to 255
    uchar * pt_identification;  // comparison string
    uchar   tab_position_montant[5];// position of the amounts which have to be
                                // managed. Missing amounts are replaced by 0xFF
    uchar   ecr_further_acq;    // additional keyboarding indicator (applicative
                                // level)
    void    (*Fct_tmp)();       // report formating function pointer
// LC le 29/7/97 : ajout appel fct d'analyse du message recu pour traitement
//                 signe du montant pour CONCERT
    void    (*Fct_rcv)();       // received and analysed message formating
                                // function pointer
} typ_identification2;

// saved password structure (at 0x7D00)
typedef struct {
    uchar   password[4];
    uint    crc;
} typ_password;

// menu management structure
typedef struct {
    uchar   I_app;              // application index in etatapp
    uchar   I_fct;              // index in the menu
    uchar   N_app;              // logical application number
    uchar   N_div;              // functions menu number
    MENU    Elt;                // menu ligne for a particular index
} MENUS;

// menu access control structure
typedef struct {
    uchar   type_controle;      // control type to apply :
                                // 0x00 : none
                                // 0x01 : 2049 code
                                // 0x03 : 2049 or programmable code
                                // 0x05 : 2049 code or card
                                // 0x07 : 2049 or programmable code or card
    uchar   code_acces[5];      // programmable acces code (4 characters + '\0')
    uchar   carte[38];          // programmable ISO card (carte[0] is length)
    uint    crc;                // structure crc
} typ_securite_menu;

// Saved additional OS paramaters structure
struct AddedOsParameters {
    uchar   PrintSumOfTotals;   // 0=print sum of totals (if defined TOTALS )
    uchar   AllowAbortDial;     // 1=allow abort when base is requested during dial (portable terminals only).
    uchar   SavedDateTime[10];
    uchar   DefaultTransaction; // Default transaction(debit or credit)
    uchar   Last_currency;      // saved last currency number
    uchar   DefaultCurrency;    // Default currency (last / FRF / EURO )
    uchar   to_extinction;      // reglage TO extinction
    uchar   FlagBeep;           // Enable / Disable Beep
    uchar   volet;
    uchar   CashRegister;       // FLAG TO ACTIVATE CASH REGISTER PROTOCOL
    uchar   CashRegisterAnswer; // FLAG TO ACTIVATE ANSWER TO CASH REGISTER
    uchar   CamReader;          // 0: DEFAULT   1: FORCE TO INTERNAL READER
    uchar   TypeCheque;
    uchar   gsmDataSpeed;       // default GSM speed
    uchar   gsmStopMode;        // extinction mode for GSM module
    uchar   gsmEnergyMode;      // energy mode : economical or comfort
    uchar   gsmSecurityMode;    // code PIN security mode
    uchar   gsmDialMode;        // gsm used every time
    uchar   gsmTypeCall;        // current type call : 0=RTC, 1=GSM
    uchar   CashRegisterSpeed;  // vitesse protocole caisse : 0->1200, 1->2400, 2->4800, 3->9600, 4->14400, 5->19200
    uchar   UserWarning;        // for french families : warn user when Os__get_pin (0 or 1)
    uchar   rfu[10];
    uint    crc;
};

struct  soptions {
    uchar   table;              // saisie n. table si = '1'
    uchar   serveur;            // type de lecture ISO : '0'=ISO2+3 / '1'=ISO2+1
    uchar   csum;               // check sum
};
typedef struct soptions SOPT;

typedef struct {
    uchar   date_time[10];      // Date and time in ascii HHMMDDMMYY
    uchar   card_info[14];
    // Card information in string :
    //  - for magnetic cards :
    //    BIN(6bytes)+' '+CardNumberLength(2bytes)+' '+ServiceCode(2bytes)+\0
    //  - for smart card : 14 first bytes of the ATR +\0
    //  - for cheque : cheque number(7bytes)+' '+...(6bytes)
} typ_card_record;

typedef struct {
    uchar   date_time[10];      // Date and time in ascii HHMMDDMMYY
} typ_date_time;

typedef struct {
    typ_card_record UnknownCards[5];
    typ_card_record ConflictCards[5];
    typ_date_time   PowerCut[6];
    uint            crc;
} typ_anomalies;

// Message header to be placed just before menui in mesos.c
typedef struct {
    uchar   Flag[3];
    uchar   Version;
    uchar   NbLanguage;
    uchar   NbColDisplay;       // added LC 14/04/98
    uchar   NbLineDisplay;
    uchar   NbColPrinter;
    uchar   Rfu[7];
} typ_MsgHeader;

#ifndef __OSINPUT_H
#define __OSINPUT_H
// Os__multi_input parameters structure
typedef struct {
    uchar   line_nb;            /*line number for display and acquisition   */
    uchar   column_nb;          /*column number for acquisition             */
    uchar   min_keys;           /*minimum number of keys to be entered      */
    uchar   max_keys;           /*maximum number of keys to be entered      */
    uchar   VAL_autor;          /*0=key VAL autorised / other=1             */
    uchar   mode;               /*acquisition mode :                        */
                                /* 0 = normal acquisition(as Os__get_varkey)*/
                                /* 1 = amount with 2 decimals and coma      */
                                /*     (as Os__get_amount)                  */
                                /* 2 = amount with n decimals(see visu_code)*/
                                /* 3 = amount with n decimals and point     */
                                /*       (see visu_code)                    */
    uchar   VAL_only;           /*0=only key VAL or ANN can end the input   */
                                /* / other=1                                */
    uchar   visu_code;          /*For mode = 0 or 1 :                       */
                                /* -> character to be displayed :           */
                                /*    - 0=real character                    */
                                /*    - other=character to be displayed     */
                                /*For mode = 2 or 3 :                       */
                                /* -> nomber of decimals                    */
    uchar   text[16];           /*text to be displayed (ascii string        */
                                /*   ended by a NULL (15 characters max))   */
} INPUT_PARAM;
#endif

typedef struct {
    uchar   ty_modem[2];        // '0'=cle '1'=modem
    uchar   cle_com[2];         // '0'=com2 '1'=com3
    uchar   vitesse_cle[2];     // 0=1200, 1=2400, 2=4800, 3=9600, 4=14400, 5=19200
    uchar   DTR_type[2];        // '0'=managed by hardware, '1'=by software (with AT command)
    uchar   rfu[3];
    uint    crc;                // controle
} OS_CLE_RNIS;

typedef struct {
    uchar   niveau[3];
    uint    crc;
} typ_modem_level;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -