|
@@ -128,6 +128,7 @@ BEGIN_MESSAGE_MAP(CYAServerDlg, CDialogEx)
|
|
|
ON_MESSAGE(WM_CARD_ADD_DIST, &CYAServerDlg::OnCardAddDist)
|
|
|
ON_MESSAGE(WM_REMOVE_SOCKET, &CYAServerDlg::OnRemoveSocket)
|
|
|
ON_EN_UPDATE(IDC_EDIT_READERID, &CYAServerDlg::OnEnUpdateEditReaderid)
|
|
|
+ ON_COMMAND(ID_ABOUT, &CYAServerDlg::OnAbout)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CYAServerDlg 消息处理程序
|
|
@@ -504,7 +505,7 @@ HCURSOR CYAServerDlg::OnQueryDragIcon()
|
|
|
*/
|
|
|
void CYAServerDlg::OnBnStart()
|
|
|
{
|
|
|
- Test();
|
|
|
+ //Test();
|
|
|
if(!is_websocket_login){
|
|
|
ws_login();
|
|
|
}
|
|
@@ -899,11 +900,11 @@ int CYAServerDlg::init_vehicle(string vehicle_id /* = "" */, bool is_card /*= fa
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
-* 初始化所有车卡信息
|
|
|
+* 初始化所有自组网卡信息
|
|
|
*
|
|
|
* param
|
|
|
-* vehicle_id ------ 车卡id
|
|
|
-* is_card ------ 是否是卡
|
|
|
+* adhoc_id ------ 自组网卡id
|
|
|
+* is_card ------ 是否是卡
|
|
|
*
|
|
|
* return
|
|
|
* 成功返回0,失败返回1
|
|
@@ -920,14 +921,59 @@ int CYAServerDlg::init_adhoc(string adhoc_id /*= ""*/,bool is_card /*= false*/)
|
|
|
MYSQL_ROW pRow;
|
|
|
MYSQL_RES *pRes = NULL;
|
|
|
int err = 0;
|
|
|
- char strsql[LENGTH_SQL] = {0};
|
|
|
-
|
|
|
- if(adhoc_id == ""){
|
|
|
- sprintf_s(strsql,"select adhoc_id,name,card_id from dat_adhoc where state==0");
|
|
|
+ char buf[LENGTH_SQL] = {0};
|
|
|
+ if(adhoc_id.length() == 0){
|
|
|
+ sprintf_s(buf,"select adhoc_id,v.card_id,v.dept_id, \
|
|
|
+ d.name as dname \
|
|
|
+ from dat_adhoc v \
|
|
|
+ LEFT JOIN dat_card c ON v.card_id = c.card_id \
|
|
|
+ LEFT JOIN dat_dept d ON v.dept_id = d.dept_id \
|
|
|
+ where c.card_type_id = 3 and v.state = 0 ;");
|
|
|
+ }else if(is_card){
|
|
|
+ sprintf_s(buf,"select adhoc_id,v.card_id,v.dept_id, \
|
|
|
+ d.name as dname \
|
|
|
+ from dat_adhoc v \
|
|
|
+ LEFT JOIN dat_card c ON v.card_id = c.card_id \
|
|
|
+ LEFT JOIN dat_dept d ON v.dept_id = d.dept_id \
|
|
|
+ where c.card_type_id = 3 and v.state = 0 and v.card_id ='%s';",adhoc_id.c_str());
|
|
|
}else{
|
|
|
- sprintf_s(strsql,"select adhoc_id,name,card_id from dat_adhoc where state==0 and adhoc_id =='%s'",adhoc_id);
|
|
|
+ sprintf_s(buf,"select adhoc_id,v.card_id,v.dept_id, \
|
|
|
+ d.name as dname \
|
|
|
+ from dat_adhoc v \
|
|
|
+ LEFT JOIN dat_card c ON v.card_id = c.card_id \
|
|
|
+ LEFT JOIN dat_dept d ON v.dept_id = d.dept_id \
|
|
|
+ where c.card_type_id = 3 and v.state = 0 and v.adhoc_id ='%s';",adhoc_id.c_str());
|
|
|
}
|
|
|
|
|
|
+ pRes = pConn->Execute(buf, err);
|
|
|
+
|
|
|
+ if(pRes == NULL){
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ Card* pCard = NULL;
|
|
|
+ int nRow = 0;
|
|
|
+ while(pRow = mysql_fetch_row(pRes)){
|
|
|
+ CardMap::iterator it = mp_card_list_all.find(pRow[1]);
|
|
|
+ if(it != mp_card_list_all.end()){
|
|
|
+ pCard = it->second;
|
|
|
+ }else{
|
|
|
+ pCard = new Card(pRow[1], CT_ADHOC, theApp.z_offset);
|
|
|
+ mp_card_list_all.insert(make_pair(pCard->card_id, pCard));
|
|
|
+ }
|
|
|
+ pCard->id = (pRow[0] == NULL) ? "" : pRow[0];
|
|
|
+ pCard->card_id = (pRow[1] == NULL) ? "" : pRow[1];
|
|
|
+ pCard->dept_id = (pRow[2] == NULL) ? 0:atoi(pRow[2]);
|
|
|
+ pCard->department = (pRow[3] == NULL) ? "" : pRow[3];
|
|
|
+ nRow++;
|
|
|
+ }
|
|
|
+ mysql_free_result(pRes);
|
|
|
+
|
|
|
+ CString strlog;
|
|
|
+ strlog.Format(_T("%s%d%s"), _T(LOG_INIT_ADHOC), nRow, _T(LOG_RECORD_COUNT));
|
|
|
+ show_log(strlog);
|
|
|
+
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1160,15 +1206,20 @@ int CYAServerDlg::init_dev_adhoc( int reader_id /*= 0*/ )
|
|
|
int err = 0;
|
|
|
char strsql[LENGTH_SQL] = {0};
|
|
|
if(reader_id == 0){//dat_dev_adhoc
|
|
|
- sprintf_s(strsql, "select ad.adhoc_id, ad.reader_id, ad.idx, ad.x, ad.y, ad.z from dat_adhoc ad, dat_reader r \
|
|
|
+ sprintf_s(strsql, "select ad.id, ad.reader_id, ad.level, ad.x, ad.y, ad.z from dat_dev_adhoc ad, dat_reader r \
|
|
|
where ad.reader_id = r.reader_id;");
|
|
|
}else{
|
|
|
- sprintf_s(strsql, "select ad.adhoc_id, ad.reader_id, ad.idx, ad.x, ad.y, ad.z from dat_adhoc ad, dat_reader r \
|
|
|
+ sprintf_s(strsql, "select ad.id, ad.reader_id, ad.level, ad.x, ad.y, ad.z from dat_dev_adhoc ad, dat_reader r \
|
|
|
where ad.reader_id = r.reader_id and ad.reader_id = %d; ", reader_id);
|
|
|
}
|
|
|
pRes = pConn->Execute(strsql,err);
|
|
|
+
|
|
|
+ if(pRes == NULL){
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
int nRow = 0;
|
|
|
int idx = 0;
|
|
|
+
|
|
|
while(pRow = mysql_fetch_row(pRes)){
|
|
|
ReaderMap::iterator it = mp_reader_list.find(atoi(pRow[1]));
|
|
|
if(it != mp_reader_list.end()){
|
|
@@ -1186,7 +1237,7 @@ int CYAServerDlg::init_dev_adhoc( int reader_id /*= 0*/ )
|
|
|
mysql_free_result(pRes);
|
|
|
|
|
|
CString strlog;
|
|
|
- strlog.Format(_T("%s%d%s"), _T(LOG_INIT_ADHOC), nRow, _T(LOG_RECORD_COUNT));
|
|
|
+ strlog.Format(_T("%s%d%s"), _T(LOG_INIT_ADHOC_LOCATE), nRow, _T(LOG_RECORD_COUNT));
|
|
|
show_log(strlog);
|
|
|
return 0;
|
|
|
}
|
|
@@ -1605,7 +1656,6 @@ void CYAServerDlg::ws_init()
|
|
|
is_websocket_login = false;
|
|
|
|
|
|
_io->set_reconnect_attempts(3);
|
|
|
-
|
|
|
using std::placeholders::_1;
|
|
|
using std::placeholders::_2;
|
|
|
using std::placeholders::_3;
|
|
@@ -2190,6 +2240,12 @@ void CYAServerDlg::parse_data_locate_card_vehicle(BYTE* DataBuffer, int& nCurPos
|
|
|
nCurPos += sizeof(WORD);
|
|
|
}
|
|
|
|
|
|
+#ifdef ALGORITHM_TYPE_INS
|
|
|
+ if(card->accelerate_state != btAcceleration){
|
|
|
+ //如果加速度状态发生了改变,就重置惯导的权重值
|
|
|
+ card->ins_weight = INS_WEIGHT;
|
|
|
+ }
|
|
|
+#endif
|
|
|
if(LT_COORDINATE == theApp.locate_type){
|
|
|
card->time_stamp = wCardTickCount;
|
|
|
card->ranging_type = btType;
|
|
@@ -2271,14 +2327,17 @@ void CYAServerDlg::parse_data_adhoc( BYTE* DataBuffer, int& nCurPos, int reader_
|
|
|
CardMap::iterator it_card = mp_card_list_all.find(str_card_id);
|
|
|
if(it_card != mp_card_list_all.end()){
|
|
|
card = it_card->second;
|
|
|
-
|
|
|
}else{
|
|
|
card = new Card(str_card_id, CT_ADHOC, theApp.z_offset);
|
|
|
mp_card_list_all.insert(make_pair(str_card_id, card));
|
|
|
}
|
|
|
CardMap::iterator it_adhoc_card = mp_card_list_down_adhoc.find(str_card_id);
|
|
|
if(it_adhoc_card==mp_card_list_down_adhoc.end()&&it_card!=mp_card_list_all.end()){
|
|
|
- mp_card_list_down_adhoc.insert(make_pair(str_card_id, it_card->second));
|
|
|
+ if(card == NULL){
|
|
|
+ mp_card_list_down_adhoc.insert(make_pair(str_card_id, it_card->second));
|
|
|
+ }else{
|
|
|
+ mp_card_list_down_adhoc.insert(make_pair(str_card_id, card));
|
|
|
+ }
|
|
|
}
|
|
|
//设置当前分站, 进入分站时间、进入区域时间,当前区域,当前地图
|
|
|
card->set_reader(it->second);
|
|
@@ -2294,7 +2353,6 @@ void CYAServerDlg::parse_data_adhoc( BYTE* DataBuffer, int& nCurPos, int reader_
|
|
|
if(btCmd & 0x01){ // 呼救
|
|
|
card->status_help = STATUS_ERROR;
|
|
|
}else if(btCmd & 0x02){ // 呼叫应答,即呼叫成功
|
|
|
- TRACE("ANS!");
|
|
|
if(STATUS_NORMAL == card->status_call){
|
|
|
card->state_biz = STATUS_NORMAL;
|
|
|
}
|
|
@@ -2308,58 +2366,6 @@ void CYAServerDlg::parse_data_adhoc( BYTE* DataBuffer, int& nCurPos, int reader_
|
|
|
//}
|
|
|
deal_card_msg(card);
|
|
|
}
|
|
|
-
|
|
|
- //BYTE btDiret = (btCmd >> 6);
|
|
|
- //if(btDiret == 0x02){ // 只处理上传数据,0x00、0x03 保留,0x01下发数据,0x02上传数据
|
|
|
- // btCmd &= 0x3F; // 高两位为命令传递方向,上位机无用
|
|
|
- // BYTE btId = 0;
|
|
|
- // memcpy(&btId, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
- // nCurPos += sizeof(BYTE);
|
|
|
- // BYTE btTickcount = 0;
|
|
|
- // memcpy(&btTickcount, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
- // nCurPos += sizeof(BYTE);
|
|
|
- // BYTE btIdx = 0;
|
|
|
- // memcpy(&btIdx, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
- // nCurPos += sizeof(BYTE);
|
|
|
-
|
|
|
- // if(btId != 0){
|
|
|
- // string str_card_id = CFunctions::getstrwithzero(CT_ADHOC, 3) + CFunctions::getstrwithzero(btId, 10);
|
|
|
- // Card* card = NULL;
|
|
|
- // CardMap::iterator it_card = mp_card_list_all.find(str_card_id);
|
|
|
- // if(it_card != mp_card_list_all.end()){
|
|
|
- // card = it_card->second;
|
|
|
- // }else{
|
|
|
- // card = new Card(str_card_id, CT_ADHOC, theApp.z_offset);
|
|
|
- // mp_card_list_all.insert(make_pair(str_card_id, card));
|
|
|
- // }
|
|
|
- // //设置当前分站, 进入分站时间、进入区域时间,当前区域,当前地图
|
|
|
- // card->set_reader(it->second);
|
|
|
- // if(it->second->adhoc[btIdx]){
|
|
|
- // card->x = it->second->adhoc[btIdx]->x;
|
|
|
- // card->y = it->second->adhoc[btIdx]->y;
|
|
|
- // card->z = it->second->adhoc[btIdx]->z;
|
|
|
- // }
|
|
|
-
|
|
|
- // if(btCmd & 0x01){ // 呼救
|
|
|
- // card->state_biz = STATUS_HELP;
|
|
|
- // }else if(btCmd & 0x02){ // 呼叫应答,即呼叫成功
|
|
|
- // TRACE("ANS!");
|
|
|
- // if(STATUS_NORMAL == card->status_call){
|
|
|
-
|
|
|
- // }
|
|
|
- // }else {
|
|
|
- // card->status_call = STATUS_NORMAL;
|
|
|
- // card->status_help = STATUS_NORMAL;
|
|
|
- // }
|
|
|
- // card->issent = false;
|
|
|
- // //if(card->status_help != btCmd){
|
|
|
- // // card->status_help = btCmd;
|
|
|
- // //}
|
|
|
- // deal_card_msg(card);
|
|
|
- // }
|
|
|
- //}else{
|
|
|
- // nCurPos += 3 * sizeof(BYTE);
|
|
|
- //}
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2786,6 +2792,7 @@ std::string CYAServerDlg::get_json_help()
|
|
|
{
|
|
|
Json::Value root;
|
|
|
Json::Value alarms;
|
|
|
+ Json::Value adhoc;
|
|
|
char _time[STR_LEN_TIME];
|
|
|
struct tm local_time;
|
|
|
|
|
@@ -2805,10 +2812,11 @@ std::string CYAServerDlg::get_json_help()
|
|
|
}
|
|
|
if(!alarm.isNull()){
|
|
|
//alarms.append(alarm);
|
|
|
- alarms=alarm;
|
|
|
-
|
|
|
+ //alarms=alarm;
|
|
|
+ alarms.append(alarm);
|
|
|
string sss = "";
|
|
|
sss = alarms.toStyledString();
|
|
|
+ //adhoc.append(alarms);
|
|
|
}
|
|
|
}
|
|
|
if(!alarms.isNull()){
|
|
@@ -3440,10 +3448,12 @@ void CYAServerDlg::card_enter_park( Card* card )
|
|
|
{
|
|
|
if(card->is_pos_state_pack_changed(TEST_CONFIRM_COUNT)){ // 位置没有变化
|
|
|
if(AAT_ENTER == card->pos_state_park){ //
|
|
|
- card->up_time = card->deal_time;
|
|
|
+ //card->up_time = card->deal_time;
|
|
|
+ card->up_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
store_data_card(card, RPT_ATTEND_UP);
|
|
|
}else if(AAT_LEAVE == card->pos_state_park){ // 入井
|
|
|
- card->down_time = card->deal_time;
|
|
|
+ //card->down_time = card->deal_time;
|
|
|
+ card->down_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
store_data_card(card, RPT_ATTEND_DOWN);
|
|
|
}
|
|
|
}
|
|
@@ -3507,7 +3517,8 @@ void CYAServerDlg::card_enter_area( Card* card)
|
|
|
card_leave_area(card, it_area_cur->second);
|
|
|
}
|
|
|
card->area_id = it_area->second->area_id;
|
|
|
- card->enter_area_time = card->deal_time;
|
|
|
+ //card->enter_area_time = card->deal_time;
|
|
|
+ card->enter_area_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
card->pos_state = (0 == it_area->second->area_type_id) ? DT_UP :DT_DOWN;
|
|
|
card->pos_state_park = it_area->second->is_att;
|
|
|
|
|
@@ -3547,7 +3558,8 @@ void CYAServerDlg::card_enter_area( Card* card)
|
|
|
card_leave_area(card, it_area_cur->second);
|
|
|
}
|
|
|
card->area_id = it_area_reader->second->area_id;
|
|
|
- card->enter_area_time = card->deal_time;
|
|
|
+ //card->enter_area_time = card->deal_time;
|
|
|
+ card->enter_area_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
card->pos_state = (0 == it_area_reader->second->area_type_id) ? DT_UP :DT_DOWN;
|
|
|
card->pos_state_park = it_area_reader->second->is_att;
|
|
|
if(CT_PERSON == card->card_type){
|
|
@@ -3836,11 +3848,17 @@ void CYAServerDlg::store_data_card( Card* card, int tag )
|
|
|
char sql[LENGTH_SQL] = {0};
|
|
|
char _time[STR_LEN_TIME], _time_ex[STR_LEN_TIME];
|
|
|
struct tm local_time, local_time_ex;
|
|
|
- localtime_s(&local_time, &card->deal_time);
|
|
|
- strftime(_time, 30, "%Y-%m-%d %H:%M:%S", &local_time);
|
|
|
+ //localtime_s(&local_time, &card->deal_time);
|
|
|
+ //strftime(_time, 30, "%Y-%m-%d %H:%M:%S", &local_time);
|
|
|
|
|
|
bool b_exec = false;
|
|
|
|
|
|
+ sprintf_s(_time,
|
|
|
+ STR_LEN_TIME,
|
|
|
+ "%u-%u-%u %u:%u:%u.%u",
|
|
|
+ card->deal_time.wYear,card->deal_time.wMonth,card->deal_time.wDay,
|
|
|
+ card->deal_time.wHour + 8,card->deal_time.wMinute,card->deal_time.wSecond,card->deal_time.wMilliseconds);
|
|
|
+
|
|
|
switch(tag){
|
|
|
case TEST_LOCATE_COMPARE:
|
|
|
{
|
|
@@ -3924,6 +3942,7 @@ void CYAServerDlg::store_data_card( Card* card, int tag )
|
|
|
case RPT_ATTEND_UP:
|
|
|
{
|
|
|
if(card->map_id != 0 && card->area_id != 0){
|
|
|
+ TRACE(_T(" 6 "));
|
|
|
b_exec = true;
|
|
|
localtime_s(&local_time_ex, &card->down_time);
|
|
|
strftime(_time_ex, 30, "%Y-%m-%d %H:%M:%S", &local_time_ex);
|
|
@@ -4593,12 +4612,6 @@ void CYAServerDlg::parse_json_data_call_card(message::ptr const& data /*const ch
|
|
|
|
|
|
map<string,message::ptr> data_map = data->get_map()[JSON_ROOT_KEY_DATA]->get_map();
|
|
|
|
|
|
- /*if(m_log_recv_package){
|
|
|
- string s_log = "";
|
|
|
- s_log = data->get_string();
|
|
|
- writeErrorLog(_T("JSON_R"),CFunctions::c2wc(s_log.c_str()),false);
|
|
|
- }*/
|
|
|
-
|
|
|
call_id = data_map[JSON_KEY_CALL_CARD_CALL_ID]->get_string();
|
|
|
call_time_out = data_map[JSON_KEY_CALL_CARD_CALL_TIME_OUT]->get_int();
|
|
|
call_type_id = data_map[JSON_KEY_CALL_CARD_CALL_TYPE]->get_int();
|
|
@@ -4722,6 +4735,8 @@ void CYAServerDlg::parse_json_data_call_card(message::ptr const& data /*const ch
|
|
|
if(it_call_reader != mp_call_info.end()){
|
|
|
call_reader = it_call_reader->second;
|
|
|
call_reader->is_start_call = true;
|
|
|
+ call_reader->is_call_all = false;
|
|
|
+ call_reader->cards_count = 1;
|
|
|
if(call_reader->call_type > call_type_id){
|
|
|
call_reader->call_type = call_type_id;
|
|
|
}
|
|
@@ -4993,6 +5008,8 @@ void CYAServerDlg::deal_call_edit_card(string id, EDIT_TYPE_ID edit_type_id)
|
|
|
init_vehicle(id, true);
|
|
|
}else if(CT_PERSON == card_type_id) {
|
|
|
init_staffer(id, true);
|
|
|
+ }else if(CT_ADHOC == card_type_id){
|
|
|
+ init_adhoc(id, true);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -5002,6 +5019,8 @@ void CYAServerDlg::deal_call_edit_card(string id, EDIT_TYPE_ID edit_type_id)
|
|
|
init_vehicle(id, true);
|
|
|
}else if(CT_PERSON == card_type_id) {
|
|
|
init_staffer(id, true);
|
|
|
+ }else if(CT_ADHOC == card_type_id){
|
|
|
+ init_adhoc(id, true);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -5087,6 +5106,41 @@ void CYAServerDlg::deal_call_edit_vehicle(string id, EDIT_TYPE_ID edit_type_id)
|
|
|
show_log(strlog);
|
|
|
}
|
|
|
|
|
|
+void CYAServerDlg::deal_call_edit_adhoc(string id, EDIT_TYPE_ID edit_type_id)
|
|
|
+{
|
|
|
+ CString strlog;
|
|
|
+ switch (edit_type_id)
|
|
|
+ {
|
|
|
+ case ET_INSERT:
|
|
|
+ {
|
|
|
+ init_adhoc(id);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case ET_UPDATE:
|
|
|
+ {
|
|
|
+ init_adhoc(id);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case ET_DELETE:
|
|
|
+ {
|
|
|
+ string cardid = "";
|
|
|
+ CardMap::iterator it_card = mp_card_list_down_adhoc.begin();
|
|
|
+ for(; it_card != mp_card_list_down_adhoc.end(); ++it_card){
|
|
|
+ if(it_card->second->id == id){
|
|
|
+ cardid = it_card->second->card_id;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ remove_card(cardid);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ strlog.Format(_T("%s%s"), _T(LOG_EDIT_ADHOC), _T(LOG_SUCCESS));
|
|
|
+ show_log(strlog);
|
|
|
+}
|
|
|
+
|
|
|
void CYAServerDlg::remove_card( string card_id )
|
|
|
{
|
|
|
if(card_id.length() == 0)
|
|
@@ -5526,6 +5580,7 @@ void CYAServerDlg::init_base_data()
|
|
|
init_card();
|
|
|
init_staffer();
|
|
|
init_vehicle();
|
|
|
+ init_adhoc();
|
|
|
}
|
|
|
|
|
|
void CYAServerDlg::load_his_data()
|
|
@@ -5773,7 +5828,8 @@ int CYAServerDlg::init_card( string card_id /*= ""*/ )
|
|
|
|
|
|
void CYAServerDlg::card_up_mine( Card* card )
|
|
|
{
|
|
|
- card->up_time = card->deal_time;
|
|
|
+ //card->up_time = card->deal_time;
|
|
|
+ card->up_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
store_data_card(card, RPT_ATTEND_UP);
|
|
|
if(CT_PERSON == card->card_type){
|
|
|
CardMap::iterator it_card = mp_card_list_down_person.find(card->card_id);
|
|
@@ -5822,7 +5878,8 @@ void CYAServerDlg::card_up_mine( Card* card )
|
|
|
|
|
|
void CYAServerDlg::card_down_mine( Card* card )
|
|
|
{
|
|
|
- card->down_time = card->deal_time;
|
|
|
+ //card->down_time = card->deal_time;
|
|
|
+ card->down_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
if(CT_PERSON == card->card_type){
|
|
|
CardMap::iterator it_card = mp_card_list_down_person.find(card->card_id);
|
|
|
if(it_card == mp_card_list_down_person.end()){
|
|
@@ -6115,7 +6172,8 @@ void CYAServerDlg::deal_card_state( Card* card )
|
|
|
store_data_card(card, ALARM_CARD_LOW_POWER_END);
|
|
|
}
|
|
|
if(card->power_state_last == 0 && card->power_state != 0){
|
|
|
- card->low_power_time = card->deal_time;
|
|
|
+ //card->low_power_time = card->deal_time;CFunctions::systime_to_timet(card->deal_time)
|
|
|
+ card->low_power_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
store_data_card(card, ALARM_CARD_LOW_POWER_START);
|
|
|
}
|
|
|
card->power_state_last = card->power_state;
|
|
@@ -6552,52 +6610,52 @@ void CYAServerDlg::Test()
|
|
|
|
|
|
//34
|
|
|
ReceiveData* prd2 = new ReceiveData();
|
|
|
- prd2->reader_id = 218;
|
|
|
+ prd2->reader_id = 217;
|
|
|
prd2->antenna_id = 1;
|
|
|
- prd2->rec_time_stamp = 60380465780;//283613853712;//
|
|
|
- prd2->x = 164.0*dMapScale;
|
|
|
+ prd2->rec_time_stamp = 777596169634;//283613853712;//
|
|
|
+ prd2->x = 210.1*dMapScale;
|
|
|
prd2->y = 449.5*dMapScale;
|
|
|
prd2->z = 0;
|
|
|
- prd2->special = 0;
|
|
|
+ prd2->special = 1;
|
|
|
pRdm.insert(ReceiveDataMap::value_type(prd2->reader_id,*prd2));
|
|
|
|
|
|
//35
|
|
|
ReceiveData* prd3 = new ReceiveData();
|
|
|
- prd3->reader_id = 217;
|
|
|
+ prd3->reader_id = 218;
|
|
|
prd3->antenna_id = 1;
|
|
|
- prd3->rec_time_stamp = 60380488541;//283613846609;
|
|
|
- prd3->x = 210.1*dMapScale;
|
|
|
+ prd3->rec_time_stamp = 777596203395;//283613846609;
|
|
|
+ prd3->x = 164.0*dMapScale;
|
|
|
prd3->y = 449.5*dMapScale;
|
|
|
prd3->z = 0;
|
|
|
prd2->special = 0;
|
|
|
pRdm.insert(ReceiveDataMap::value_type(prd3->reader_id,*prd3));
|
|
|
|
|
|
//36
|
|
|
- //ReceiveData* prd1 = new ReceiveData();
|
|
|
- //prd1->reader_id = 214;
|
|
|
- //prd1->antenna_id = 1;
|
|
|
- //prd1->rec_time_stamp = 464710764016;//283613846791;
|
|
|
- //prd1->x = 328.7*dMapScale;
|
|
|
- //prd1->y = 449.5*dMapScale;
|
|
|
- //prd1->z = 0;
|
|
|
- //prd1->special = 0;
|
|
|
- //pRdm.insert(ReceiveDataMap::value_type(prd1->reader_id,*prd1));
|
|
|
-
|
|
|
- //ReceiveData* prd4 = new ReceiveData();
|
|
|
- //prd4->reader_id = 213;
|
|
|
- //prd4->antenna_id = 1;
|
|
|
- //prd4->rec_time_stamp = 464710783767;//283613846609;
|
|
|
- //prd4->x = 356.3*dMapScale;
|
|
|
- //prd4->y = 449.5*dMapScale;
|
|
|
- //prd4->z = 0;
|
|
|
- //pRdm.insert(ReceiveDataMap::value_type(prd4->reader_id,*prd4));
|
|
|
+ ReceiveData* prd1 = new ReceiveData();
|
|
|
+ prd1->reader_id = 216;
|
|
|
+ prd1->antenna_id = 1;
|
|
|
+ prd1->rec_time_stamp = 777596203705;//283613846791;
|
|
|
+ prd1->x = 242.8*dMapScale;
|
|
|
+ prd1->y = 449.5*dMapScale;
|
|
|
+ prd1->z = 0;
|
|
|
+ prd1->special = 0;
|
|
|
+ pRdm.insert(ReceiveDataMap::value_type(prd1->reader_id,*prd1));
|
|
|
+
|
|
|
+ ReceiveData* prd4 = new ReceiveData();
|
|
|
+ prd4->reader_id = 215;
|
|
|
+ prd4->antenna_id = 1;
|
|
|
+ prd4->rec_time_stamp = 777596242277;//283613846609;
|
|
|
+ prd4->x = 296.4*dMapScale;
|
|
|
+ prd4->y = 449.5*dMapScale;
|
|
|
+ prd4->z = 0;
|
|
|
+ pRdm.insert(ReceiveDataMap::value_type(prd4->reader_id,*prd4));
|
|
|
|
|
|
//ReceiveData* prd5 = new ReceiveData();
|
|
|
- //prd5->reader_id = 205;
|
|
|
+ //prd5->reader_id = 214;
|
|
|
//prd5->antenna_id = 1;
|
|
|
- //prd5->rec_time_stamp = 630968206079;//283613846609;
|
|
|
- //prd5->x = 804.000000*dMapScale;
|
|
|
- //prd5->y = 285.200000*dMapScale;
|
|
|
+ //prd5->rec_time_stamp = 277993299781;//283613846609;
|
|
|
+ //prd5->x = 328.7*dMapScale;
|
|
|
+ //prd5->y = 449.5*dMapScale;
|
|
|
//prd5->z = 0;
|
|
|
//pRdm.insert(ReceiveDataMap::value_type(prd5->reader_id,*prd5));
|
|
|
|
|
@@ -6633,13 +6691,124 @@ void CYAServerDlg::release_memory()
|
|
|
delete[] theApp.m_path_monitor;
|
|
|
theApp.m_path_monitor = NULL;
|
|
|
}
|
|
|
+
|
|
|
+ int nSize = 0;
|
|
|
+
|
|
|
//mp_area_list
|
|
|
+ release_area_memory();
|
|
|
//mp_map_list
|
|
|
+ release_map_memory();
|
|
|
//mp_card_list_all
|
|
|
+ release_card_memory();
|
|
|
//mp_reader_list
|
|
|
+ release_reader_memory();
|
|
|
+ //mp_dept_list
|
|
|
release_dept_memory();
|
|
|
|
|
|
- delete m_qsmSQL;
|
|
|
+ if(m_qsmSQL){
|
|
|
+ delete m_qsmSQL;
|
|
|
+ m_qsmSQL = NULL;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CYAServerDlg::release_area_memory()
|
|
|
+{
|
|
|
+ if(mp_area_list.size() > 0){
|
|
|
+ AreaMap::iterator it = mp_area_list.begin();
|
|
|
+ for(;it!=mp_area_list.end();){
|
|
|
+ Area* tmp = (Area*)(it->second);
|
|
|
+ mp_area_list.erase(it);
|
|
|
+ if(tmp){
|
|
|
+
|
|
|
+ /*if(tmp->polygon){
|
|
|
+ delete[] tmp->polygon;
|
|
|
+ tmp->polygon = NULL;
|
|
|
+ }*/
|
|
|
+
|
|
|
+ delete tmp;
|
|
|
+ tmp = NULL;
|
|
|
+ }
|
|
|
+ it = mp_area_list.begin();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CYAServerDlg::release_map_memory()
|
|
|
+{
|
|
|
+ if(mp_map_list.size() > 0 ){
|
|
|
+ MapInfoMap::iterator it = mp_map_list.begin();
|
|
|
+ for(it;it!=mp_map_list.end();){
|
|
|
+ MapInfo* tmp = (MapInfo*)(it->second);
|
|
|
+ mp_map_list.erase(it);
|
|
|
+ if(tmp){
|
|
|
+ delete tmp;
|
|
|
+ tmp = NULL;
|
|
|
+ }
|
|
|
+ it = mp_map_list.begin();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CYAServerDlg::release_card_memory()
|
|
|
+{
|
|
|
+ if(mp_card_list_all.size()>0){
|
|
|
+ CardMap::iterator it = mp_card_list_all.begin();
|
|
|
+ for(;it!=mp_card_list_all.end();){
|
|
|
+ Card* tmp = (Card*)(it->second);
|
|
|
+ mp_card_list_all.erase(it);
|
|
|
+ if(tmp){
|
|
|
+ delete tmp;
|
|
|
+ tmp = NULL;
|
|
|
+ }
|
|
|
+ it = mp_card_list_all.begin();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CYAServerDlg::release_reader_memory()
|
|
|
+{
|
|
|
+ if(mp_reader_list.size() > 0 ){
|
|
|
+ ReaderMap::iterator it = mp_reader_list.begin();
|
|
|
+ for(;it!=mp_reader_list.end();){
|
|
|
+ Reader* tmp = (Reader*)(it->second);
|
|
|
+
|
|
|
+ mp_reader_list.erase(it);
|
|
|
+ if(tmp){
|
|
|
+ delete tmp;
|
|
|
+ tmp = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ it = mp_reader_list.begin();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(mp_reader_path_list_tdoa.size() > 0 ){
|
|
|
+ TDOAReaderPathMap::iterator it = mp_reader_path_list_tdoa.begin();
|
|
|
+ for(;it != mp_reader_path_list_tdoa.end();){
|
|
|
+ ReaderPathMap* tmpMap = (ReaderPathMap*)(it->second);
|
|
|
+
|
|
|
+ for(ReaderPathMap::iterator it_r = tmpMap->begin();it_r != tmpMap->end();){
|
|
|
+ ReaderPath* tmpPath = (ReaderPath* )(it_r->second);
|
|
|
+ tmpMap->erase(it_r);
|
|
|
+
|
|
|
+ if(tmpPath){
|
|
|
+ delete tmpPath;
|
|
|
+ tmpPath = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ it_r = tmpMap->begin();
|
|
|
+ }
|
|
|
+
|
|
|
+ mp_reader_path_list_tdoa.erase(it);
|
|
|
+
|
|
|
+ if(tmpMap){
|
|
|
+ delete tmpMap;
|
|
|
+ tmpMap = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ it = mp_reader_path_list_tdoa.begin();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -6858,6 +7027,7 @@ void CYAServerDlg::deal_card_msg( Card* card, bool is_hist /*= false*/ )
|
|
|
dist->d_offset = 0;
|
|
|
dist->special = card->p_reader->m_nIsSpecial;
|
|
|
dist->st = card->sync_num;
|
|
|
+ dist->acce_state = card->accelerate_state;
|
|
|
|
|
|
unsigned short root_sync_num = 0;
|
|
|
bool bUseAlgo = false;
|
|
@@ -6892,6 +7062,7 @@ void CYAServerDlg::deal_card_msg( Card* card, bool is_hist /*= false*/ )
|
|
|
}
|
|
|
|
|
|
EnterCriticalSection(&m_csAddDist);
|
|
|
+ card->is_deal_by_algo = false;
|
|
|
card->add_dist(dist);
|
|
|
LeaveCriticalSection(&m_csAddDist);
|
|
|
}
|
|
@@ -6919,8 +7090,15 @@ void CYAServerDlg::deal_card_msg( Card* card, bool is_hist /*= false*/ )
|
|
|
strLog.Empty();
|
|
|
|
|
|
strLog = _T("");
|
|
|
- strLog.Format(_T("%d,%f,%f,%f,%f,f: %f,s: %f,ct: %d, ov: %f,cv: %f,av: %f, lsn: %d,cardid: %s"),card->m_unCalcSyncNum,card->origin_locate.x,card->origin_locate.y,card->x, card->y,card->m_dFirstDiff,card->m_dSecondDiff,card->time_stamp_cal,card->origin_locate.v,card->v,card->last_locate.acceleration,card->m_unSyncNumInList,p_card_id);
|
|
|
+ strLog.Format(_T("%d,%f,%f,%f,%f,f: %f,s: %f,ct: %d, ov: %f,cv: %f,av: %f, lsn: %d,cardid: %s"),card->m_nCalcSyncNum,card->origin_locate.x,card->origin_locate.y,card->x, card->y,card->m_dFirstDiff,card->m_dSecondDiff,card->time_stamp_cal,card->origin_locate.v,card->v,card->last_locate.acceleration,card->m_nSyncNumInList,p_card_id);
|
|
|
writeErrorLog(_T("KALMAN_S"),strLog,false);
|
|
|
+ }else{
|
|
|
+ if(card->is_deal_by_algo){
|
|
|
+ strLog = _T("");
|
|
|
+ strLog.Format(_T("%d,%f,%f,%f,%f,f: %f,s: %f,ct: %d, ov: %f,cv: %f,av: %f, lsn: %d,cardid: %s"),card->m_nCalcSyncNum,card->origin_locate.x,card->origin_locate.y,card->x, card->y,card->m_dFirstDiff,card->m_dSecondDiff,card->time_stamp_cal,card->origin_locate.v,card->v,card->last_locate.acceleration,card->m_nSyncNumInList,p_card_id);
|
|
|
+ writeErrorLog(_T("KALMAN_S"),strLog,false);
|
|
|
+ card->is_deal_by_algo = false;
|
|
|
+ }
|
|
|
}
|
|
|
if(p_card_id){
|
|
|
free(p_card_id);
|
|
@@ -6932,12 +7110,15 @@ void CYAServerDlg::deal_card_msg( Card* card, bool is_hist /*= false*/ )
|
|
|
if(LT_READER == theApp.locate_type){
|
|
|
//TRACE(_T("time memcpy 1\n"));
|
|
|
time_t cur_time = time(NULL);
|
|
|
- if(difftime(cur_time, card->deal_time) <30){
|
|
|
+ time_t c_time = CFunctions::systime_to_timet(card->deal_time);
|
|
|
+ //if(difftime(cur_time, card->deal_time) <30){
|
|
|
+ if(difftime(cur_time, c_time) <30){
|
|
|
return ;
|
|
|
}
|
|
|
}
|
|
|
//TRACE(_T("time memcpy 2\n"));
|
|
|
- card->deal_time = time(NULL);
|
|
|
+ //card->deal_time = time(NULL);
|
|
|
+ GetSystemTime(&card->deal_time);
|
|
|
dw = ::GetTickCount();
|
|
|
save_card_postion(card);
|
|
|
card_enter_map(card); // 切换地图
|
|
@@ -7609,4 +7790,11 @@ void CYAServerDlg::parse_json_data_call_card_cancel(message::ptr const& data )
|
|
|
LeaveCriticalSection(&m_csCallInfo);
|
|
|
strlog.Format(_T("%s%s"), _T(LOG_CANCEL_CALL_CARD), _T(LOG_SUCCESS));
|
|
|
show_log(strlog);
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+void CYAServerDlg::OnAbout()
|
|
|
+{
|
|
|
+ // TODO: 在此添加命令处理程序代码
|
|
|
+ CAboutDlg dlg;
|
|
|
+ dlg.DoModal();
|
|
|
+}
|