|
@@ -19,6 +19,7 @@
|
|
|
#include <config_file.h>
|
|
|
#include "cardMgr.h"
|
|
|
#include "card.h"
|
|
|
+#include "db_api/CDBSingletonDefine.h"
|
|
|
extern config_file config;
|
|
|
int person::m_limit_detained_time=-1;
|
|
|
int person::m_auto_up_mine_time=-1;
|
|
@@ -31,7 +32,9 @@ person::person(const std::string &type,uint32_t cardid,uint16_t needdisplay,int1
|
|
|
,m_deptName(dname)
|
|
|
{
|
|
|
if(person::m_auto_up_mine_time==-1){
|
|
|
+ //显示超时的界限 h
|
|
|
person::m_limit_detained_time=config.get("service.detained_time",10);
|
|
|
+ //打印输出超过该时长的数据信息
|
|
|
person::m_auto_up_mine_time=config.get("service.auto_up_mine_time",20);
|
|
|
person::m_person_cards_flag=config.get("service.person_cards_flag",0);
|
|
|
}
|
|
@@ -45,7 +48,7 @@ person::~person()
|
|
|
void person::clear()
|
|
|
{
|
|
|
make_his_location(m_time,*this,true);
|
|
|
-
|
|
|
+ //初始化区域和井下部分基础信息
|
|
|
m_mine_tool->clear();
|
|
|
m_area_tool->clear();
|
|
|
//清除部分信息
|
|
@@ -68,7 +71,7 @@ void person::clear()
|
|
|
cardMgr::instance()->tryPut(m);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+//设置区域和地标信息
|
|
|
void person::set_area_info(int mapid,double scale,int areaid,uint64_t t,int type)
|
|
|
{
|
|
|
m_area_tool->set_area_info(mapid,scale,areaid,*this,t,type);
|
|
@@ -77,7 +80,7 @@ void person::site_hover(int sid)
|
|
|
{
|
|
|
IKSDK_DB(sid);
|
|
|
}
|
|
|
-//虹膜识别入库功能
|
|
|
+//虹膜识别入库功能 输入到his_att_interface表.目前主要最小系统输入这个表,与井口闸机联动
|
|
|
void person::IKSDK_DB(int sid)
|
|
|
{
|
|
|
time_t now = time(0);
|
|
@@ -111,19 +114,21 @@ std::shared_ptr<mine_tool> person::get_mine_tool()
|
|
|
}
|
|
|
void person::do_business(const std::shared_ptr<site>&site,const point &pt,double acc)
|
|
|
{
|
|
|
+ //区域相关逻辑驱动
|
|
|
m_area_tool->on_point(shared_from_this(),pt);
|
|
|
+ //处理历史轨迹
|
|
|
make_his_location(m_time,pt);
|
|
|
m_timeval=m_time;
|
|
|
+ //三率数据处理
|
|
|
handle_three_rates(pt);
|
|
|
//一人多卡数据输入
|
|
|
-
|
|
|
if(m_person_cards_flag){
|
|
|
Msg m;
|
|
|
m.type=m_type;m.x=(int)x;m.y=(int)y;m.cmd=CMD_HANDLE;m.cardid=m_type<<32|m_id;
|
|
|
cardMgr::instance()->tryPut(m);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+//设置人员上猴车
|
|
|
void person::reset(std::shared_ptr<monkey_person> mp)
|
|
|
{
|
|
|
m_monkeyPerson = mp;
|
|
@@ -140,7 +145,7 @@ void person::handle_three_rates(const point & pt)
|
|
|
cp.work_type_id=m_worktype_id;
|
|
|
put_three_rates(cp);
|
|
|
}
|
|
|
-
|
|
|
+//定时推送到web函数,
|
|
|
void person::on_timer()
|
|
|
{
|
|
|
if(!m_mine_tool->m_is_attendance)
|
|
@@ -217,6 +222,7 @@ void person::print_card_detained()
|
|
|
inc_upmine_flag(2);
|
|
|
}
|
|
|
}
|
|
|
+//获取web输入坐标点
|
|
|
point person::getSmoothPoint(uint64_t& t)
|
|
|
{
|
|
|
point pt;
|
|
@@ -236,12 +242,16 @@ point person::getSmoothPoint(uint64_t& t)
|
|
|
}
|
|
|
return pt;
|
|
|
}
|
|
|
+//人员显示输入
|
|
|
void person::get_card(bool f)
|
|
|
{
|
|
|
if (!m_mine_tool->m_is_attendance)
|
|
|
return ;
|
|
|
mine_business::inst()->fetch_add(m_display);
|
|
|
}
|
|
|
+//新协议处理逻辑。
|
|
|
+//0-4包为一组处理
|
|
|
+//其中0-1为充电时间 2-3 为放电时间 4为电量标识
|
|
|
#define CHARGE_MASK 0X03
|
|
|
#define DISCHARGE_MASK 0X0C
|
|
|
#define POWER_MASK 0X10
|
|
@@ -267,12 +277,22 @@ void person::handle_message(uint16_t ct,uint8_t &value)
|
|
|
//新卡继续往下走,获取数据
|
|
|
uint16_t cttmp = ct/5;
|
|
|
if(m_ctflag != cttmp){
|
|
|
+ uint8_t power=m_power;
|
|
|
if((m_index&CHARGE_MASK) == CHARGE_MASK)
|
|
|
m_charge_value=(m_value[0]<<8)|m_value[1];
|
|
|
if((m_index&DISCHARGE_MASK) == DISCHARGE_MASK)
|
|
|
m_discharge_value=(m_value[2]<<8)|m_value[3];
|
|
|
if((m_index&POWER_MASK) == POWER_MASK)
|
|
|
- m_power=m_value[4]>>4;
|
|
|
+ power=m_value[4]>>4;
|
|
|
+ //插入sql
|
|
|
+ if(power !=m_power){
|
|
|
+ m_power=power;
|
|
|
+ char nsql[128]={0};
|
|
|
+ const char*sql="insert into his_card_batlog (card_id,time,percent) values (%d,'%s',%d);";
|
|
|
+ snprintf(nsql,128,sql,m_id,tool_time::now_to_str().c_str(),m_power*10);
|
|
|
+ sDBConnPool.PushAsync(nsql);
|
|
|
+ logn_info(2,"%s",nsql);
|
|
|
+ }
|
|
|
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));
|
|
|
}
|