Esempio n. 1
0
        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount != 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            var socket=devConn.getSocketByDevId(devId);
            if (-1 == socket) {
                send_result(res, 90004, "后台与设备连接错误!");
                return;
            }

            var commandId = cmdkey.create();
            var cmdStr= {
                type: "firmware_upgrade",
                commandId: commandId,
                userId: userId,
                deviceId: devId,
                url:result.rows[0].firmwareDir+result.rows[0].fileName,
                md5:result.rows[0].md5
            };
            console.log(JSON.stringify(cmdStr));
            //socket.write(JSON.stringify(cmdStr)+"\r\n");
            send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");

            send_result(res, 0, "Success!", commandId);
        });
Esempio n. 2
0
        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount < 1) {
                send_result(res, 90009, "设备不存在!");
                return;
            }

            if(result.rowCount > 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            if(result.rows[0].online == false) {
                send_result(res, 90003, "设备离线!");
                return;
            }

            /* TODO: datamodel check */
            
            var socket=devConn.getSocketByDevId(result.rows[0].deviceId);
            if (-1 == socket) {
                send_result(res, 90004, "后台与设备连接错误!");
                return;
            }

            var commandId = cmdkey.create();
            var cmdStr= {
                type: "set",
                commandId: commandId,
                userId: userId,
                deviceId: devId,
                devData: {}
            };
            if ("dev_set_dev" == msgType) {
                cmdStr.devData = message.settings;
            } else {
                cmdStr.devData = message.controls;
            }
            console.log(JSON.stringify(cmdStr));
            //socket.write(JSON.stringify(cmdStr)+"\r\n");
            send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");

            send_result(res, 0, "Success!", commandId);
        });
Esempio n. 3
0
                client.query(selectNameStr, function(err, result) {
                    if (err) {
                        console.error(err.stack);
                        send_result(res, 90001, "数据库查询错误!");
                        return;
                    }

                    if(result.rowCount < 1) {
                        send_result(res, 90008, "插件不存在!");
                        return;
                    }

                    var fileName = result.rows[0].fileName;

                    var fileLoc = pluginDir + '/' + result.rows[0].version + '/' + fileName;

                    var fileDownloadStr = {
                        url: fileLoc,
                        pluginId: result.rows[0].pluginId,
                        version: result.rows[0].version 
                    };

                    var fileDeleteStr = {
                        name: fileName,
                        pluginId: result.rows[0].pluginId
                    };

                    fileDownloadList.push(fileDownloadStr);
                    fileDeleteList.push(fileDeleteStr);

                    count--;

                    if (count == 0) {
                        var socket=devConn.getSocketByDevId(devId);
                        if (-1 == socket) {
                            send_result(res, 90004, "后台与设备连接错误!");
                            return;
                        }

                        var commandId = cmdkey.create();

                        if ("remove" == action) {
                            var cmdStr= {
                                type: "plugin_action",
                                commandId: commandId,
                                action: 'delete',
                                deviceId: devId,
                                pluginDeleteList: fileDeleteList
                            };
                        }
                        else {
                            var cmdStr= {
                                type: "plugin_action",
                                commandId: commandId,
                                action: action,
                                deviceId: devId,
                                pluginDownloadList: fileDownloadList,
                            };
                        }

                        console.log(JSON.stringify(cmdStr));
                        //socket.write(JSON.stringify(cmdStr));
                        send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");
                        send_result(res, 0, "Success!", commandId);

                    }

                });
Esempio n. 4
0
function message_handle(req, res){      
    var message = req.body;
    var msgType = message.msgType;
    
    console.log(req.body);

    if ("dev_get" == msgType) {
        var userId = message.userId;
        var deviceType = message.devType;

        if (typeof(userId) == "undefined" || typeof(deviceType) == "undefined") {
            send_result(res, 80001, "参数错误!");
            return;
        }

        var selectStr =  "SELECT "
            + "iot_device.\"deviceId\",iot_device.online,iot_device.\"devData\","
            + "iot_dev_datamodel.\"dataModelId\",iot_dev_datamodel.\"devDataModel\" "
            + "FROM iot_device INNER JOIN iot_dev_datamodel "
            + "ON iot_device.\"deviceDataModelId\"=iot_dev_datamodel.\"dataModelId\" "
            + "WHERE iot_device.\"deviceId\" IN "
            + "(SELECT \"deviceId\" FROM dev_user_mapping WHERE \"userId\"='"
            + userId + "');";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            var deviceData = {
                deviceType : deviceType,
                deviceCount: result.rowCount,
                deviceDataModel : [],
                deviceList : []
            };

            for(var i=0; i<result.rowCount; i++) {
                var dataModelItem = result.rows[i].devDataModel;
                var deviceItem = {
                    deviceId: result.rows[i].deviceId,
                    deviceDataModelId: result.rows[i].dataModelId,
                    online: "1",
                    devData: result.rows[i].devData,
                    userDevData : {
                        "nickname" : "led2",
                        "group" : "地点",
                    }
                };
                dataModelItem["deviceDataModelId"] = result.rows[i].dataModelId;
                deviceData.deviceDataModel.push(dataModelItem);
                deviceData.deviceList.push(deviceItem);
            }
            console.log(JSON.stringify(deviceData));
            res.send(JSON.stringify(deviceData));
        });
    }
    else if ("dev_get_one" == msgType) {
        var userId = message.userId;
        var deviceId = message.devId;

        if (typeof(userId) == "undefined" || typeof(deviceId) == "undefined") {
            send_result(res, 80001, "参数错误!");
            return;
        }

        var selectStr =  "SELECT "
            + "iot_device.\"deviceId\",iot_device.online,iot_device.\"devData\","
            + "iot_dev_datamodel.\"dataModelId\",iot_dev_datamodel.\"devDataModel\" AS \"dataModel\" "
            + "FROM iot_device INNER JOIN iot_dev_datamodel "
            + "ON iot_device.\"deviceDataModelId\"=iot_dev_datamodel.\"dataModelId\" "
            + "WHERE iot_device.\"deviceId\" IN "
            + "(SELECT \"deviceId\" FROM dev_user_mapping WHERE \"userId\"='"
            + userId + "' AND \"deviceId\"='" + deviceId + "');";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount != 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            console.log(JSON.stringify(result.rows[0]));
            res.send(JSON.stringify(result.rows[0]));
        });
    }
    else if ( ("dev_set_dev" == msgType) || ("dev_ctl" == msgType) ) {
        var userId = message.userId;
        var devId = message.devId;

        if (typeof(userId) == "undefined" || typeof(devId) == "undefined") {
            send_result(res, 80001, "参数错误!");
            return;
        }

        var selectStr =  "SELECT "
            + "iot_dev_datamodel.\"devDataModel\",dev_user_mapping.\"deviceId\",iot_device.online,iot_device.\"devData\",iot_device.\"gatewayId\" "
            + "FROM (dev_user_mapping JOIN iot_device ON "
            + "dev_user_mapping.\"deviceId\"=iot_device.\"deviceId\") "
            + "LEFT JOIN iot_dev_datamodel ON "
            + "iot_device.\"deviceDataModelId\"=iot_dev_datamodel.\"dataModelId\" "
            + "WHERE "
            + "dev_user_mapping.\"deviceId\"='" + devId + "' AND "
            + "dev_user_mapping.\"userId\"='" + userId + "';";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount < 1) {
                send_result(res, 90009, "设备不存在!");
                return;
            }

            if(result.rowCount > 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            if(result.rows[0].online == false) {
                send_result(res, 90003, "设备离线!");
                return;
            }

            /* TODO: datamodel check */
            
            var socket=devConn.getSocketByDevId(result.rows[0].deviceId);
            if (-1 == socket) {
                send_result(res, 90004, "后台与设备连接错误!");
                return;
            }

            var commandId = cmdkey.create();
            var cmdStr= {
                type: "set",
                commandId: commandId,
                userId: userId,
                deviceId: devId,
                devData: {}
            };
            if ("dev_set_dev" == msgType) {
                cmdStr.devData = message.settings;
            } else {
                cmdStr.devData = message.controls;
            }
            console.log(JSON.stringify(cmdStr));
            //socket.write(JSON.stringify(cmdStr)+"\r\n");
            send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");

            send_result(res, 0, "Success!", commandId);
        });
    }
    else if ("dev_bind" == msgType) {
        var userId = message.userId;
        var manufacture = message.manufacture;
        var manufactureSN = message.serialNumber;
        var selectStr =  "SELECT iot_device.\"deviceId\" FROM iot_device "
            + "WHERE manufacture='" + manufacture + "' AND \"manufactureSN\"='" + manufactureSN + "';";

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount < 1) {
                /* Device has not connect to server */
                var insertStr = "INSERT INTO iot_device(manufacture,\"manufactureSN\") VALUES('"
                                + manufacture + "','" + manufactureSN + "') RETURNING \"deviceId\";";
                client.query(insertStr, function(err, result) {
                    if (err) {
                        console.error(err.stack);
                        send_result(res, 90006, "设备表插入错误!");
                        return;
                    }

                    if(result.rowCount != 1) {
                        send_result(res, 90006, "设备表插入错误!");
                        return;
                    }
                    
                    var insertStr = "INSERT INTO dev_user_mapping(\"deviceId\",\"userId\") VALUES('"
                                     + result.rows[0].deviceId + "','" + userId + "');";

                    client.query(insertStr, function(err, result) {
                        if (err) {
                            console.error(err.stack);
                            send_result(res, 90007, "设备用户绑定表插入错误!");
                            return;
                        }

                        if(result.rowCount == 1) {
                            send_result(res, 0, "Success!");
                        } else {
                            send_result(res, 90007, "设备用户绑定表插入错误!");
                        }
                    });
                });
            } else {
                var insertStr = "INSERT INTO dev_user_mapping(\"deviceId\",\"userId\") "
                                + "SELECT '" + result.rows[0].deviceId +"','" + userId +"' "
                                + "WHERE NOT EXISTS("
                                + "SELECT \"deviceId\",\"userId\" FROM dev_user_mapping "
                                + "WHERE \"deviceId\"= '" + result.rows[0].deviceId 
                                + "' AND \"userId\"='" + userId + "');"

                client.query(insertStr, function(err, result) {
                    if (err) {
                        console.error(err.stack);
                        send_result(res, 90007, "设备用户绑定表插入错误!");
                        return;
                    }

                    send_result(res, 0, "Success!");
                });
            }
        });
    }
    else if ("get_dev_cmd_ret" == msgType) {
        var commandId = message.commandId;
        cmdkey.getRet(commandId.toString(), function(result){
            if(result) {
                if(result=="Success") {
                    send_result(res, 0, "Success!");
                } else if(result=="Start") {
                    send_result(res, 90011, "Waiting for device's response.");
                } else {
                    var err = result;
                    send_result(res, err.ret, err.errStr);
                }
            } else {
                send_result(res, 70005, "设备响应超时!");
            }
        });
    }
    else if ("firmware_query" == msgType) {
        var userId = message.userId;
        var devId = message.devId;

        var selectStr =  "SELECT "
            + "firmware_table.\"publishVersion\",iot_device.\"deviceId\",iot_dev_datamodel.\"firmwareId\" "
            + "FROM (iot_device JOIN iot_dev_datamodel ON "
            + "iot_device.\"deviceDataModelId\"=iot_dev_datamodel.\"dataModelId\") "
            + "LEFT JOIN firmware_table ON "
            + "firmware_table.\"firmwareId\"=iot_dev_datamodel.\"firmwareId\" "
            + "WHERE iot_device.\"deviceId\"='" + devId + "';";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount != 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            var firmware_query = {
                ret: 0,
                deviceId: result.rows[0].deviceId,
                newestVersion: result.rows[0].publishVersion,
                firmwareId: result.rows[0].firmwareId
            };

            console.log(JSON.stringify(firmware_query));
            res.send(JSON.stringify(firmware_query));
        });
    }
    else if ("firmware_upgrade" == msgType) {
        var userId = message.userId;
        var devId = message.devId;
        var firmwareId = message.firmwareId;
        var version = message.version;

        var selectStr =  "SELECT "
            + "firmware_version.\"firmwareId\",firmware_version.\"version\",firmware_version.\"fileName\",firmware_version.\"md5\",firmware_table.\"firmwareDir\" "
            + "FROM (firmware_version JOIN firmware_table ON "
            + "firmware_version.\"firmwareId\"=firmware_table.\"firmwareId\") "
            + "WHERE "
            + "firmware_version.\"firmwareId\"='" + firmwareId + "' AND "
            + "firmware_version.\"version\"='" + version + "';";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount != 1) {
                send_result(res, 90002, "后台数据库错误!");
                return;
            }

            var socket=devConn.getSocketByDevId(devId);
            if (-1 == socket) {
                send_result(res, 90004, "后台与设备连接错误!");
                return;
            }

            var commandId = cmdkey.create();
            var cmdStr= {
                type: "firmware_upgrade",
                commandId: commandId,
                userId: userId,
                deviceId: devId,
                url:result.rows[0].firmwareDir+result.rows[0].fileName,
                md5:result.rows[0].md5
            };
            console.log(JSON.stringify(cmdStr));
            //socket.write(JSON.stringify(cmdStr)+"\r\n");
            send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");

            send_result(res, 0, "Success!", commandId);
        });
    }
    else if ("plugin_installed" == msgType) {
        var userId = message.userId;
        var devId = message.devId;

        var selectStr =  "SELECT "
            + "gateway_plugin.\"pluginId\",gateway_plugin.version,plugin_table.\"pluginName\" "
            + "FROM gateway_plugin,plugin_table "
            + "WHERE gateway_plugin.\"deviceId\"='" + devId + "' " 
            + "AND gateway_plugin.\"pluginId\"=plugin_table.\"pluginId\"" + ";";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            var pluginInstalled = {
                ret: 0,
                devId: devId,
                count: result.rowCount,
                pluginList : []
            };

            for(var i=0; i<result.rowCount; i++) {
                var pluginItem = {
                    pluginId: result.rows[i].pluginId,
                    currVersion: result.rows[i].version,
                    pluginName: result.rows[i].pluginName
                };
                pluginInstalled.pluginList.push(pluginItem);
            }
            console.log(JSON.stringify(pluginInstalled));
            res.send(JSON.stringify(pluginInstalled));
        });
    }
    else if ("plugin_available" == msgType) {
        var userId = message.userId;
        var devId = message.devId;

        var selectStr =  "SELECT \"pluginId\",\"pluginName\", \"pluginDesc\", \"publishVersion\" "
            + "FROM plugin_table;"

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            var pluginAvailable = {
                ret: 0,
                devId: devId,
                count: result.rowCount,
                pluginList: []
            };

            for(var i=0; i<result.rowCount; i++) {
                var pluginItem = {
                    pluginId: result.rows[i].pluginId,
                    pluginName: result.rows[i].pluginName,
                    pluginDesc: result.rows[i].pluginDesc,
                    publishVersion: result.rows[i].publishVersion
                };
                pluginAvailable.pluginList.push(pluginItem);
            }
            console.log(JSON.stringify(pluginAvailable));
            res.send(JSON.stringify(pluginAvailable));
        });

    }
    else if ("plugin_action" == msgType) {
        var devId = message.devId;
        var action = message.action;
        var pluginIdList = message.pluginList;
        var selectStr = "SELECT * FROM plugin_table WHERE \"pluginId\" IN (" + pluginIdList + ");";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {
            if (err) {
                console.error(err.stack);
                send_result(res, 90001, "数据库查询错误!");
                return;
            }

            if(result.rowCount < 1) {
                send_result(res, 90008, "插件不存在!");
                return;
            }

            var fileDownloadList = new Array();
            var fileDeleteList = new Array();
            var count = result.rowCount;

            result.rows.forEach(function(row) {
                var pluginDir = row.pluginDir;
                var version = row.publishVersion;
                var pluginId = row.pluginId;

                var selectNameStr = "SELECT * FROM plugin_version "
                    + "WHERE \"pluginId\"='" + pluginId + "' AND version='" + version + "';";

                console.log(selectNameStr);
                
                client.query(selectNameStr, function(err, result) {
                    if (err) {
                        console.error(err.stack);
                        send_result(res, 90001, "数据库查询错误!");
                        return;
                    }

                    if(result.rowCount < 1) {
                        send_result(res, 90008, "插件不存在!");
                        return;
                    }

                    var fileName = result.rows[0].fileName;

                    var fileLoc = pluginDir + '/' + result.rows[0].version + '/' + fileName;

                    var fileDownloadStr = {
                        url: fileLoc,
                        pluginId: result.rows[0].pluginId,
                        version: result.rows[0].version 
                    };

                    var fileDeleteStr = {
                        name: fileName,
                        pluginId: result.rows[0].pluginId
                    };

                    fileDownloadList.push(fileDownloadStr);
                    fileDeleteList.push(fileDeleteStr);

                    count--;

                    if (count == 0) {
                        var socket=devConn.getSocketByDevId(devId);
                        if (-1 == socket) {
                            send_result(res, 90004, "后台与设备连接错误!");
                            return;
                        }

                        var commandId = cmdkey.create();

                        if ("remove" == action) {
                            var cmdStr= {
                                type: "plugin_action",
                                commandId: commandId,
                                action: 'delete',
                                deviceId: devId,
                                pluginDeleteList: fileDeleteList
                            };
                        }
                        else {
                            var cmdStr= {
                                type: "plugin_action",
                                commandId: commandId,
                                action: action,
                                deviceId: devId,
                                pluginDownloadList: fileDownloadList,
                            };
                        }

                        console.log(JSON.stringify(cmdStr));
                        //socket.write(JSON.stringify(cmdStr));
                        send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");
                        send_result(res, 0, "Success!", commandId);

                    }

                });
            });

        });
    }
    else if("lirc_type_available"== msgType){
		var values = new Array();
		var userId = message.userId;

		var selectStr="SELECT DISTINCT \"devType\" "
			+ " FROM lirc_device;";

    	console.log(selectStr);
    	client.query(selectStr,function(err,result){
        	if(err){
                console.error(err.stack);
    	 		send_result(res,90011,"查询数据库错误!");
    	 		return;
                    
        	}
     		result.rows.forEach(function(row){
                var value=row.devType;
     			values.push(value);

     	    });

     	    var lircTypeAvailable={
     		    ret:0,
     		    values:values
    	    };

        	console.log(JSON.stringify(lircTypeAvailable));
        	res.send(JSON.stringify(lircTypeAvailable));

    	});
    }
	else if("lirc_model_available"== msgType){
		var userId = message.userId;
        var devType = message.devType;
        var values = new Array();
       
        var selectStr="SELECT manufacture,array_agg(\"modelName\") FROM lirc_device WHERE \"devType\"='"
                        + devType + "' GROUP BY manufacture;";
        console.log(selectStr);

        client.query(selectStr,function(err,result){
    		if(err){
    			console.error(err.stack);
    			send_result(res,9001,"数据库查询错误!");
    			return;
    		}
    		result.rows.forEach(function(row){   
    		    var value={
    				manufacture:row.manufacture,
                    modelName:row.array_agg
                };

                console.log(JSON.stringify(value));
                values.push(value);    				
    		});  

	        var lircModelAvailable={
				ret:0,
				devType:devType,
				values:values

		    };

    		console.log(JSON.stringify(lircModelAvailable));
    		res.send(JSON.stringify(lircModelAvailable));
        });
    }
	else if("lirc_get_key"== msgType){
		var userId = message.userId;
		var lircId = message.lircId;
        var value;

		var selectStr="SELECT \"lircId\", \"key\" "
		+ "FROM lirc_device WHERE \"lircId\"=' " + lircId + " ' ;";

		console.log(selectStr);
		client.query(selectStr,function(err,result){
			if(err){
				 console.error(err.stack);
				 send_result(res,1,"数据库查询错误!");
				 return;
			}
			result.rows.forEach(function(row){
				 value=row.key;
                 console.log(value);
			});

			var lircGetKey={
				 ret:0,
				 lircId:lircId,
				 key:value
		    };
            
    		console.log(JSON.stringify(lircGetKey));
    		res.send(JSON.stringify(lircGetKey));
		});
	} 
    else if ("dev_get_lirc" == msgType) {
        var userId = message.userId;
        var devId = message.devId;

        var selectStr = "SELECT \"lircData\" FROM iot_device WHERE \"deviceId\"='"
                + devId + "';";

        console.log(selectStr);


        client.query(selectStr, function(err, result) {

            console.log(result);
            if (err) {
                console.error(err.stack);
				send_result(res,1,"数据库查询错误!");
                return;
            }

            if (result.rowCount != 1) {
				send_result(res,1,"数据库查询错误!");
                return;
            }

            var retStr = {
                ret: 0,
                deviceId: devId,
                lircData: result.rows[0].lircData
            };
            console.log(retStr.lircData);
            res.send(JSON.stringify(retStr));
        });
    }
	else if("lirc_ctl" == msgType) {
        var userId = message.userId;
        var devId = message.devId;
        var action = message.action;
        var controls = message.controls;

        if ("set" == action) {
            var socket=devConn.getSocketByDevId(devId);
            if (-1 == socket) {
                send_result(res, 90004, "后台与设备连接错误!");
                return;
            }

            var commandId = cmdkey.create();

            var cmdStr = {
                type: 'lirc_emit',
                commandId: commandId,
                deviceId: devId,
                devData: controls
            };

            console.log(JSON.stringify(cmdStr));
            send_gw_result(socket, JSON.stringify(cmdStr)+"\r\n");
            send_result(res, 0, "Success!", commandId);

            return;
        }

        var selectStr = "SELECT \"lircData\" FROM iot_device WHERE \"deviceId\"='"
                + devId + "';";

        console.log(selectStr);

        client.query(selectStr, function(err, result) {

            if (err) {
                console.error(err.stack);
				send_result(res,1,"数据库查询错误!");
                return;
            }

            if (result.rowCount != 1) {
				send_result(res,1,"数据库查询错误!");
                return;
            }

            if ("add" == action) {

                console.log(result);
/*修改*/
                /*if (result.rows[0].lircData == 'undefined') {*/ 
                if (!result.rows[0].lircData) {
                    var devList = new Array();
                    result.rows[0].lircData = {
                        count: 0,
                        devList: devList
                    };
                }
                var count = result.rows[0].lircData.devList.push(controls);
                result.rows[0].lircData.count = count;

                var updateStr = "UPDATE iot_device SET \"lircData\"='"
                        + JSON.stringify(result.rows[0].lircData) + "' WHERE \"deviceId\"='"
                        + devId + "';";

                console.log(updateStr);

                client.query(updateStr, function(err, result1) {
                    if (err) {
                        console.error(err.stack);
                        send_result(res,1,"数据库操作失败!");
                    }
                    else {
                        send_result(res, 0, "Success!");
                    }
                });
            }
            else if ("delete" == action) {
                var lircData = result.rows[0].lircData;
                var devList = lircData.devList;
                var index = -1;

                for (var i in devList) {
                    if (devList[i].lircId == controls.lircId) {
                        index = i;
                    }
                }

                if (index != -1) {
                    devList.splice(index, 1);
                    result.rows[0].lircData.count--;

                    var updateStr = "UPDATE iot_device SET \"lircData\"='"
                        + JSON.stringify(result.rows[0].lircData) + "' WHERE \"deviceId\"='"
                        + devId + "';";

                    console.log(updateStr);

                    client.query(updateStr, function(err, result1) {
                        if (err) {
                            console.error(err.stack);
                            send_result(res,1,"数据库操作失败!");
                        }
                        else {
                            send_result(res, 0, "Success!");
                        }
                    });

                }
            }
            else {
                send_result(res,1,"参数错误!");
            }
        });

    }
    else if("lirc_get_lircId"== msgType){
        var manufacture = message.manufacture;
        var modelName = message.modelName;
        var devType = message.devType;
        var value;

        var selectStr="SELECT \"lircId\" "
            + "FROM lirc_device WHERE \"manufacture\"='" + manufacture + "' AND \"modelName\"='" + modelName + "' AND \"devType\"='" + devType + "' ;";

        console.log(selectStr);
        client.query(selectStr,function(err,result){
            if(err){
                console.error(err.stack);
                send_result(res,1,"数据库查询错误!");
                return;
            }

            console.log(result);


            var lircGetKey={
                ret:0,
                lircId:result.rows[0].lircId,
            };

            console.log(JSON.stringify(lircGetKey));
            res.send(JSON.stringify(lircGetKey));
        });
    }
   /* else if("lirc_set"== msgType){

        var lircId = message.settings.lircId;

        console.log(lircId);

        var selectStr="UPDATA \"lircId\" "
            + "FROM lirc_device WHERE \"manufacture\"='" + manufacture + "' AND \"modelName\"='" + modelName + "' AND \"devType\"='" + devType + "' ;";

        var selectStr1 = "UPDATA lirc_device  SET nickName   WHERE \"lircId\" = "+lircId+";";
        console.log(selectStr);
        client.query(selectStr,function(err,result){
            if(err){
                console.error(err.stack);
                send_result(res,1,"数据库查询错误!");
                return;
            }

            console.log(result);


            var lircGetKey={
                ret:0,
                lircId:result.rows[0].lircId,
            };

            console.log(JSON.stringify(lircGetKey));
            res.send(JSON.stringify(lircGetKey));
        });
    }*/
    else if("get_device_map"== msgType){
        var values = new Array();
        var placeDate = new Array();

        var selectStr =" SELECT \"deviceId\" ,place,\"deviceType\",connection,\"devData\",online "
                        + "FROM iot_device ; ";
        console.log(selectStr);

        client.query(selectStr,function(err ,result){
            if(err){
                console.error(err.stack);
                send_result(res,'9001',"数据库查询错误!");
                return;
            }
			result.rows.forEach(function(row){
         	var retCode={
            	devId:row.deviceId,
                place:row.place,
                devType:row.deviceType,
                online:row.online,
                nick_Name:row.devData.name,
                connection:row.connection
            	};
	            console.log(JSON.stringify(retCode));
	            values.push(retCode);
            }); 
            var value= {value:values };
            console.log(JSON.stringify(value));
            res.send(JSON.stringify(value));  
        });
    }
    else if("set_room" == msgType){
    	var devId = message.devId;
    	var place = message.place;

    	var updateStr="UPDATE iot_device SET place='"
                        + place  + "' WHERE \"deviceId\"='"
                        + devId + "';";
           client.query(updateStr,function(err,result){
           	if(err){
           		console.error(err.stack);
           		send_result(res,1,"数据库操作失败!");

           	}else{

           		send_result(res, 0, "Success!");
           	}
        });
    }
}