Exemple #1
0
        public string DelDevice(int appId, string deviceId)
        {
            var rst = new ReturnResult <bool>();

            var api    = new DeviceApi();
            var delRst = api.DelDevice(appId, deviceId);

            if (delRst.Status == "NoContent")
            {
                rst.Result  = true;
                rst.Message = "删除成功";

                var bll = new UserDeviceBll();
                var del = bll.Delete(new UserDevice()
                {
                    DeviceId = deviceId
                });
            }
            else
            {
                rst.Message = "删除失败";
            }

            return(JsonHelper.Instance.Serialize(rst));
        }
Exemple #2
0
        public string RegDevice(RegDeviceRequest model)
        {
            var rst = new ReturnResult <RegDeviceResult>();

            var api    = new DeviceApi();
            var apiRst = api.RegDevice(model);

            if (apiRst.Result && !string.IsNullOrEmpty(apiRst.Data.deviceId))
            {
                //根据设备型号查找profile
                var bll        = new ProfileBll();
                var profileRst = bll.GetOneByModel(new Profile()
                {
                    Model = model.model
                });
                if (profileRst.Result)
                {
                    var profile = profileRst.Data;
                    //修改设备
                    var updateRst = api.UpdateDevice(model.appId, apiRst.Data.deviceId, model.name, profile, "CoAP");
                    if (updateRst.Result && updateRst.Status == "NoContent")
                    {
                        rst.Result  = true;
                        rst.Data    = apiRst.Data;
                        rst.Message = "注册成功";
                    }
                    else
                    {
                        rst.Message = "注册失败";
                    }
                }
                else
                {
                    rst.Message = "设备型号不存在";
                }
                //插入用户设备表
                var device = new UserDevice()
                {
                    DeviceId   = apiRst.Data.deviceId,
                    DeviceName = model.name,
                    VerifyCode = model.verifyCode,
                    NodeId     = model.nodeId,
                    ProfileId  = profileRst.Data?.Id,
                    UserId     = model.userId
                };
                var addDeviceRst = new UserDeviceBll().AddOrUpdate(device);
                if (addDeviceRst.Result)
                {
                    rst.Result  = true;
                    rst.Message = "注册成功";
                }
            }
            else
            {
                rst.Message = "注册失败";
            }

            return(JsonHelper.Instance.Serialize(rst));
        }
Exemple #3
0
        public string GetListByUserId(UserDevice model)
        {
            var rst = new ReturnResult <List <UserDevice> >();
            var bll = new UserDeviceBll();

            rst = bll.GetList(model);

            return(JsonHelper.Instance.Serialize(rst));
        }
Exemple #4
0
        public string Del(UserDevice model)
        {
            var rst = new ReturnResult <bool>();
            var bll = new UserDeviceBll();

            rst = bll.Delete(model);

            return(JsonHelper.Instance.Serialize(rst));
        }
Exemple #5
0
        public string Add(UserDevice model)
        {
            var rst = new ReturnResult <bool>();
            var bll = new UserDeviceBll();

            if (model.Id == 0)
            {
                rst = bll.Add(model);
            }
            else
            {
                rst = bll.Update(model);
            }

            return(JsonHelper.Instance.Serialize(rst));
        }
Exemple #6
0
        public SubscibeModule()
        {
            //添加设备
            Post("/deviceAdded", (x) =>
            {
                try
                {
                    StreamReader readStream = new StreamReader(Request.Body, Encoding.UTF8);
                    string data             = readStream.ReadToEnd();
                    HandleLog.WriteLog("收到数据:" + data + Environment.NewLine);
                    if (!string.IsNullOrEmpty(data))
                    {
                        //打印
                        var result = JsonHelper.Instance.Deserialize <DeviceResult <object> >(data);

                        HandleLog.WriteLog("事件类型:" + result.notifyType);
                        HandleLog.WriteLog("设备Id:" + result.deviceId);
                        HandleLog.WriteLog("NodeId:" + result.deviceInfo.nodeId);
                    }
                }
                catch (Exception ex)
                {
                    HandleLog.WriteLog(ex.Message);
                }

                return("{ code: 200 }");
            });

            //设备数据变化
            Post("/deviceDataChanged", (x) =>
            {
                try
                {
                    StreamReader readStream = new StreamReader(Request.Body, Encoding.UTF8);
                    string data             = readStream.ReadToEnd();
                    HandleLog.WriteLog("收到数据:" + data + Environment.NewLine);
                    if (!string.IsNullOrEmpty(data))
                    {
                        var result = JsonHelper.Instance.Deserialize <ResponseResult <object> >(data);
                        HandleLog.WriteLog("事件类型:" + result.notifyType);
                        HandleLog.WriteLog("设备Id:" + result.deviceId);

                        //查询数据库的解析dll 反射创建解析类的实例
                        var protocolRst = new ProtocolBll().GetOneByDeviceId(result.deviceId);
                        if (protocolRst.Result)
                        {
                            //IParseClass clsInterface = new NBIOT.ParseAlarm.ParseClass();

                            var protocol          = protocolRst.Data;
                            ReflectionLesson refl = new ReflectionLesson(protocol.FullDllPath, protocol.DllName, "ParseClass");

                            //直接使用反射调用方法
                            IParseClass clsInterface = refl.ReflectionClass();
                            clsInterface.DeviceDataChanged(result);
                        }
                    }
                }
                catch (Exception ex)
                {
                    HandleLog.WriteLog(ex.Message);
                }

                return("{ code: 200 }");
            });

            //删除设备
            Post("/deviceDeleted", (x) =>
            {
                try
                {
                    StreamReader readStream = new StreamReader(Request.Body, Encoding.UTF8);
                    string data             = readStream.ReadToEnd();
                    HandleLog.WriteLog("收到数据:" + data + Environment.NewLine);
                    if (!string.IsNullOrEmpty(data))
                    {
                        var result = JsonHelper.Instance.Deserialize <DeviceResult <object> >(data);
                        HandleLog.WriteLog("事件类型:" + result.notifyType);
                        HandleLog.WriteLog("设备Id:" + result.deviceId);
                        UserDeviceBll deviceBll = new UserDeviceBll();
                        var deviceModel         = new UserDevice
                        {
                            DeviceId = result.deviceId
                        };
                        var delRst = deviceBll.Delete(deviceModel);
                        HandleLog.WriteLog("删除结果:" + delRst.Message);
                    }
                }
                catch (Exception ex)
                {
                    HandleLog.WriteLog(ex.Message);
                }

                return("{ code: 200 }");
            });

            Post("/commandRsp", (x) =>
            {
                try
                {
                    StreamReader readStream = new StreamReader(Request.Body, Encoding.UTF8);
                    string data             = readStream.ReadToEnd();
                    HandleLog.WriteLog("收到数据:" + data + Environment.NewLine);
                    if (!string.IsNullOrEmpty(data))
                    {
                        var result = JsonHelper.Instance.Deserialize <CommandResult <object> >(data);
                        HandleLog.WriteLog("事件类型:commandRsp");
                        HandleLog.WriteLog("设备Id:" + result.deviceId);
                        HandleLog.WriteLog("命令Id:" + result.commandId);

                        IParseClass clsInterface = new NBIOT.ParseAlarm.ParseClass();
                        clsInterface.CommandRsp(result);
                    }
                }
                catch (Exception ex)
                {
                    HandleLog.WriteLog(ex.Message);
                }

                return("{ code: 200 }");
            });
        }