From c49e57ac20e93bbfac24d78221f2188e8ba047e0 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 19 十二月 2016 09:33:01 +0800 Subject: [PATCH] ProxyConsole add json config --- ProxyConsole/proxyconsole-hc.cpp | 97 ++++++++++++++++++++++++++++-------------------- 1 files changed, 56 insertions(+), 41 deletions(-) diff --git a/ProxyConsole/proxyconsole-hc.cpp b/ProxyConsole/proxyconsole-hc.cpp index c798765..a0bfacd 100644 --- a/ProxyConsole/proxyconsole-hc.cpp +++ b/ProxyConsole/proxyconsole-hc.cpp @@ -25,8 +25,11 @@ #include <vector> #include <stdint.h> #include <iostream> +#include <fstream> #include <unistd.h> + +#include <jsoncpp/json/json.h> #include "MD5Linux.h" @@ -683,11 +686,11 @@ } else if(length>0) { - if (strstr(buff, "ViqEventNotificationAlert") == NULL) // <urn + if (strstr(buff, "ViqEventNotificationAlert") == NULL) // <urn continue; if (strstr(buff, "startTime") == NULL) // <urn continue; - std::cout << buff<<std::endl; + //std::cout << buff<<std::endl; if(gCapturing[eidx]==1) { int k; @@ -757,49 +760,61 @@ int Read_MysqlData() { - static sockinfo equipments_config[1] = { - //{ - // .m_id = 1, - // .ip = "192.168.1.5", // equipmentip (analizer) - // .port = "80", // equipmentport - // .user = "supervisor", // equipment username - // .pass = "supervisor", // equipment password - // .serverIP = "192.168.1.2", // serverip (accept alarm) - // .serverport = "5015", // serverport - // .reboot = 0 - //}, - - //{ .m_id = 1, .ip = "192.168.1.5", .port = "80", .user = "supervisor", .pass = "supervisor", .serverIP = "192.168.1.2", .serverport = "5015", .reboot = 0 }, - }; + if (NUM > 0) + return 1; - { - equipments_config[0].m_id = 1; - equipments_config[0].m_type = ET_HCNET_DECODER_ALARMOUT; - strcpy(equipments_config[0].ip, "192.168.1.5"); - strcpy(equipments_config[0].port, "80"); - strcpy(equipments_config[0].user, "supervisor"); - strcpy(equipments_config[0].pass, "supervisor"); - strcpy(equipments_config[0].serverIP, "192.168.1.101"); - strcpy(equipments_config[0].serverport, "8000"); - //strcpy(equipments_config[0].serverIP, "192.168.1.10"); - //strcpy(equipments_config[0].serverport, "5015"); - equipments_config[0].reboot = 0; - HCNetCameraConfig* camConfig = new HCNetCameraConfig; // #todo delete when exit - equipments_config[0].user_config = camConfig; + std::vector<sockinfo> equipments_config; + + std::ifstream ifs; + ifs.open("config.json"); - camConfig->ip = "192.168.1.63"; - camConfig->port = 8000; - camConfig->username = "admin"; - camConfig->passwd = "admin12345"; - camConfig->channel = 1; - camConfig->byWallNo = 1; - camConfig->dwSubWinNo = 1; - camConfig->dwWinNo = 0; - camConfig->lAlarmOutPort = 0x0001; + Json::Reader reader; + Json::Value root; + if (!reader.parse(ifs, root, false)) + { + std::cout << "open config.json error" << std::endl; + exit(EXIT_FAILURE); } - memcpy(equipments, equipments_config, sizeof(equipments_config)); - NUM = sizeof(equipments_config) / sizeof(sockinfo); + Json::Value jsonEquipments = root["equipments"]; + for (int i = 0; i < jsonEquipments.size() && i < sizeof(equipments) / sizeof(sockinfo); i++) + { + Json::Value jsonEquip = jsonEquipments[i]; + + sockinfo equip; + equip.m_id = jsonEquip["id"].asInt();; + equip.m_type = (EquipmentType)jsonEquip["type"].asInt();; + strcpy(equip.ip, jsonEquip["ip"].asString().c_str()); + strcpy(equip.port, jsonEquip["port"].asString().c_str()); + strcpy(equip.serverIP, jsonEquip["serverIP"].asString().c_str()); + strcpy(equip.serverport, jsonEquip["serverport"].asString().c_str()); + strcpy(equip.user, jsonEquip["user"].asString().c_str()); + strcpy(equip.pass, jsonEquip["pass"].asString().c_str()); + equip.reboot = jsonEquip["reboot"].asInt(); + equip.user_config = NULL; + + if (equip.m_type > ET_HCNET_DECODER__FIRST || equip.m_type < ET_HCNET_DECODER__LAST) + { + Json::Value jsonUserConfig = jsonEquip["user_config"]; + + HCNetCameraConfig* camConfig = new HCNetCameraConfig; // #todo delete when exit + equip.user_config = camConfig; + + camConfig->ip = jsonUserConfig["ip"].asString(); + camConfig->port = jsonUserConfig["port"].asInt(); + camConfig->username = jsonUserConfig["username"].asString(); + camConfig->passwd = jsonUserConfig["passwd"].asString(); + camConfig->channel = jsonUserConfig["channel"].asInt(); + camConfig->byWallNo = jsonUserConfig["byWallNo"].asInt(); + camConfig->dwSubWinNo = jsonUserConfig["dwSubWinNo"].asInt(); + camConfig->dwWinNo = jsonUserConfig["dwWinNo"].asInt(); + camConfig->lAlarmOutPort = jsonUserConfig["lAlarmOutPort"].asInt(); + } + + memcpy(&(equipments[NUM]), &equip, sizeof(equip)); + NUM++; + + } return 1; } -- Gitblit v1.8.0