|
@@ -44,6 +44,7 @@ namespace gsd
|
|
|
SendDevice sendDevice;
|
|
|
time_t timestamp;
|
|
|
NettyClientResultMsg<SendDevice> nettyClientResultMsg;
|
|
|
+ if(deviceControl->getDeviceId() == "0") deviceControl->setDeviceId("1");
|
|
|
deviceControl->BuildDeviceInfo(sendDevice);
|
|
|
time(×tamp);
|
|
|
sendDevice.msgTime = ctime(×tamp);
|
|
@@ -53,6 +54,7 @@ namespace gsd
|
|
|
nettyClientResultMsg.setDataType(NettyClientCommandEnum().device_info);
|
|
|
nettyClientResultMsg.setData(sendDevice);
|
|
|
nettyClientResultMsg.objectToJson(json);
|
|
|
+ if(config::getPtr()->debug) DebugL << json << endl;
|
|
|
NoticeCenter::Instance().emitEvent(NOTICE_DEVICEINFO, requestId ,json);
|
|
|
}
|
|
|
}
|
|
@@ -147,6 +149,13 @@ namespace gsd
|
|
|
case 4:
|
|
|
this->Fire(expelDevice);
|
|
|
break;
|
|
|
+
|
|
|
+ case 18:
|
|
|
+ this->Open(expelDevice);
|
|
|
+ break;
|
|
|
+ case 19:
|
|
|
+ this->Close(expelDevice);
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -201,8 +210,12 @@ namespace gsd
|
|
|
deviceControl = std::make_shared<DevicePlayerV4>();
|
|
|
std::dynamic_pointer_cast<DevicePlayerV4>(deviceControl)->setServerIP(config::getPtr()->payServerIP);
|
|
|
break;
|
|
|
- }
|
|
|
|
|
|
+ case DeviceType::DeviceGasV2:
|
|
|
+ deviceControl = std::make_shared<gsd::DeviceGasV2>();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ deviceControl->setTypeId(expelDevice.deviceType);
|
|
|
return deviceControl;
|
|
|
}
|
|
|
|
|
@@ -324,7 +337,6 @@ namespace gsd
|
|
|
std::lock_guard<mutex> gurad(m_mutex);
|
|
|
deviceControl->setDeviceId(expelDevice.DeviceId);
|
|
|
if(deviceControl->getDeviceTool() == ContorlGear::DeviceTools::serial){
|
|
|
- DebugL;
|
|
|
CSerialPort ser;
|
|
|
config::Ptr m_config = config::getPtr();
|
|
|
if(m_config->debug) DebugL << "Serial control data:" << bytesToHexString(data, length) << endl;
|
|
@@ -342,11 +354,11 @@ namespace gsd
|
|
|
ser.close();
|
|
|
return 0;
|
|
|
}else if(deviceControl->getDeviceTool() == ContorlGear::DeviceTools::http){
|
|
|
- DebugL;
|
|
|
std::string serviceIP = "";
|
|
|
- if(config::getPtr()->getApp() == "gsd_SZX"){
|
|
|
+ if(deviceControl->getTypeId() == DeviceType::DeviceGasV2 || deviceControl->getTypeId() == DeviceType::DevicePlayerV3){
|
|
|
serviceIP = config::getPtr()->payServerIP;
|
|
|
- }else{
|
|
|
+ }
|
|
|
+ else{
|
|
|
serviceIP = expelDevice.ServerIp;
|
|
|
}
|
|
|
if(serviceIP == ""){
|
|
@@ -355,29 +367,50 @@ namespace gsd
|
|
|
}
|
|
|
httplib::Client cli(serviceIP, config::getPtr()->ExpelPort);
|
|
|
std::string json;
|
|
|
- json = (char*)data;
|
|
|
- DebugL << "Http control data:" << json << endl;
|
|
|
- PlayerInquire playerInquire;
|
|
|
- if (auto res = cli.Post(playerInquire.getUrl().c_str(), json, "application/json")) {
|
|
|
- if (res->status == 200) {
|
|
|
- // DebugL << res->body << endl;
|
|
|
- return 0;
|
|
|
- }else {
|
|
|
- WarnL << res->body << endl;
|
|
|
+ if(json != ""){
|
|
|
+ json = (char*)data;
|
|
|
+ DebugL << "Http control data:" << json << endl;
|
|
|
+ }
|
|
|
+ if(deviceControl->getTypeId() == DeviceType::DevicePlayerV3){
|
|
|
+ if (auto res = cli.Post(std::dynamic_pointer_cast<DevicePlayerV3>(deviceControl)->getUrl().c_str(), json, "application/json")) {
|
|
|
+ if (res->status == 200) {
|
|
|
+ // DebugL << res->body << endl;
|
|
|
+ return 0;
|
|
|
+ }else {
|
|
|
+ WarnL << res->body << endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ auto err = res.error();
|
|
|
+ ErrorL << "HTTP Service unavailable:" << err << endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }else if(deviceControl->getTypeId() == DeviceType::DeviceGasV2){
|
|
|
+ auto parms = std::dynamic_pointer_cast<DeviceGasV2>(deviceControl)->getParms();
|
|
|
+ auto headers = std::dynamic_pointer_cast<DeviceGasV2>(deviceControl)->getHeaders();
|
|
|
+ std::string url = std::dynamic_pointer_cast<DeviceGasV2>(deviceControl)->getUrl();
|
|
|
+ if(url == "") return 1;
|
|
|
+ if(auto res = cli.Get(url.c_str(), parms, headers)){
|
|
|
+ if (res->status == 200) {
|
|
|
+ DebugL << res->body << endl;
|
|
|
+ return 0;
|
|
|
+ }else {
|
|
|
+ WarnL << res->body << endl;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ auto err = res.error();
|
|
|
+ ErrorL << "HTTP Service unavailable:" << err << endl;
|
|
|
return -1;
|
|
|
}
|
|
|
- } else {
|
|
|
- auto err = res.error();
|
|
|
- ErrorL << "HTTP Service unavailable:" << err << endl;
|
|
|
- return -1;
|
|
|
}
|
|
|
}else if(deviceControl->getDeviceTool() == ContorlGear::DeviceTools::tcp){
|
|
|
- if(expelDevice.ServerIp == ""){
|
|
|
+ if(config::getPtr()->payServerIP_tcp == ""){
|
|
|
ErrorL << "The device IP address is empty" << endl;
|
|
|
return -1;
|
|
|
}
|
|
|
client->setDeviceControl(deviceControl);
|
|
|
- if(!client->alive()) client->startConnect(expelDevice.ServerIp, config::getPtr()->ExpelPort);
|
|
|
+ if(!client->alive()) client->startConnect(config::getPtr()->payServerIP_tcp, config::getPtr()->payServerPort_tcp);
|
|
|
if(config::getPtr()->debug) DebugL << "Serial control data:" << bytesToHexString(data, length) << endl;
|
|
|
auto buf = BufferRaw::create();
|
|
|
buf->assign((char*)data, length);
|
|
@@ -536,4 +569,41 @@ namespace gsd
|
|
|
return config::getPtr()->DeviceIds.size();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description: getExpelInfo
|
|
|
+ * @return {*}
|
|
|
+ */
|
|
|
+ std::string Expel::getExpelInfo(){
|
|
|
+ std::string info;
|
|
|
+ rapidjson::StringBuffer strBuf;
|
|
|
+ rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);
|
|
|
+ if(!config::getPtr()->LowVersion){
|
|
|
+ writer.StartObject();
|
|
|
+ writer.Key("Num");
|
|
|
+ writer.Int(m_deviceLists.size());
|
|
|
+ writer.Key("datas");
|
|
|
+ writer.StartArray();
|
|
|
+ for(auto iter = m_deviceLists.begin(); iter != m_deviceLists.end(); iter++){
|
|
|
+ writer.StartObject();
|
|
|
+ writer.Key("DeviceId");
|
|
|
+ writer.String(iter->DeviceId.c_str());
|
|
|
+ writer.Key("DeviceType");
|
|
|
+ writer.Int(iter->deviceType);
|
|
|
+ writer.Key("DeviceTools");
|
|
|
+ writer.Int(iter->tool);
|
|
|
+ writer.EndObject();
|
|
|
+ }
|
|
|
+ writer.EndArray();
|
|
|
+ writer.EndObject();
|
|
|
+ info = strBuf.GetString();
|
|
|
+ }else{
|
|
|
+ writer.StartObject();
|
|
|
+ writer.Key("Num");
|
|
|
+ writer.Int(config::getPtr()->DeviceIds.size());
|
|
|
+
|
|
|
+ }
|
|
|
+ return info;
|
|
|
+ }
|
|
|
+
|
|
|
} // namespace gsd
|