/// <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); }
//添加设备 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); }
/// <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); }