Example #1
0
        /// <summary>
        ///  添加设备
        /// </summary>
        /// <param name="serialNumber">设备号</param>
        /// <returns></returns>
        private AddDeviceResponseDto AddDeviceMethod(string serialNumber)
        {
            var deviceTypeEntity = GetDeviceTypeEntity(WellKnownVenderName.BSR, WellKnownSdkNames.LimitDevice);

            DockDeviceEntity deviceEntity = new DockDeviceEntity();

            deviceEntity.DeviceType       = deviceTypeEntity;
            deviceEntity.ChannelCount     = 0;
            deviceEntity.ControlPort      = 3721;
            deviceEntity.DataPort         = 3720;
            deviceEntity.DefaultConn      = 0;
            deviceEntity.DownloadPort     = 3720;
            deviceEntity.Password         = "******";
            deviceEntity.Protocol         = 0;
            deviceEntity.User             = "******";
            deviceEntity.HardwareType     = (short)HardwareType.Unknown;
            deviceEntity.IsFetchChannel   = true;
            deviceEntity.MulticastAddress = "";
            deviceEntity.MulticastPort    = 0;


            if (serialNumber.IndexOf(".") != -1)
            {
                deviceEntity.Ip      = serialNumber;
                deviceEntity.AddMode = 0;
                deviceEntity.Host    = "";
            }
            else
            {
                deviceEntity.Ip      = "";
                deviceEntity.AddMode = 3;
                deviceEntity.Host    = serialNumber;
            }
            deviceEntity.Host = serialNumber;
            deviceEntity.Name = serialNumber;

            deviceEntity.RegisterServerId = deviceEntity.RegisterType = 0;
            deviceEntity.RegisterAliases  = deviceEntity.RegisterSerialNumber = deviceEntity.RegisterMACAddress = "";

            AddDeviceRequestDto addDto = new AddDeviceRequestDto();

            addDto.MaxCount        = 512;
            addDto.AddDeviceEntity = deviceEntity;


            Bsr.ServiceProxy.Utils.ServiceFactory serviceFactory = new ServiceProxy.Utils.ServiceFactory();
            DDNSConfigDto        tmp        = new DDNSConfigDto();
            var                  seviceAddr = bllHelper.GetServerModelStr();
            AddDeviceResponseDto result     = null;

            serviceFactory.GetProxy <IDevice>(new Uri(seviceAddr)).Use(
                p =>
            {
                result = p.Add(addDto, tmp);
            }
                );
            return(result);
        }
Example #2
0
        //添加设备
        public AddDeviceResponseDto AddDevice(AddDeviceRequestDto req)
        {
            AddDeviceResponseDto ard = new AddDeviceResponseDto();
            string customerToken     = "";

            if (!RestHelper.SecurityCheck(ref customerToken))
            {
                ard.Code    = (int)CodeEnum.ReqNoToken;
                ard.Message = RestHelper.SecNoTokenMessage;
            }
            else
            {
                //code
                ResponseBaseDto dto = deviceBLL.AddDevice
                                          (req.DeviceName, req.SerialNumber, customerToken);
                ard.Code    = dto.Code;
                ard.Message = dto.Message;
            }
            return(ard);
        }
Example #3
0
        /// <summary>
        ///  1添加设备 2初次添加设备通道
        /// </summary>
        /// <returns>ResponseBaseDto</returns>
        public ResponseBaseDto AddDevice(string deviceName, string serialNumber, string customerToken)
        {
            ResponseBaseDto    dto  = new ResponseBaseDto();
            TokenCacheProperty tcp  = new TokenCacheProperty();
            UserTokenCache     utc  = UserTokenCache.GetInstance();
            OperaterLog        oLog = new OperaterLog();

            oLog.Action = " 添加设备 ";
            try
            {
                dto = bllHelper.CheckCustomer(dto, customerToken, ref tcp);
                //获取 判定token
                if (utc.IsValid(customerToken) == false)
                {
                    dto.Code    = (int)CodeEnum.ServerNoToken;
                    dto.Message = "Token已失效";
                }
                else
                {
                    Device device = new Device();
                    device.SerialNumber = serialNumber;
                    IList <Device> deviceFlag = deviceServer.SelectDeviceSerialNumber(device);

                    if (device != null && deviceFlag.Count != 0)
                    {
                        //设备被添加过
                        dto.Code     = (int)CodeEnum.NoHardWare;
                        dto.Message  = "此设备正在被使用中";
                        oLog.Result  = dto.Code;
                        oLog.Remarks = dto.Message;
                        bllHelper.AddOperaterLog(oLog, tcp);
                        return(dto);
                    }
                    //参数 0=IP  3等于 CN
                    AddDeviceResponseDto result = AddDeviceMethod(serialNumber);
                    if (result != null && result.Success == true)
                    {
                        //添加本地设备列表
                        Bsr.Cloud.Model.Entities.Device dev = new Model.Entities.Device();
                        dev.SerialNumber     = result.DeviceDto.AddDeviceEntity.SerialNumber;
                        dev.BPServerDeviceId = result.DeviceDto.AddDeviceEntity.Id;
                        if (deviceName == null || deviceName == "")
                        {
                            deviceName = "BStar";
                        }
                        dev.DeviceName = deviceName;
                        // 序列号添加时填3,需用IDeviceEntity.getDeviceType获取真正实际类型
                        dev.DeviceType   = result.DeviceDto.AddDeviceEntity.AddMode;
                        dev.HardwareType = result.DeviceDto.AddDeviceEntity.HardwareType;
                        dev.CustomerId   = tcp.CustomerId;
                        dev.UserName     = result.DeviceDto.AddDeviceEntity.User;
                        dev.PassWord     = result.DeviceDto.AddDeviceEntity.Password;
                        //以规则需要定义服务器位置
                        BPServerConfig bpServerConfig = new BPServerConfig();
                        bpServerConfig.Domain = "default";
                        IList <BPServerConfig> bpServerConfigFlag = bpServerConfigServer.GetBPServerConfigByDomain(bpServerConfig);
                        if (bpServerConfigFlag != null && bpServerConfigFlag.Count != 0)
                        {
                            dev.BPServerConfigId = bpServerConfigFlag[0].BPServerConfigId;
                        }
                        else
                        {
                            dev.BPServerConfigId = 1; //需修改
                        }
                        int deviceId = deviceServer.InsertDevice(dev);

                        //日志动作的目标对象Id
                        oLog.TargetId = deviceId;
                        //通道添加
                        IList <CameraEntity> channelFlag = result.DeviceDto.AddDeviceEntity.Cameras;
                        for (int i = 0; i < channelFlag.Count; i++)
                        {
                            Bsr.Cloud.Model.Entities.Channel channel = new Model.Entities.Channel();
                            CameraEntity ce = channelFlag[i];
                            channel.DeviceId          = deviceId;
                            channel.ChannelNumber     = ce.ChannelNo;
                            channel.ChannelName       = ce.Name;
                            channel.IsEnable          = 1;
                            channel.BPServerChannelId = ce.Id;
                            channel.ImagePath         = "default.jpg";
                            channelServer.InsertChannel(channel);
                        }
                        dto.Code    = (int)CodeEnum.Success;
                        dto.Message = "设备" + deviceName + "已添加完成!";
                    }
                    else
                    {
                        dto.Code    = (int)CodeEnum.NoHardWare;
                        dto.Message = result.Message;
                    }
                }
            }
            catch (Exception ex)
            {
                dto.Code    = (int)CodeEnum.ApplicationErr;
                dto.Message = "网络异常,添加设备时,远程连接超时!";
                myLog.ErrorFormat("AddDevice方法异常,设备名:{0}, 设备序列号:{1}", ex, deviceName, serialNumber);
            }
            oLog.TargetType = (int)OperaterLogEnum.Device;
            oLog.Result     = dto.Code;
            oLog.Remarks    = dto.Message;
            bllHelper.AddOperaterLog(oLog, tcp);
            return(dto);
        }