|
@@ -150,6 +150,11 @@ void card_location_base::make_his_location_cell_reader(uint64_t t, const loc_poi
|
|
|
m_his_location_card->insert_cell_reader(pt, t);
|
|
|
}
|
|
|
|
|
|
+void card_location_base::make_his_vehicle_worktime(uint64_t t, uint32_t card_id)
|
|
|
+{
|
|
|
+ m_his_location_card->insert_vehicle_worktime(card_id, t);
|
|
|
+}
|
|
|
+
|
|
|
float get_pdoa(const double poa[], const double& offset)
|
|
|
{
|
|
|
if (poa == nullptr) {
|
|
@@ -505,9 +510,6 @@ void card_location_base::on_location(const std::vector<point>&vp, const std::vec
|
|
|
|
|
|
pt.m_speed_change_rate = speed_diff;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
log_info("[pdoa] card_location_base::on_location ,obj_id=%d, time=%s, reader_id=%d, ct=%d, poa1=%.4f, poa2=%.4f, poa3=%.4f, pdoa=%.4f, pdoa_offset=%.4f, speed=%f, avg_speed=%f, begin_pt.x=%f, begin_pt.y=%f, gesture=%d, dist_original=%f, dist=%f, angle=%f, acc=%.2f, rav=%d, cell_index=%d, cell_x=%f, cell_y=%f, site_cell_index=%d, cell_count=%d, moving_direct=%s, speed_diff=%f",
|
|
|
pt.m_cid,
|
|
|
tool_time::to_str_ex(lm[0].m_time_tmp).c_str(),
|
|
@@ -549,6 +551,16 @@ void card_location_base::on_location(const std::vector<point>&vp, const std::vec
|
|
|
//make_his_location_simplify(time(0) * 1000, pt);
|
|
|
make_his_location_cell_card(pt.m_time_tmp, pt);
|
|
|
make_his_location_cell_reader(pt.m_time_tmp, pt);
|
|
|
+ if (cell_index_current <= 30 && pt.m_direction == "-"&&m_rejudge_well_entry == true)
|
|
|
+ {
|
|
|
+ make_his_vehicle_worktime(pt.m_time_tmp, pt.m_cid);
|
|
|
+ m_rejudge_well_entry = false;
|
|
|
+ }
|
|
|
+ //已经入井了,可以重新记录入井时间
|
|
|
+ else if(cell_index_current > 30)
|
|
|
+ {
|
|
|
+ m_rejudge_well_entry = true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//pt.m_speed *= 20;
|
|
@@ -766,6 +778,7 @@ void card_location_base::clear()
|
|
|
m_buff_size = 0;
|
|
|
m_last_recv_time = 0;
|
|
|
m_last_point = point(0,0);
|
|
|
+ m_cell_index = 0;
|
|
|
m_last_site_id = 0;
|
|
|
m_last_site_dir = -1;
|
|
|
m_last_ct = 0;
|