X1UWaterWmbusISK/app/UWater_card_5557_app.h

134 lines
4.3 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
/*******************************************************************************
*
* Copyright(C) 2012 WANG XIBING All rights reserved.
*
* meter.h
* wxb
* V1.00
* 2012-1-1
*
* RL78
* V1.00, 2012-1-1, wxb,
*
*
*
*
*******************************************************************************/
#ifndef __METER_CARD_5557_APP_H__
#define __METER_CARD_5557_APP_H__
#include "ddl.h"
#include "type.h"
//状态机状态
#define CARD_KEY_M_S0 0 //卡按键驱动状态机状态号
#define CARD_KEY_M_S1 1 //卡按键驱动状态机状态号
#define CARD_KEY_M_S2 2 //卡按键驱动状态机状态号
#define CARD_KEY_M_S3 3 //卡按键驱动状态机状态号
#define CARD_KEY_M_S4 4 //卡按键驱动状态机状态号
#define CARD_KEY_M_S5 5 //卡按键驱动状态机状态号
#define CARD_KEY_M_S6 6 //卡按键驱动状态机状态号
#define CARD_KEY_M_S7 7 //卡按键驱动状态机状态号
#define CARD_KEY_M_S8 8 //卡按键驱动状态机状态号
#define CARD_KEY_M_S9 9 //卡按键驱动状态机状态号
#define CARD_KEY_TIME_SECOND 30//30s,选用5ms当量定时器
#define CARD_SEACHR_TIME_SECOND 1//2s
#define CARD_NONE_MSG 0x00 //无消息
#define CARD_IN 0x01 //有卡
#define CARD_OPEN 0x02 //开阀
#define CARD_CLOSE 0x04 //关阀
#define OPEN_ACCOUNT_CARD 0x01 //开户卡
#define USE_CARD 0x11 //用户卡
#define USE_CARD_2 0x22 //用户卡
#define AREA_CARD 0x30 //区域代码设置卡
#define CHECK_CARD 0x31 //查询卡
#define REPURCHASE_CARD 0x32 //退购卡
#define CLEARED_CARD 0x33 //清零卡
#define OPEN_VALVE_CARD 0x34 //开阀卡
#define CLOSE_VALVE_CARD 0x35 //关阀卡
#define CHANGE_CARD 0x36 //换表卡
#define IDSET_CARD 0x37 //表号设置卡
#define CONFIGURATION1_CARD 0x41 //配置卡1
#define CONFIGURATION2_CARD 0x42 //配置卡2
#define SET_CARD 0x43 //设置卡
#define INIT_CARD 0x44 //初始化参数卡
#define CHECK_ERR_CARD 0x45 //故障查询卡
#define CLEAR_ERR_CARD 0x46 //清故障卡
typedef union
{
struct
{
u8 byte0;
u8 byte1;
} byte;
u16 datas;
} U16_DATA;
typedef union
{
struct
{
u8 byte0;
u8 byte1;
} byte;
s16 datas;
} S16_DATA;
typedef union
{
struct
{
u8 card_flag;
u8 buy_value[3]; // 本次购买量
U16_DATA company_number; //公司标志
U16_DATA zone_number; //区域代码
u8 card_number[3]; //卡号
u8 write_succ_flag; //卡片反写成功标志
u8 value_limit[3]; //可用剩余量
u8 check; //校验
U16_DATA buy_num; //购买次数
u8 total_value[3]; //累积量
u8 hoarding_value[3]; //囤积量
u8 code[4];
};
u8 data[28];
} Card_Data;
typedef union
{
struct
{
u8 card_flag;
u8 idle;
S16_DATA level_1_arrears_threshold ; //一级欠费阈值
S16_DATA level_2_arrears_threshold ; //二级欠费阈值
u8 valve_type; //阀门类型
u8 battery_type; //电池类型
u8 magnetic_interference_close_valve; //磁干扰是否关阀
u8 valve_power_order; //阀门供电线序
u8 valve_inplace_order; //阀门到位线序
u8 write_succ_flag; //卡片反写成功标志
u8 valve_adc_current_thd; //阀门堵转电流阈值
u8 valve_time_s; //控阀时间
u8 idle2[10];
u8 code[4];
};
u8 data[28];
} S_Card_Type1_Data;
void SearchCardApp(void);
u8 CheckCardMsg(void);
void ClearCardMsg(u8 data);
void CardDataProcessorApp(void);
void CardKeyMsgMachine(void);
void CardMachine(void);
#endif /*__METER_CARD_5557_APP_H__*/