forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-13 72def895431ad7a08e635b11f3da738e2b2c4618
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef  __BILLING_H
#define  __BILLING_H
 
#include "define_all.h" 
 
 
#define  BALANCE_UP_LIMIT  999999999
#define  BALANCE_LOWER_LIMIT  (-999999999)
 
#define  GAS_USAGE_UP_LIMIT  4000000000
#define  GAS_USAGE_LOWER_LIMIT  (-9999999999)
 
#define  FEE_USAGE_UP_LIMIT  4000000000
#define  FEE_USAGE_LOWER_LIMIT  (-9999999999)
 
typedef struct Settlement_Para    //½áËã²ÎÊý
{
    //double        fInitialGasVolume;
    //double        fLastGasVolume;
    //double        fCurrentGasVolume;
    double        fCurrentGasUsage;
    double      fCumulativeGasUsage;
    double      fCumulativeFeeUsage;
    double        fBalance;
    //u8              cDataObtainType;
    u32              u32PulseCounting_last;
  u32              u32PulseCounting;
 
    
    u8                SettlementStorageFlag;
    u8                RS485SettlementFlag;   //RS485½áËã±êÖ¾£¬0x01£º±íʾÐèÒªRS485½áË㹦ÄÜ  0x00:±íʾ²»ÐèÒªRS485½áË㣬ֻÓÃÂö³å¼Æ·Ñ¡£
    u8                RS485SettlementINGFlag;  //RS485½áËãÖбêÖ¾£¬RS485½áËãδÍê³Éʱ£¬ÖжÏÖеÄÂö³å½áËã²»¼ÆË㣬µÈRS485½áËãÍê³ÉÖ®ºóÔÙ¼ÆË㣬ÒÔÃâ³åÍ». 0´ú±íûÓд¦ÓÚRS485½áË㣬1´ú±í½áËãÖУ¬
    u8                RS485BilDataReadableFlag;  //RS485½áËã´æ´¢ÇøÓòÓÐÊý¾Ý¿É¶Á±êÖ¾
    
}SETTLEMENT_PARA;
 
 
u8  Settlement(void);  //Âö³å½áËã
void  RS485Settlement(void);  //485¶ÁÈ¡½áËã
float StepBillingSettlement(float fCumulativeGasUsage, float fCurrentGasUsage);
void ArrearsCheck(double dBlanceBeforeSettlement);
void ClearCardinalFlag(void);  //ÇåÁã»ùÊý±êÖ¾
u8 CheckCardinality(void);//¶Ô»ùÊý½øÐмì²é£¬
void StorageCardinality(void);  //´æ´¢»ùÊý
extern    SETTLEMENT_PARA        Settlement_Para;
void BalanceModify(double dBalance);  //Óà¶îÇåÁã
 
 
#endif