|
@@ -249,11 +249,7 @@ DWORD WINAPI _exec_sql(LPVOID lparam)
|
|
|
|
|
|
if(sql){
|
|
|
LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_88);
|
|
|
-<<<<<<< HEAD
|
|
|
delete[] sql;
|
|
|
-=======
|
|
|
- delete[] lparam;
|
|
|
->>>>>>> 37ae62500d030f49557c27c4679cd22e3c38d38a
|
|
|
sql = NULL;
|
|
|
}
|
|
|
|
|
@@ -1782,11 +1778,11 @@ int CYAServerDlg::init_traffic_lights(int light_id)
|
|
|
char sql[LENGTH_SQL] = {0};
|
|
|
if (light_id == 0)
|
|
|
{
|
|
|
- sprintf_s(sql, "select light_id,ip,x,y,z,name,label,map_id,area_id,section_id,reader_id,group_id,port from dat_traffic_lights where state = 0;");
|
|
|
+ sprintf_s(sql, "select light_id,ip,x,y,z,name,label,map_id,area_id,section_id,ctrl_reader_id,group_id,port from dat_light where state = 0;");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- sprintf_s(sql, "select light_id,ip,x,y,z,name,label,map_id,area_id,section_id,reader_id,group_id,port from dat_traffic_lights where state = 0 and light_id = %d;",light_id);
|
|
|
+ sprintf_s(sql, "select light_id,ip,x,y,z,name,label,map_id,area_id,section_id,ctrl_reader_id,group_id,port from dat_light where state = 0 and light_id = %d;",light_id);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2049,6 +2045,48 @@ int CYAServerDlg::init_light_group(int group_id /*= 0*/)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int CYAServerDlg::init_light_state(CONNID dwConnID,TCHAR lpszAddress[])
|
|
|
+{
|
|
|
+ std::string ip = CFunctions::TChar2string(lpszAddress);
|
|
|
+ if (ip == "")
|
|
|
+ {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ bool is_exist = false;
|
|
|
+
|
|
|
+ ReaderMap::iterator it_reader = mp_ctrl_reader_list.begin();
|
|
|
+ for (it_reader;it_reader!=mp_ctrl_reader_list.end();++it_reader)
|
|
|
+ {
|
|
|
+ if(it_reader->second->ip == ip){
|
|
|
+ is_exist = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!is_exist)
|
|
|
+ {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!it_reader->second->init_ctrl_reader_state)
|
|
|
+ {
|
|
|
+ for (it_reader;it_reader!=mp_ctrl_reader_list.end();++it_reader)
|
|
|
+ {
|
|
|
+ LightMap::iterator it_light = mp_light_list.begin();
|
|
|
+ for (it_light;it_light!=mp_light_list.end();++it_light)
|
|
|
+ {
|
|
|
+ if(it_light->second->m_nReaderID == it_reader->second->reader_id){
|
|
|
+ send_call_light(CC_REQ_LIGTHS_STATE,it_light->second->m_nID,1,1);
|
|
|
+ it_reader->second->init_ctrl_reader_state = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
void CYAServerDlg::ws_init()
|
|
|
{
|
|
|
is_websocket_ok = false;
|
|
@@ -2355,7 +2393,6 @@ void CYAServerDlg::parse_package_data(BYTE* DataBuffer, int nLen, DWORD dwConnID
|
|
|
void CYAServerDlg::parse_data_locate_reader(BYTE * DataBuffer, int& nCurPos, int nLen, DWORD dwConnID, int& reader_id )
|
|
|
{
|
|
|
LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_15);
|
|
|
- //TRACE(_T("parse_data_locate_reader \r\n"));
|
|
|
// 分站号
|
|
|
DWORD dwReaderID;
|
|
|
CFunctions::getDWord(DataBuffer, &dwReaderID, nCurPos);
|
|
@@ -2371,9 +2408,6 @@ void CYAServerDlg::parse_data_locate_reader(BYTE * DataBuffer, int& nCurPos, int
|
|
|
add_socket_to_list(dwConnID, reader_id, DEVICE_TYPE::DT_CARD_READER);
|
|
|
LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_16);
|
|
|
}else{
|
|
|
- //return;
|
|
|
- //isErrorReader = true;
|
|
|
- //TRACE(_T("new Reader,reader_id = %d . \r\n"),dwReaderID);
|
|
|
pReader = std::make_shared<Reader>();
|
|
|
pReader->reader_id = dwReaderID;
|
|
|
LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_17);
|
|
@@ -2450,7 +2484,7 @@ void CYAServerDlg::parse_data_ctrl_reader( BYTE * DataBuffer, int& nCurPos, int
|
|
|
std::shared_ptr<Reader> pReader = nullptr;
|
|
|
bool isErrorReader = false;
|
|
|
|
|
|
- if(itReader != mp_reader_list.end()){
|
|
|
+ if(itReader != mp_ctrl_reader_list.end()){
|
|
|
pReader = itReader->second;
|
|
|
add_socket_to_list(dwConnID, reader_id, DEVICE_TYPE::DT_CTRL_READER);
|
|
|
}else{
|
|
@@ -2863,6 +2897,8 @@ std::string CYAServerDlg::get_json_device_state()
|
|
|
Json::Value state_map;
|
|
|
Json::Value state_devs;
|
|
|
int n = 0;
|
|
|
+
|
|
|
+ //定位分站列表
|
|
|
ReaderMap::iterator it = mp_reader_list.begin();
|
|
|
for(; it != mp_reader_list.end(); ++it){
|
|
|
if(it->second->map_id != it_map->second->map_id) continue;
|
|
@@ -2880,6 +2916,29 @@ std::string CYAServerDlg::get_json_device_state()
|
|
|
it->second->state_old = it->second->state;
|
|
|
//}
|
|
|
}
|
|
|
+
|
|
|
+ //通信分站列表
|
|
|
+ ReaderMap::iterator it_ctrl_reader = mp_ctrl_reader_list.begin();
|
|
|
+ for (it_ctrl_reader;it_ctrl_reader!=mp_ctrl_reader_list.end();++it_ctrl_reader)
|
|
|
+ {
|
|
|
+ if (it_ctrl_reader->second->map_id != it_map->second->map_id)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ Json::Value state_dev;
|
|
|
+ state_dev[JSON_KEY_DEV_STATE_DEVICE_ID] = it_ctrl_reader->second->reader_id;
|
|
|
+ state_dev[JSON_KEY_DEV_STATE_STATE_DESC] = it_ctrl_reader->second->get_state_text();
|
|
|
+ state_dev[JSON_KEY_DEV_STATE_STATE] = it_ctrl_reader->second->state;
|
|
|
+ state_dev[JSON_KEY_DEV_STATE_DEVICE_TYPE_ID] = it_ctrl_reader->second->device_type_id;
|
|
|
+ localtime_s(&local_time, &it_ctrl_reader->second->rec_time);
|
|
|
+ strftime(_time, STR_LEN_TIME, "%Y-%m-%d %H:%M:%S", &local_time);
|
|
|
+ state_dev[JSON_KEY_DEV_STATE_TIME] = _time;
|
|
|
+ n++;
|
|
|
+ state_devs.append(state_dev);
|
|
|
+ it_ctrl_reader->second->state_old = it_ctrl_reader->second->state;
|
|
|
+ }
|
|
|
+
|
|
|
if(n >0){
|
|
|
state_map[JSON_KEY_DEV_STATE_MAP_ID] = it_map->second->map_id;
|
|
|
state_map[JSON_KEY_DEV_STATE_DEVICES] = state_devs;
|
|
@@ -2892,50 +2951,7 @@ std::string CYAServerDlg::get_json_device_state()
|
|
|
root[JSON_ROOT_KEY_DATA] = state_maps;
|
|
|
return root.toFastString();
|
|
|
}
|
|
|
- return "";
|
|
|
- //char _time[STR_LEN_TIME];
|
|
|
- //struct tm local_time;
|
|
|
- //Json::Value root;
|
|
|
- //Json::Value data;
|
|
|
- //
|
|
|
- //int n = 0;
|
|
|
- //ReaderMap::iterator it_reader = mp_reader_list.begin();
|
|
|
- //for(; it_reader != mp_reader_list.end(); ++it_reader){
|
|
|
- // //if(it->second->state != it->second->state_old){
|
|
|
- // Json::Value state_dev;
|
|
|
- // state_dev.append(it_reader->second->reader_id);
|
|
|
- // state_dev.append(it_reader->second->device_type_id);
|
|
|
- // state_dev.append(it_reader->second->state);
|
|
|
- // state_dev.append((double)*((int64_t*)&it_reader->second->rec_time) * 1000);
|
|
|
- // state_dev.append(it_reader->second->map_id);
|
|
|
- // n++;
|
|
|
- // data.append(state_dev);
|
|
|
- // it_reader->second->state_old = it_reader->second->state;
|
|
|
- // //}
|
|
|
- //}
|
|
|
-
|
|
|
- //LightMap::iterator it_light = mp_light_list.begin();
|
|
|
- //for(; it_light != mp_light_list.end(); ++it_light){
|
|
|
- // //if(it->second->state != it->second->state_old){
|
|
|
- // Json::Value state_dev;
|
|
|
- // state_dev.append(it_light->second->m_nID);
|
|
|
- // state_dev.append(DEVICE_TYPE::DT_LIGHT);
|
|
|
- // state_dev.append(it_light->second->m_nColor);
|
|
|
- // state_dev.append((double)*((int64_t*)&it_light->second->rec_time) * 1000);
|
|
|
- // state_dev.append(it_light->second->m_nMapID);
|
|
|
- // state_dev.append(it_light->second->m_nIsCtrl);
|
|
|
- // n++;
|
|
|
- // data.append(state_dev);
|
|
|
- // it_reader->second->state_old = it_reader->second->state;
|
|
|
- // //}
|
|
|
- //}
|
|
|
|
|
|
- //if(n>0){
|
|
|
- // root[JSON_ROOT_KEY_CMD] = JSON_CMD_VALUE_DEV_STATE;
|
|
|
- // root[JSON_ROOT_KEY_DATA] = data;
|
|
|
- // LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_46);
|
|
|
- // return root.toFastString();
|
|
|
- //}
|
|
|
LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_47);
|
|
|
return "";
|
|
|
}
|
|
@@ -4309,7 +4325,10 @@ void CYAServerDlg::OnBnExit()
|
|
|
|
|
|
void CYAServerDlg::OnBnSyncTime()
|
|
|
{
|
|
|
- send_sync_reader();
|
|
|
+ //send_sync_reader();
|
|
|
+
|
|
|
+ //send_call_light(CC_SET_LIGHTS_STATE,2,2,2);
|
|
|
+ send_call_light(CC_REQ_LIGTHS_STATE,2,2,2);
|
|
|
}
|
|
|
|
|
|
CYAServerDlg::~CYAServerDlg()
|
|
@@ -4320,7 +4339,6 @@ CYAServerDlg::~CYAServerDlg()
|
|
|
void CYAServerDlg::OnConnected()
|
|
|
{
|
|
|
is_websocket_ok = true;
|
|
|
- //Sleep(50); // need delay
|
|
|
time_ws_connect = ::GetTickCount();
|
|
|
}
|
|
|
|
|
@@ -4945,7 +4963,7 @@ int CYAServerDlg::deal_traffic_lights(std::shared_ptr<Card> card)
|
|
|
{
|
|
|
it_ll->second->m_nColor = COLOR_GREEN;
|
|
|
if(LIGHT_CTRL_STATE::CTRL_STATE_AUTO == it_ll->second->m_nIsCtrl){
|
|
|
- send_call_light(it_ll->second->m_nID, it_ll->second->m_nIsCtrl, it_ll->second->m_nColor);
|
|
|
+ send_call_light(CC_SET_LIGHTS_STATE,it_ll->second->m_nID, it_ll->second->m_nIsCtrl, it_ll->second->m_nColor);
|
|
|
}
|
|
|
}
|
|
|
card->b_enter_intersection = false;
|
|
@@ -5096,7 +5114,7 @@ int CYAServerDlg::deal_traffic_lights(std::shared_ptr<Card> card)
|
|
|
}
|
|
|
|
|
|
if(LIGHT_CTRL_STATE::CTRL_STATE_AUTO == it_glight->second->m_nIsCtrl){
|
|
|
- send_call_light(it_glight->second->m_nID, it_glight->second->m_nIsCtrl, it_glight->second->m_nColor);
|
|
|
+ send_call_light(CC_SET_LIGHTS_STATE,it_glight->second->m_nID, it_glight->second->m_nIsCtrl, it_glight->second->m_nColor);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -6730,6 +6748,7 @@ void CYAServerDlg::init_base_data()
|
|
|
init_adhoc();
|
|
|
|
|
|
init_chamber();
|
|
|
+ init_ctrl_reader();
|
|
|
init_traffic_lights();
|
|
|
init_section();
|
|
|
init_light_group();
|
|
@@ -7444,6 +7463,8 @@ EnHandleResult CYAServerDlg::OnAccept( ITcpServer* pSender, CONNID dwConnID, SOC
|
|
|
|
|
|
pSender->GetRemoteAddress(dwConnID, szAddress, iAddressLen, usPort);
|
|
|
debug_print_syslog(0, "Anchor accept connect: ip:%S", szAddress);
|
|
|
+ TRACE(_T("ip:%S \r\n"),szAddress);
|
|
|
+ init_light_state(dwConnID,szAddress);
|
|
|
//::PostOnAccept(dwConnID, szAddress, usPort, bPass);
|
|
|
return HR_OK;
|
|
|
}
|
|
@@ -7466,7 +7487,6 @@ EnHandleResult CYAServerDlg::OnReceive( ITcpServer* pSender, CONNID dwConnID, co
|
|
|
memset(data->buf, 0, LENGTH_MSG_4K);
|
|
|
memcpy(data->buf, pData, iLength);
|
|
|
//WT_EXECUTELONGFUNCTION 线程间跳转 WT_EXECUTEDEFAULT 执行完一个再执行另一个
|
|
|
- //QueueUserWorkItem(_parse_data_server, (LPVOID)data, WT_EXECUTEDEFAULT);
|
|
|
this->parse_data_server(data->buf, data->len, data->dwConnID);
|
|
|
BufferUtility::getInstance()->releaseItem(data);
|
|
|
}
|
|
@@ -9491,23 +9511,32 @@ std::string CYAServerDlg::get_json_event()
|
|
|
|
|
|
void CYAServerDlg::parse_data_lights_state( BYTE* DataBuffer, int& nCurPos, int reader_id, unsigned short wChr )
|
|
|
{
|
|
|
+ TRACE(_T("get state \r\n"));
|
|
|
time_t cur_time = time(NULL);
|
|
|
WORD wlen = 0; // 段长度 2 byte
|
|
|
- CFunctions::getWord(DataBuffer, &wlen, nCurPos);
|
|
|
- nCurPos += sizeof(WORD);
|
|
|
+ //CFunctions::getWord(DataBuffer, &wlen, nCurPos);
|
|
|
+ //nCurPos += sizeof(WORD);
|
|
|
+ wlen = 8; //只针对认证,此处写死为8个
|
|
|
+
|
|
|
|
|
|
BYTE btCmd = 0; // 控制码 1 byte 0x01 响应红绿灯设置状态 0x02 响应请求红绿灯状态
|
|
|
memcpy(&btCmd, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
nCurPos += sizeof(BYTE);
|
|
|
|
|
|
- BYTE btResult = 0; // 返回结果
|
|
|
- memcpy(&btResult, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
- nCurPos += sizeof(BYTE);
|
|
|
+ //BYTE btResult = 0; // 返回结果
|
|
|
+ //memcpy(&btResult, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
+ //nCurPos += sizeof(BYTE);
|
|
|
|
|
|
- // 段数据
|
|
|
- BYTE btDevType = 0; // 设备类型 1 byte 0x01灯,0x02 报警器,0x03 显示屏
|
|
|
+ //// 段数据
|
|
|
+ //BYTE btDevType = 0; // 设备类型 1 byte 0x01灯,0x02 报警器,0x03 显示屏
|
|
|
+ //memcpy(&btDevType, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
+ //nCurPos += sizeof(BYTE);
|
|
|
+
|
|
|
+ // 设备类型
|
|
|
+ BYTE btDevType = 0; // 设备类型 1 byte :0x00:读卡分站;0x01:控制分站;0x03:红绿灯;0x04:告警器;0x05:道岔;0x06:显示屏
|
|
|
memcpy(&btDevType, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
|
nCurPos += sizeof(BYTE);
|
|
|
+
|
|
|
if(btDevType == DEVICE_TYPE::DT_LIGHT){
|
|
|
BYTE btId = 0; // 设备编号 1 byte
|
|
|
memcpy(&btId, &DataBuffer[nCurPos], sizeof(BYTE));
|
|
@@ -9570,11 +9599,11 @@ void CYAServerDlg::send_call_light()
|
|
|
{
|
|
|
LightCallMap::iterator it_light_call = mp_light_call_list->begin();
|
|
|
for(; it_light_call != mp_light_call_list->end(); ++ it_light_call){
|
|
|
- send_call_light(it_light_call->second->light_id, it_light_call->second->ctrl_type, it_light_call->second->ctrl_color);
|
|
|
+ send_call_light(CC_SET_LIGHTS_STATE,it_light_call->second->light_id, it_light_call->second->ctrl_type, it_light_call->second->ctrl_color);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void CYAServerDlg::send_call_light( int light_id, int ctrl_type, int ctrl_color )
|
|
|
+void CYAServerDlg::send_call_light(BYTE ctrl_cmd, int light_id, int ctrl_type, int ctrl_color )
|
|
|
{
|
|
|
BYTE buf[LENGTH_SEND_BUF];
|
|
|
|
|
@@ -9582,28 +9611,94 @@ void CYAServerDlg::send_call_light( int light_id, int ctrl_type, int ctrl_color
|
|
|
LightMap::iterator it_light;
|
|
|
|
|
|
int npos = 0;
|
|
|
- BYTE btCmd = 0x01, btDevType = DEVICE_TYPE::DT_LIGHT, btShape = 0x01;
|
|
|
- it_light = mp_light_list.find(light_id);
|
|
|
- if(it_light != mp_light_list.end()){
|
|
|
- it_sock = mp_socket_list.find(CFunctions::c2wc(it_light->second->m_strIP.c_str()));
|
|
|
- if(it_sock != mp_socket_list.end()){
|
|
|
- memset(buf, 0, LENGTH_SEND_BUF);
|
|
|
- npos = 0;
|
|
|
- memcpy(&buf[npos], &btCmd, sizeof(BYTE)); // 控制码
|
|
|
- npos += sizeof(BYTE);
|
|
|
- memcpy(&buf[npos], &btDevType, sizeof(BYTE)); // 设备类型
|
|
|
- npos += sizeof(BYTE);
|
|
|
- memcpy(&buf[npos], &it_light->second->m_nPort, sizeof(BYTE)); // 设备ID
|
|
|
- npos += sizeof(BYTE);
|
|
|
- memcpy(&buf[npos], &ctrl_type, sizeof(BYTE)); // 控制状态
|
|
|
- npos += sizeof(BYTE);
|
|
|
- memcpy(&buf[npos], &ctrl_color, sizeof(BYTE)); // 颜色
|
|
|
- npos += sizeof(BYTE);
|
|
|
- memcpy(&buf[npos], &btShape, sizeof(BYTE)); // 图案
|
|
|
- npos += sizeof(BYTE);
|
|
|
-
|
|
|
- SendData(it_sock->second->dwConnID,CHAR_CTRL_READER_CMD, npos, buf);
|
|
|
+ BYTE btCmd = ctrl_cmd, btDevType = DEVICE_TYPE::DT_LIGHT, btShape = 0x01;
|
|
|
+ WORD wCrc;
|
|
|
+ switch (ctrl_cmd)
|
|
|
+ {
|
|
|
+ case 0x01:
|
|
|
+ it_light = mp_light_list.find(light_id);
|
|
|
+ if(it_light != mp_light_list.end()){
|
|
|
+ it_sock = mp_socket_list.find(CFunctions::c2wc(it_light->second->m_strIP.c_str()));
|
|
|
+ if(it_sock != mp_socket_list.end()){
|
|
|
+ memset(buf, 0, LENGTH_SEND_BUF);
|
|
|
+ npos = 0;
|
|
|
+ memcpy(&buf[npos], &btCmd, sizeof(BYTE)); // 控制码
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &btDevType, sizeof(BYTE)); // 设备类型
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &it_light->second->m_nPort, sizeof(BYTE)); // 设备ID
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &ctrl_type, sizeof(BYTE)); // 控制状态
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &ctrl_color, sizeof(BYTE)); // 颜色
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &btShape, sizeof(BYTE)); // 图案
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+
|
|
|
+ //CRC校验
|
|
|
+ wCrc = CFunctions::getCRC(&buf[0], npos); // 数据长度 + 特征字
|
|
|
+ CFunctions::memcpyWord(&buf[0], wCrc, npos);
|
|
|
+ npos += sizeof(WORD);
|
|
|
+
|
|
|
+ SendData(it_sock->second->dwConnID,CHAR_CTRL_READER_CMD, npos, buf);
|
|
|
+ }
|
|
|
}
|
|
|
+ break;
|
|
|
+ case 0x02:
|
|
|
+ it_light = mp_light_list.find(light_id);
|
|
|
+ if(it_light != mp_light_list.end()){
|
|
|
+ it_sock = mp_socket_list.find(CFunctions::c2wc(it_light->second->m_strIP.c_str()));
|
|
|
+ if(it_sock != mp_socket_list.end()){
|
|
|
+ memset(buf, 0, LENGTH_SEND_BUF);
|
|
|
+ npos = 0;
|
|
|
+ memcpy(&buf[npos], &btCmd, sizeof(BYTE)); // 控制码
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &btDevType, sizeof(BYTE)); // 设备类型
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ memcpy(&buf[npos], &it_light->second->m_nPort, sizeof(BYTE)); // 设备ID
|
|
|
+ npos += sizeof(BYTE);
|
|
|
+ //CRC校验
|
|
|
+ wCrc = CFunctions::getCRC(&buf[0], npos); // 数据长度 + 特征字
|
|
|
+ CFunctions::memcpyWord(&buf[0], wCrc, npos);
|
|
|
+ npos += sizeof(WORD);
|
|
|
+ SendData(it_sock->second->dwConnID,CHAR_CTRL_READER_CMD, npos, buf);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
- //delete[] buf;
|
|
|
+
|
|
|
+ //BYTE buf[LENGTH_SEND_BUF];
|
|
|
+ //SocketMap::iterator it_sock;
|
|
|
+ //LightMap::iterator it_light;
|
|
|
+ //int npos = 0;
|
|
|
+ //BYTE btCmd = ctrl_cmd, btDevType = DEVICE_TYPE::DT_LIGHT, btShape = 0x01;
|
|
|
+ //it_light = mp_light_list.find(light_id);
|
|
|
+ //if(it_light != mp_light_list.end()){
|
|
|
+ // it_sock = mp_socket_list.find(CFunctions::c2wc(it_light->second->m_strIP.c_str()));
|
|
|
+ // if(it_sock != mp_socket_list.end()){
|
|
|
+ // memset(buf, 0, LENGTH_SEND_BUF);
|
|
|
+ // npos = 0;
|
|
|
+ // memcpy(&buf[npos], &btCmd, sizeof(BYTE)); // 控制码
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+ // memcpy(&buf[npos], &btDevType, sizeof(BYTE)); // 设备类型
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+ // memcpy(&buf[npos], &it_light->second->m_nPort, sizeof(BYTE)); // 设备ID
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+ // memcpy(&buf[npos], &ctrl_type, sizeof(BYTE)); // 控制状态
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+ // memcpy(&buf[npos], &ctrl_color, sizeof(BYTE)); // 颜色
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+ // memcpy(&buf[npos], &btShape, sizeof(BYTE)); // 图案
|
|
|
+ // npos += sizeof(BYTE);
|
|
|
+
|
|
|
+ // //CRC校验
|
|
|
+ // WORD wCrc = CFunctions::getCRC(&buf[0], npos); // 数据长度 + 特征字
|
|
|
+ // CFunctions::memcpyWord(&buf[0], wCrc, npos);
|
|
|
+ // npos += sizeof(WORD);
|
|
|
+
|
|
|
+ // SendData(it_sock->second->dwConnID,CHAR_CTRL_READER_CMD, npos, buf);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
}
|