134 lines
4.3 KiB
C
134 lines
4.3 KiB
C
/*******************************************************************************
|
||
*
|
||
* 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__*/
|