|
@@ -18,9 +18,49 @@
|
|
|
#include "card.h"
|
|
|
#include "mine_business.h"
|
|
|
#include "crc.h"
|
|
|
+#include "clock.h"
|
|
|
+
|
|
|
+struct timer_worker_thread: loop_thread
|
|
|
+{
|
|
|
+ void do_task_0001()
|
|
|
+ {
|
|
|
+ static int version = -1;
|
|
|
+ visit_site_status vss;
|
|
|
+ sit_list::instance()->accept(vss);
|
|
|
+ int v = card_list::instance()->version();
|
|
|
+ card_list_visit clv;
|
|
|
+ if(v != version)
|
|
|
+ {
|
|
|
+ version=v;
|
|
|
+ clv._flag=true;
|
|
|
+ mine_business::inst()->clear_vehicle();
|
|
|
+ }
|
|
|
+ card_list::instance()->accept(clv);
|
|
|
+ mine_business::inst()->run_business();
|
|
|
+ }
|
|
|
+
|
|
|
+ void do_task(task&t)
|
|
|
+ {
|
|
|
+ zclock clock;
|
|
|
+ switch(t.m_cmd_code)
|
|
|
+ {
|
|
|
+ case 0x0001:
|
|
|
+ {
|
|
|
+ do_task_0001();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ t.destroy();
|
|
|
+ log_info("task=%d,use time:%ldus",t.m_cmd_code, clock.count_us());
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+std::unique_ptr<timer_worker_thread> m_timer_worker;
|
|
|
|
|
|
net_service::net_service()
|
|
|
{
|
|
|
+ m_timer_worker.reset(new timer_worker_thread());
|
|
|
m_loc_worker=worker::instance();
|
|
|
m_sync_worker=tdoa_sync::instance();
|
|
|
}
|
|
@@ -29,24 +69,18 @@ net_service::~net_service()
|
|
|
{
|
|
|
if(m_loc_worker)
|
|
|
m_loc_worker->stop();
|
|
|
+
|
|
|
+ m_timer_worker->stop();
|
|
|
}
|
|
|
|
|
|
void net_service::on_timer()
|
|
|
{
|
|
|
- static int version = -1;
|
|
|
- visit_site_status vss;
|
|
|
- sit_list::instance()->accept(vss);
|
|
|
- int v = card_list::instance()->version();
|
|
|
- card_list_visit clv;
|
|
|
- if(v != version)
|
|
|
- {
|
|
|
- version=v;
|
|
|
- clv._flag=true;
|
|
|
- mine_business::inst()->clear_vehicle();
|
|
|
- }
|
|
|
- card_list::instance()->accept(clv);
|
|
|
- mine_business::inst()->run_business();
|
|
|
+ task*t=task::alloc<task>();
|
|
|
+ t->m_cmd_code=1;
|
|
|
+ t->m_hash_id=0;
|
|
|
+ m_timer_worker->async_request(t);
|
|
|
}
|
|
|
+
|
|
|
void net_service::on_connect(const std::shared_ptr<client>& clt)
|
|
|
{
|
|
|
|
|
@@ -91,8 +125,8 @@ void net_service::on_message(const std::shared_ptr<client> &clt,const char*data,
|
|
|
{
|
|
|
char timebuf[64]{0};
|
|
|
strftime(timebuf,64,"%F %T",&site_tm);
|
|
|
- logn_info(1,"分站数据信息:%s net=%s,sid=%d,tm=%s,sct=%d",(power&1)==0?"true":"false",
|
|
|
- clt->name().c_str(),site_id,timebuf,site_ct);
|
|
|
+ logn_info(1,"分站数据信息:net=%s,sid=%d,tm=%s,sct=%d,power=%s", clt->name().c_str(), site_id,timebuf,
|
|
|
+ site_ct, site_ptr->m_power_check_enable?((power&1)?"ac":"dc"):"unkown");
|
|
|
|
|
|
time_t site_time=mktime(&site_tm);
|
|
|
double diff=difftime(site_time, site_ptr->last_site_time());
|