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