|
@@ -247,6 +247,7 @@ void person::get_card(bool f)
|
|
|
#define POWER_MASK 0X10
|
|
|
void person::handle_message(uint16_t ct,uint8_t &value)
|
|
|
{
|
|
|
+ //判断是新卡还是老卡
|
|
|
if(m_card_generation==0){
|
|
|
uint8_t remainder=ct%5;
|
|
|
if(remainder==4){
|
|
@@ -256,10 +257,12 @@ void person::handle_message(uint16_t ct,uint8_t &value)
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
+ //老卡
|
|
|
if(m_card_generation==1){
|
|
|
value=value&0x03;
|
|
|
return;
|
|
|
}
|
|
|
+ //新卡继续往下走,获取数据
|
|
|
uint16_t cttmp = ct/5;
|
|
|
if(m_ctflag != cttmp){
|
|
|
if((m_index&CHARGE_MASK) == CHARGE_MASK)
|
|
@@ -268,17 +271,19 @@ void person::handle_message(uint16_t ct,uint8_t &value)
|
|
|
m_discharge_value=(m_value[2]<<8)|m_value[3];
|
|
|
if((m_index&POWER_MASK) == POWER_MASK)
|
|
|
m_power=m_value[4]>>4;
|
|
|
- logn_info(1,"card_id:%d,充电时间:%u,放电时间:%u,电量%d%",m_id,m_charge_value,m_discharge_value,m_power*10);
|
|
|
+ logn_info(3,"card_id:%d,充电时间:%u,放电时间:%u,电量%d%",m_id,m_charge_value,m_discharge_value,m_power*10);
|
|
|
m_index=0;m_ctflag=cttmp;memset(&m_value,0,sizeof(m_value));
|
|
|
}
|
|
|
uint8_t remainder=ct%5;
|
|
|
m_value[remainder]=value;
|
|
|
m_index|=(1<<remainder);
|
|
|
- logn_info(1,"card_id:%d,ctflag:%u,index:%d,value:%d,,,,%d",m_id,m_ctflag,remainder,value,m_index);
|
|
|
+ logn_info(3,"card_id:%d,ctflag:%u,index:%d,value:%d,,,,%d",m_id,m_ctflag,remainder,value,m_index);
|
|
|
if(remainder==4){
|
|
|
value>>=4;
|
|
|
if(value>=5)value=0;
|
|
|
else if(value >2 && value<5) value=1;
|
|
|
else value=2;
|
|
|
+ }else{
|
|
|
+ value=m_pwr_stat;
|
|
|
}
|
|
|
}
|