R1UWaterRS485/app/UWater_card_5557_app.h

134 lines
4.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
*
* 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__*/