|
|
@@ -1402,6 +1402,7 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
|
|
|
#if(1)
|
|
|
//链表初始化
|
|
|
+ pthread_mutex_lock(&__globalDeviceManage._sensor_update);
|
|
|
INIT_LIST_HEAD(&_over_all_sensor_back_info.list);
|
|
|
//获取传感器当前的最新值
|
|
|
GlobalSensorManger* _globalSensorManagerTemp = NULL;
|
|
|
@@ -1474,6 +1475,7 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
//入队
|
|
|
list_add_tail(&_overSensorBackInfoTemp->list,&_over_all_sensor_back_info.list);
|
|
|
}
|
|
|
+ pthread_mutex_unlock(&__globalDeviceManage._sensor_update);
|
|
|
//参数转换json
|
|
|
ack_str = over_all_sensor_info_to_json(&_over_all_sensor_back_info,0);
|
|
|
|
|
|
@@ -1493,23 +1495,29 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
log_d("start delete handle.");
|
|
|
int sensor_id_temp = _over_all_sensor_request.sensorId;
|
|
|
|
|
|
- if(dev_delete_sensor_manage(__globalDeviceManage.db, 1,sensor_id_temp)!=0)
|
|
|
+ if(dev_delete_sensor_manage(__globalDeviceManage.db, __globalDeviceManage._global_device_info->product_id,sensor_id_temp)!=0)
|
|
|
{
|
|
|
log_e("sensor delete failed.");
|
|
|
}
|
|
|
- //维护列表也需要删除
|
|
|
- GlobalSensorManger* node;
|
|
|
- GlobalSensorManger* next;
|
|
|
- list_for_each_entry_safe(node, next, &__globalDeviceManage._globalSensorManger.list, list)
|
|
|
+ else
|
|
|
{
|
|
|
- if(node->sensor_id == sensor_id_temp)
|
|
|
+ // 维护列表也需要删除
|
|
|
+ pthread_mutex_lock(&__globalDeviceManage._sensor_update);
|
|
|
+ GlobalSensorManger *node;
|
|
|
+ GlobalSensorManger *next;
|
|
|
+ list_for_each_entry_safe(node, next, &__globalDeviceManage._globalSensorManger.list, list)
|
|
|
{
|
|
|
- list_del(&node->list);
|
|
|
- free(node);
|
|
|
- break;
|
|
|
+ if (node->sensor_id == sensor_id_temp)
|
|
|
+ {
|
|
|
+ list_del(&node->list);
|
|
|
+ free(node);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
+ pthread_mutex_unlock(&__globalDeviceManage._sensor_update);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
char temp[100];
|
|
|
//sprintf(temp,"$删除$|$传感器$|%d",sensor_id_temp);
|
|
|
sprintf(temp,"Delete sensor %d",sensor_id_temp);
|
|
|
@@ -1560,10 +1568,15 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
if (strcmp(_over_all_sensor_request.cgqtd, "RS485") == 0)
|
|
|
{
|
|
|
_globalSensorMangerTemp->sensor_interface_type = 1;
|
|
|
- if (_over_all_sensor_request.comSlogan)
|
|
|
+ if (_over_all_sensor_request.sensorAddr)
|
|
|
{
|
|
|
- strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.comSlogan);
|
|
|
+ _globalSensorMangerTemp->sensor_addr = strtol(_over_all_sensor_request.sensorAddr,NULL,10);
|
|
|
}
|
|
|
+ //前端未传com口信息,暂且不改
|
|
|
+ //if (_over_all_sensor_request.comSlogan)
|
|
|
+ // {
|
|
|
+ // strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.comSlogan);
|
|
|
+ // }
|
|
|
}
|
|
|
else if (strcmp(_over_all_sensor_request.cgqtd, "IN3") == 0)
|
|
|
{
|
|
|
@@ -1648,27 +1661,72 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
//填充数据
|
|
|
_globalSensorMangerTemp->product_id = __globalDeviceManage._global_device_info->product_id ;
|
|
|
_globalSensorMangerTemp->sensor_id = _over_all_sensor_request.sensorId;
|
|
|
-
|
|
|
+ strcpy( _globalSensorMangerTemp->sensor_name,_over_all_sensor_request.sensorName);
|
|
|
+
|
|
|
if(_over_all_sensor_request.sensorType && strlen(_over_all_sensor_request.sensorType)) {
|
|
|
_globalSensorMangerTemp->sensor_type = strtol(_over_all_sensor_request.sensorType,NULL,10);
|
|
|
}
|
|
|
else {
|
|
|
wrong_param = 1;
|
|
|
}
|
|
|
-
|
|
|
- if(_over_all_sensor_request.sensorBaud && strlen(_over_all_sensor_request.sensorBaud)) {
|
|
|
- _globalSensorMangerTemp->sensor_baud = strtol(_over_all_sensor_request.sensorBaud,NULL,10);
|
|
|
+ if (_over_all_sensor_request.cgqtd)
|
|
|
+ {
|
|
|
+ if (strcmp(_over_all_sensor_request.cgqtd, "RS485") == 0)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_interface_type = 1;
|
|
|
+ if (_over_all_sensor_request.sensorAddr)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_addr = strtol(_over_all_sensor_request.sensorAddr, NULL, 10);
|
|
|
+ }
|
|
|
+ // if (_over_all_sensor_request.sensorBaud && strlen(_over_all_sensor_request.sensorBaud))
|
|
|
+ // {
|
|
|
+ _globalSensorMangerTemp->sensor_baud = 9600; // strtol(_over_all_sensor_request.sensorBaud,NULL,10);//默认9600
|
|
|
+ // }
|
|
|
+ // 前端未传com口信息,暂且不改
|
|
|
+ // if (_over_all_sensor_request.comSlogan)
|
|
|
+ // {
|
|
|
+ strcpy(_globalSensorMangerTemp->sensor_port_name, "COM");
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ else if (strcmp(_over_all_sensor_request.cgqtd, "IN3") == 0)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_interface_type = 2;
|
|
|
+ _globalSensorMangerTemp->sensor_addr = 3;
|
|
|
+ strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.cgqtd);
|
|
|
+ _globalSensorMangerTemp->sensor_baud = 0;
|
|
|
+ }
|
|
|
+ else if (strcmp(_over_all_sensor_request.cgqtd, "IN4") == 0)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_interface_type = 2;
|
|
|
+ _globalSensorMangerTemp->sensor_addr = 2;
|
|
|
+ strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.cgqtd);
|
|
|
+ _globalSensorMangerTemp->sensor_baud = 0;
|
|
|
+ }
|
|
|
+ else if (strcmp(_over_all_sensor_request.cgqtd, "IN2") == 0)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_interface_type = 2;
|
|
|
+ _globalSensorMangerTemp->sensor_addr = 1;
|
|
|
+ strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.cgqtd);
|
|
|
+ _globalSensorMangerTemp->sensor_baud = 0;
|
|
|
+ }
|
|
|
+ else if (strcmp(_over_all_sensor_request.cgqtd, "IN1") == 0)
|
|
|
+ {
|
|
|
+ _globalSensorMangerTemp->sensor_interface_type = 2;
|
|
|
+ _globalSensorMangerTemp->sensor_addr = 0;
|
|
|
+ strcpy(_globalSensorMangerTemp->sensor_port_name, _over_all_sensor_request.cgqtd);
|
|
|
+ _globalSensorMangerTemp->sensor_baud = 0;
|
|
|
+ }
|
|
|
}
|
|
|
- else {
|
|
|
+ else
|
|
|
+ {
|
|
|
wrong_param = 1;
|
|
|
}
|
|
|
-
|
|
|
- if(_over_all_sensor_request.sensorAddr && strlen(_over_all_sensor_request.sensorAddr)) {
|
|
|
- _globalSensorMangerTemp->sensor_addr = strtol(_over_all_sensor_request.sensorAddr,NULL,10);
|
|
|
- }
|
|
|
- else {
|
|
|
+ _globalSensorMangerTemp->over_manager = (GlobalSensorOverManage*)malloc(sizeof(GlobalSensorOverManage));
|
|
|
+ if (! _globalSensorMangerTemp->over_manager)
|
|
|
+ {
|
|
|
wrong_param = 1;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
if(wrong_param) {
|
|
|
cJSON_Delete(cjson);
|
|
|
@@ -1676,9 +1734,7 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
return ;
|
|
|
}
|
|
|
|
|
|
- strcpy( _globalSensorMangerTemp->sensor_name,_over_all_sensor_request.sensorName);
|
|
|
- strcpy(_globalSensorMangerTemp->sensor_port_name,_over_all_sensor_request.comSlogan);
|
|
|
-
|
|
|
+ memset(_globalSensorMangerTemp->over_manager, 0, sizeof(GlobalSensorOverManage));
|
|
|
_globalSensorMangerTemp->sensor_status = 0;
|
|
|
switch( _globalSensorMangerTemp->sensor_type)
|
|
|
{
|
|
|
@@ -1696,7 +1752,9 @@ static void sensorStatusMonitoring(void* conn)
|
|
|
log_e("dev insert error.");
|
|
|
}
|
|
|
//全局接口体中也需要添加相关参数
|
|
|
+ pthread_mutex_lock(&__globalDeviceManage._sensor_update);
|
|
|
list_add_tail(&_globalSensorMangerTemp->list,&__globalDeviceManage._globalSensorManger.list);
|
|
|
+ pthread_mutex_unlock(&__globalDeviceManage._sensor_update);
|
|
|
|
|
|
char temp[100];
|
|
|
// sprintf(temp,"$新增$|$传感器$|%d",_over_all_sensor_request.sensorId);
|
|
|
@@ -1899,10 +1957,10 @@ static void alarmProtect(void *conn)
|
|
|
int i = 0 ;
|
|
|
//初始化表
|
|
|
INIT_LIST_HEAD(&_alarm_ack_info.list);
|
|
|
- //查询数据库
|
|
|
+ //查询数据库,最近的10个报警信息
|
|
|
ret = dev_serarch_all_alarm(__globalDeviceManage.db,
|
|
|
__globalDeviceManage._global_device_info->product_id,
|
|
|
- -1,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
|
|
|
+ 0,1,10,
|
|
|
&_alarm_ack_info,&nAlarmNumber);
|
|
|
if(ret!=0)
|
|
|
log_e("get power alarm error.");
|
|
|
@@ -2366,14 +2424,26 @@ static void logInformation(void *conn)
|
|
|
}
|
|
|
else if(strcmp(__logInformationRequestInfo.type,"listYxrzQuery")==0) //运行日志
|
|
|
{
|
|
|
+ struct tm* t ;
|
|
|
+ struct timeval tv;
|
|
|
+ char start_time[32] = {0};
|
|
|
+ char stop_time[32] = {0};
|
|
|
+
|
|
|
+ gettimeofday(&tv, NULL);
|
|
|
+ t = localtime(&tv.tv_sec);
|
|
|
+ sprintf(stop_time,"%04d-%02d-%02d %02d:%02d:%02d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,23,59,59);
|
|
|
+ log_d(stop_time);
|
|
|
+
|
|
|
+ sprintf(start_time,"%04d-%02d-%02d %02d:%02d:%02d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,0,0,0);
|
|
|
+ log_d(start_time);
|
|
|
//初始化表
|
|
|
INIT_LIST_HEAD(&_alarm_ack_info.list);
|
|
|
|
|
|
dev_search_alarm_info(__globalDeviceManage.db,
|
|
|
__globalDeviceManage._global_device_info->product_id,
|
|
|
4,// alarm_type, 运行日志
|
|
|
- __logInformationRequestInfo.beginTime,
|
|
|
- __logInformationRequestInfo.endtime,
|
|
|
+ start_time,
|
|
|
+ stop_time,
|
|
|
__logInformationRequestInfo.pagenum-1,
|
|
|
__logInformationRequestInfo.pagesize,
|
|
|
&_alarm_ack_info,&nAlarmNum);
|