|
@@ -7,6 +7,7 @@
|
|
#include "tool_time.h"
|
|
#include "tool_time.h"
|
|
#include "area.h"
|
|
#include "area.h"
|
|
#include "card_path.h"
|
|
#include "card_path.h"
|
|
|
|
+#include "websocket/wsTimerThread.h"
|
|
|
|
|
|
int site::index()const
|
|
int site::index()const
|
|
{
|
|
{
|
|
@@ -20,7 +21,7 @@ site::site(int id)
|
|
,m_id(id)
|
|
,m_id(id)
|
|
,m_path_empty(true)
|
|
,m_path_empty(true)
|
|
{
|
|
{
|
|
- m_time=time(0);
|
|
|
|
|
|
+ //m_time = time(0);
|
|
for(uint32_t i=0;i<m_timeoff_count.size();i++)
|
|
for(uint32_t i=0;i<m_timeoff_count.size();i++)
|
|
m_timeoff_count[i]=0;
|
|
m_timeoff_count[i]=0;
|
|
}
|
|
}
|
|
@@ -216,6 +217,7 @@ std::vector<point> ant::getsol(const double &dist) const
|
|
{
|
|
{
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
+
|
|
v.push_back(pt);
|
|
v.push_back(pt);
|
|
}
|
|
}
|
|
return std::move(v);
|
|
return std::move(v);
|
|
@@ -224,8 +226,15 @@ std::vector<point> ant::getsol(const double &dist) const
|
|
bool visit_site_status::visit(std::shared_ptr<site> s)
|
|
bool visit_site_status::visit(std::shared_ptr<site> s)
|
|
{
|
|
{
|
|
time_t now = time(0);
|
|
time_t now = time(0);
|
|
- int diff = now-s->m_time;
|
|
|
|
|
|
+ int diff = now - s->m_time;
|
|
event_tool::instance()->handle_event(OT_DEVICE_READER, ET_READER_ERROR, s->m_id, READER_TIMEOUT, diff, diff>READER_TIMEOUT);
|
|
event_tool::instance()->handle_event(OT_DEVICE_READER, ET_READER_ERROR, s->m_id, READER_TIMEOUT, diff, diff>READER_TIMEOUT);
|
|
|
|
+
|
|
|
|
+ // 更新设备状态
|
|
|
|
+ int state = (diff > READER_TIMEOUT ? 1 : 0);
|
|
|
|
+ //log_info("[device_state] rid=%d, diff=%d, timeout=%d, state=%d, now=%lld, rtime=%lld", s->m_id, diff, READER_TIMEOUT, state, now, s->m_time);
|
|
|
|
+ sys::device_state ds(s->m_id, s->m_device_type_id, state, now);
|
|
|
|
+ swsTimerThrd.upt_device_state(ds);
|
|
|
|
+
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -401,8 +410,8 @@ void sit_list::read_ant_path(int id)
|
|
void sit_list::init_site(const std::string &ids /*=""*/)
|
|
void sit_list::init_site(const std::string &ids /*=""*/)
|
|
{
|
|
{
|
|
std::string sql = "SELECT reader_id, reader_type_id, dat_reader.map_id, \
|
|
std::string sql = "SELECT reader_id, reader_type_id, dat_reader.map_id, \
|
|
- area_id, device_type_id, dimension, dat_map.scale,need_power_alarm\
|
|
|
|
- ,x,y, pdoa_offset, pdoa_direction, isSpecial\
|
|
|
|
|
|
+ area_id, device_type_id, dimension, dat_map.scale,need_power_alarm \
|
|
|
|
+ ,x,y, pdoa_offset, pdoa_direction, isSpecial, down_stream_idx \
|
|
FROM dat_reader, dat_map where \
|
|
FROM dat_reader, dat_map where \
|
|
dat_reader.map_id=dat_map.map_id and state=0";
|
|
dat_reader.map_id=dat_map.map_id and state=0";
|
|
|
|
|
|
@@ -465,6 +474,9 @@ void sit_list::init_site(const std::string &ids /*=""*/)
|
|
int power_alarm = 0;
|
|
int power_alarm = 0;
|
|
DBRes.GetField( "need_power_alarm",power_alarm, Error );
|
|
DBRes.GetField( "need_power_alarm",power_alarm, Error );
|
|
|
|
|
|
|
|
+ int down_stream_idx = 0;
|
|
|
|
+ DBRes.GetField("down_stream_idx", down_stream_idx, Error);
|
|
|
|
+
|
|
site_ptr->m_reader_type_id = reader_type_id;
|
|
site_ptr->m_reader_type_id = reader_type_id;
|
|
site_ptr->m_map_id = map_id;
|
|
site_ptr->m_map_id = map_id;
|
|
site_ptr->m_area_id = area_id;
|
|
site_ptr->m_area_id = area_id;
|
|
@@ -472,6 +484,7 @@ void sit_list::init_site(const std::string &ids /*=""*/)
|
|
site_ptr->m_device_type_id = device_type_id;
|
|
site_ptr->m_device_type_id = device_type_id;
|
|
site_ptr->m_num_dims = dimension;
|
|
site_ptr->m_num_dims = dimension;
|
|
site_ptr->m_scale = scale;
|
|
site_ptr->m_scale = scale;
|
|
|
|
+ site_ptr->m_down_stream_idx = down_stream_idx;
|
|
site_ptr->create_area();
|
|
site_ptr->create_area();
|
|
|
|
|
|
double x = 0, y = 0;
|
|
double x = 0, y = 0;
|