|
@@ -37,7 +37,7 @@ void area_business_motionless_persion::init(config_file& config)
|
|
|
// _acc_seconds_limit = std::stoi(config.get("service.motionless_acc_seconds_limit","120"));
|
|
|
}
|
|
|
|
|
|
-void area_business_motionless_persion::on_enter(const std::shared_ptr<area_hover>&a,
|
|
|
+void area_business_motionless_persion::on_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
|
|
|
const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
|
|
|
{
|
|
|
if(!card_ptr->is_person())
|
|
@@ -47,6 +47,7 @@ void area_business_motionless_persion::on_enter(const std::shared_ptr<area_hover
|
|
|
|
|
|
auto ptr_temp = std::make_shared<motionless_data>();
|
|
|
ptr = ptr_temp;
|
|
|
+ area_hover_ptr->m_data[area_business_type()] = ptr_temp;
|
|
|
|
|
|
auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_CARD_MOTIONLESS);
|
|
|
ptr_temp->m_is_warning = (nullptr != ev_ptr_temp && !ev_ptr_temp->is_end());
|
|
@@ -60,6 +61,12 @@ void area_business_motionless_persion::on_hover(const std::shared_ptr<area_hover
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if(nullptr == ptr)
|
|
|
+ {
|
|
|
+ log_error("area_business_motionless_persion::on_hover:nullptr == ptr");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
auto ptr_temp = static_cast<motionless_data*>(ptr.get());
|
|
|
|
|
|
if(0 == static_cast<int>(card_ptr->m_acc))
|
|
@@ -100,6 +107,12 @@ void area_business_motionless_persion::on_leave(const std::shared_ptr<area_hover
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if(nullptr == ptr)
|
|
|
+ {
|
|
|
+ log_error("area_business_motionless_persion::on_leave:nullptr == ptr");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
auto ptr_temp = static_cast<motionless_data*>(ptr.get());
|
|
|
if(ptr_temp->m_is_warning)//如果正在告警,则发送取消告警的信息
|
|
|
{
|