中文简体    English


IvySdkManager

单例对象

接口说明

单例对象

  + (IvySdkManager *)shared;

返回

单例对象

示例代码

初始化方法

接口说明

初始化方法

  - (void)initializer;

示例代码

  [[IvySdkManager shared] initializer];

设置P2P服务器地区

接口说明

设置P2P服务器地区

  - (void)setP2PRegion:(NSInteger)region;

参数说明

参数 说明
region region 地区(0: 中国区,1:非中国区)

示例代码

  [[IvySdkManager shared] setP2PRegion:0];

获取版本信息

接口说明

获取版本信息

  - (NSString *)versionInfo;

返回

版本信息

示例代码

  NSString *versionInfo = [IvySdkManager shared].versionInfo;
  NSLog(@"... version:%@", versionInfo);

  Output:
  ... version:1.0.6_35_1.0.3.166

设置Sdk日志信息

接口说明

设置Sdk日志信息

  - (void)setLog:(NSInteger)level filepath:(NSString *)filepath maxSize:(NSUInteger)maxSize;

参数说明

参数 说明
level 日志等级 (0: NO 1: Error 2:Debug 3: All)
filepath 日志文件路径
maxSize 文件最大尺寸(M)

示例代码

  NSString *filepath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"AppSdk.txt"];
  [[IvySdkManager shared] setLog:3 filepath:filepath maxSize:100];

停止局域网搜索

接口说明

停止局域网搜索

  - (void)stopDiscovery;

示例代码

重启局域网搜索

接口说明

重启局域网搜索

  - (void)restartDiscovery;

示例代码

搜索局域网设备

接口说明

搜索局域网设备

  - (void)searchDevices:(void(^)(NSArray<IvyDevLan *> *devices))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [[IvySdkManager shared] searchDevices:^(NSArray<IvyDevLan *> * _Nonnull devices) {
      for (IvyDevLan *obj in devices) {
          NSLog(@"... deviceUID:%@", obj.uid);
      }
  }];

二维码配网内容字符串

接口说明

二维码配网内容字符串

  - (NSString *)qrCodeString:(nonnull NSString *)SSID password:(nonnull NSString *)password deviceUID:(nullable NSString *)deviceUID bindingToken:(nullable NSString *)bindingToken;

参数说明

参数 说明
SSID 路由器SSID
password 路由器密码
deviceUID 设备UID (若无传nil)
bindingToken IOT 绑定token (若无传nil)

返回

配网字符串

说明

根据该字符串,生成对应的二维码,用于IPC的配置网络

示例代码

  - (UIImage *)qrCodeImageFromString:(NSString *)qrString {

      NSData *data = [qrString dataUsingEncoding:NSUTF8StringEncoding];
      CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];

      [filter setValue:data forKey:@"inputMessage"];
      [filter setValue:@"L" forKey:@"inputCorrectionLevel"];

      CIImage *ciimage = filter.outputImage;
      CGFloat scaleX = 200 / ciimage.extent.size.width;
      CGFloat scaleY = 200 / ciimage.extent.size.height;

      CIImage *resizeImage = [ciimage imageByApplyingTransform:CGAffineTransformMakeScale(scaleX, scaleY)];
      UIImage *image = [[UIImage alloc] initWithCIImage:resizeImage scale:[[UIScreen mainScreen] scale] orientation:UIImageOrientationDown];

      return image;
  }

  NSString *SSID = @"My_WiFi";
  NSString *password = @"1234567890";
  NSString *deviceUID = @"J4CH4CT4G4338LDWZZZZF2BI";
  NSString *bindingToken = @"9OUI58";
  NSString *qrCodeString = [[IvySdkManager shared] qrCodeString:SSID password:password deviceUID:deviceUID bindingToken:bindingToken];

  UIImage *image = [self qrCodeImageFromString:qrCodeString];

通过设备UID获取设备出厂密码

接口说明

通过设备UID获取设备出厂密码

  - (NSString *)resetPasswordByDeviceUID:(nonnull NSString *)deviceUID;

参数说明

参数 说明
deviceUID 设备UID

示例代码

  NSString *deviceUID = kDeviceUID;
  NSString *resetPwd = [[IvySdkManager shared] resetPasswordByDeviceUID:deviceUID];
  NSLog(@"... resetPwd:%@", resetPwd);

  Output:
  ... resetPwd:e8e3d757

通过设备UID判断设备类型

接口说明

通过设备UID判断设备类型

  - (IvyDeviceType)deviceTypeByDeviceUID:(nonnull NSString *)deviceUID;

参数说明

参数 说明
deviceUID 设备UID

示例代码

  NSString *deviceUID = kDeviceUID;
  IvyDeviceType type = [[IvySdkManager shared] deviceTypeByDeviceUID:deviceUID];

IvyCamera

初始化

初始化IvyCamera对象

接口说明

通过设备UID、以及设备对应的用户名、密码初始化IvyCamera对象

- (instancetype)initWithDeviceUID:(NSString *)deviceUID username:(NSString *)username password:(NSString *)password;

参数说明

参数 说明
deviceUID 设备UID
username 设备用户名
password 设备密码

返回

IvyCamera对象

示例代码

NSString *deviceUID = @"5RKNUEBGCY3821CHZZZZ9Y9I";
NSString *username = @"admin";
NSString *password = @"uKsa72";
IvyCamera *obj = [[IvyCamera alloc] initWithDeviceUID:deviceUID username:username password:password];

属性

设备句柄

属性说明

设备句柄

  @property (nonatomic, assign, readonly) IVYHANDLE handle;

设备UID

属性说明

设备UID

  @property (nonatomic, strong, readonly) NSString *deviceUID;

设备用户名

属性说明

设备用户名

  @property (nonatomic, strong, readonly) NSString *username;

设备密码

属性说明

设备密码

  @property (nonatomic, strong, readonly) NSString *password;

设备句柄状态

属性说明

设备句柄状态

  @property (nonatomic, assign, readonly) IVYIO_HANDLE_STATE handleState;

连接管理

登录Camera

接口说明

登录Camera

  - (void)loginCamera:(void(^)(IVYIO_HANDLE_STATE handleState, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 登陆结果

示例代码

  [self.ivyCamera loginCamera:^(IVYIO_HANDLE_STATE handleState, IVYIO_RESULT cmdResult) {
      if (IVYIO_HANDLE_STATE_ONLINE == handleState) {
          NSLog(@"... Online");
      } else {
          NSLog(@"... Offline");
      }
  }];

登出Camera

接口说明

登出Camera

  - (void)logoutCamera;

示例代码

  [self.ivyCamera logoutCamera];

释放Camera

接口说明

释放Camera

  - (void)destroyCamera;

示例代码

  [self.ivyCamera destroyCamera];

更新用户名密码

接口说明

更新用户名密码

  - (BOOL)updateUsername:(NSString *)username password:(NSString *)password;

参数说明

参数 说明
username 设备用户名
password 设备密码

返回

是否成功

示例代码

  NSString *newUsername = @"a";
  NSString *newPassword = @"abc123";
  [self.ivyCamera updateUsername:newUsername password:newPassword];

清除缓存的设备信息

接口说明

清除缓存的设备信息

- (void)resetConfiguration;

示例代码

[self.ivyCamera resetConfiguration];

设备信息

获取设备能力级

接口说明

获取设备能力级

  - (void)getDevAbility:(void(^)(IvyDevAbility *devAbility, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getDevAbility:^(IvyDevAbility * _Nonnull devAbility, IVYIO_RESULT cmdResult) {

  }];

获取设备信息

接口说明

获取设备信息

  - (void)getDevInfo:(void(^)(IvyDevInfo *devInfo, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getDevInfo:^(IvyDevInfo * _Nonnull devInfo, IVYIO_RESULT cmdResult) {
      if (cmdResult == IVYIO_RESULT_OK) {
          NSLog(@"... mac:%@", devInfo.mac);
      }
  }];

修改设备用户名密码

接口说明

修改设备用户名密码

  - (void)modifyUserNameAndPassword:(NSString *)newUserName newPassword:(NSString *)newPassword onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
newUserName 新用户名
newPassword 新密码
resultBlock 结果

示例代码

  NSString *username = @"a";
  NSString *password = @"abc123";
  [self.ivyCamera modifyUserNameAndPassword:username newPassword:password onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

画面设置

获取镜像翻转状态

接口说明

获取镜像翻转状态

  - (void)getVideoMirrorFlip:(void(^)(BOOL isMirror, BOOL isFlip, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

设置镜像状态

接口说明

设置镜像状态

  - (void)setMirrorVideo:(BOOL)isMirror onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
isMirror 开启镜像
resultBlock 结果

示例代码

  [self.ivyCamera setMirrorVideo:YES onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {}];

设置翻转状态

接口说明

设置翻转状态

  - (void)setFlipVideo:(BOOL)isFlip onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
isFlip 开启翻转
resultBlock 结果

示例代码

  [self.ivyCamera setFlipVideo:NO onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {}];

获取红外灯状态

接口说明

获取红外灯状态

  - (void)getDayNightConfig:(void(^)(NSInteger mode, BOOL onoff, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

设置红外灯状态

接口说明

设置红外灯状态

  - (void)setDayNightConfig:(BOOL)onoff mode:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
onoff 是否开启红外灯 (只有在手动模式下,onoff才会有效)
mode 红外灯的状态 (0:自动 1:手动 2:计划)
resultBlock 结果

示例代码

  BOOL onoff = YES;
  NSInteger mode = 1;
  [self.ivyCamera setDayNightConfig:onoff mode:mode onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取设置支持的清晰度类型

接口说明

获取设置支持的清晰度类型

  - (void)getSupportedStreamTypes:(void(^)(NSArray *types, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

types数组值参考IvyDefinitionType

示例代码

  [self.ivyCamera getSupportedStreamTypes:^(NSArray * _Nonnull types, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, types:%@", @(cmdResult), types);
  }];

  Output:
  ... cmdResult:0, types:(
      2,
      1,
      0
  )

获取当前清晰度类型

接口说明

获取当前清晰度类型

  - (void)getStreamType:(void(^)(IvyDefinitionType streamType, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getStreamType:^(IvyDefinitionType streamType, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, streamType:%@", @(cmdResult), @(streamType));
  }];

  Output:
  ... cmdResult:0, streamType:2

设置摄像机清晰度

接口说明

设置摄像机清晰度

  - (void)setStreamType:(IvyDefinitionType)streamType onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
streamType 清晰度
resultBlock 结果

示例代码

  IvyDefinitionType type = IvyDefinitionHD;
  [self.ivyCamera setStreamType:type onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取OSD设置状态

接口说明

获取OSD设置状态

  - (void)getOSDSettings:(void(^)(IvyOSDSettings *obj, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getOSDSettings:^(IvyOSDSettings * _Nonnull obj, IVYIO_RESULT cmdResult) {
      if (cmdResult == IVYIO_RESULT_OK) {
          NSLog(@"... isEnableTimeStamp:%@", @(obj.isEnableTimeStamp));
      }
  }];

  Output:
  ... isEnableTimeStamp:1

设置OSD设置状态

接口说明

设置OSD设置状态

  - (void)setOSDSettings:(IvyOSDSettings *)obj onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
obj OSD对象
resultBlock 结果

示例代码

  IvyOSDSettings *obj = [IvyOSDSettings new];
  obj.isEnableTimeStamp = YES;
  obj.isEnableDevName = NO;
  [self.ivyCamera setOSDSettings:obj onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取摄像机WDR开关状态

接口说明

获取摄像机WDR开关状态

  - (void)getCameraWDRState:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0关闭, 1开启

示例代码

  [self.ivyCamera getCameraWDRState:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

设置摄像机WDR开关状态

接口说明

设置摄像机WDR开关状态

  - (void)setCameraWDRState:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
mode 状态
resultBlock 结果

示例代码

  [self.ivyCamera setCameraWDRState:1 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

设置设备名称

接口说明

设置设备名称

  - (void)setDevName:(NSString *)devName onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
devName 名称
resultBlock 结果

说明

devName 如能力集(enableUnicodeDevName)不支持Unicode,则只能设置如下字符”^[A-Za-z0-9_\-\s]{1,20}$”。

示例代码

PTZ云台

云台控制

接口说明

云台控制

  - (void)setPTZCmd:(IVY_PTZ_CMD)ptzCmd onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
ptzCmd 控制命令
resultBlock 结果

示例代码

  IVY_PTZ_CMD ptzCmd = IVY_PTZ_MOVE_UP;
  [self.ivyCamera setPTZCmd:ptzCmd onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {}];

  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
      [self.ivyCamera setPTZCmd:IVY_PTZ_STOP onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {}];
  });

获取预置点列表

接口说明

获取预置点列表

  - (void)getPresetPointList:(void(^)(IvyPresetPoint *presetPoint, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getPresetPointList:^(IvyPresetPoint * _Nonnull presetPoint, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), presetPoint.pointNames);
  }];

  Output:
  ... cmdResult:0, obj:(
      TopMost,
      BottomMost,
      LeftMost,
      RightMost
  )

转到指定预置点

接口说明

转到指定预置点

  - (void)goToPresetPoint:(NSString *)pointName onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
pointName 预置点
resultBlock 结果

示例代码

  NSString *pointName = @"RightMost";
  [self.ivyCamera goToPresetPoint:pointName onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

添加预置点

接口说明

添加预置点

  - (void)addPresetPoint:(NSString *)pointName onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
pointName 预置点
resultBlock 结果

示例代码

  NSString *pointName = @"door";
  [self.ivyCamera addPresetPoint:pointName onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

删除预置点

接口说明

删除预置点

  - (void)deletePresetPoint:(NSString *)pointName onCompletion:(void(^)(IvyPresetPoint *presetPoint, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
pointName 预置点
resultBlock 结果

示例代码

  NSString *pointName = @"door";
  [self.ivyCamera deletePresetPoint:pointName onCompletion:^(IvyPresetPoint * _Nonnull presetPoint, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), presetPoint.pointNames);
  }];

垂直巡航

接口说明

垂直巡航

  - (void)startVerticalCruise:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera startVerticalCruise:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

水平巡航

接口说明

水平巡航

  - (void)startHorizontalCruise:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera startHorizontalCruise:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

定点巡航

接口说明

定点巡航

  - (void)startPresetPointCruise:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

该模式要求预置位不得少于2个

示例代码

  [self.ivyCamera startPresetPointCruise:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

停止巡航

接口说明

停止巡航

  - (void)stopCruise:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera stopCruise:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

告警设置

获取移动侦测信息

接口说明

获取移动侦测信息

  - (void)getMotionDetectConfig:(void(^)(id<IvyMotionDetect> _Nullable config, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

config 需根据type判断类型,使用对应的对象

示例代码

  [self.ivyCamera getMotionDetectConfig:^(id<IvyMotionDetect>  _Nullable config, IVYIO_RESULT cmdResult) {
      if (IVYIO_RESULT_OK == cmdResult) {
          switch (config.type) {
              case IvyMotionDetectType0: {
                  IvyMotionDetectObject0 *obj = (IvyMotionDetectObject0 *)config;
                  break;
              }

              case IvyMotionDetectType1: {
                  IvyMotionDetectObject1 *obj = (IvyMotionDetectObject1 *)config;
              }
                  break;
          }
      } else {

      }
  }];

设置移动侦测信息

接口说明

设置移动侦测信息

  - (void)setMotionDetectConfig:(id<IvyMotionDetect>)config onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
config DevMotionDetect对象
resultBlock 结果

示例代码

  IvyMotionDetectObject1 *obj = self.motionDetectObject1;
  [self.ivyCamera setMotionDetectConfig:obj onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取人体侦测信息

接口说明

获取人体侦测信息

  - (void)getPedestrianDetectConfig:(void(^)(IvyPedestrianDetect *config, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getPedestrianDetectConfig:^(IvyPedestrianDetect * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, config:%@", @(cmdResult), config);

      if (cmdResult != IVYIO_RESULT_OK) { return; }
      config.isEnable = !config.isEnable;
      [self.ivyCamera setPedestrianDetectConfig:config onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

设置人体侦测信息

接口说明

设置人体侦测信息

  - (void)setPedestrianDetectConfig:(IvyPedestrianDetect *)config onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
config DevMotionDetect对象
resultBlock 结果

示例代码

  [self.ivyCamera getPedestrianDetectConfig:^(IvyPedestrianDetect * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, config:%@", @(cmdResult), config);

      if (cmdResult != IVYIO_RESULT_OK) { return; }
      config.isEnable = !config.isEnable;
      [self.ivyCamera setPedestrianDetectConfig:config onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

获取人体侦测设备信息

接口说明

获取人体侦测设备信息

  - (void)getPedestrianLicenseDeviceInfo:(void(^)(NSString *info, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getPedestrianLicenseDeviceInfo:^(NSString * _Nonnull info, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), info);
  }];

设置人体侦测License

接口说明

设置人体侦测License

  - (void)setPedestrianLicense:(NSString *)license onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
license license
resultBlock 结果

示例代码

  NSString *license = @"bc7eb17155e92568a68e824ae4d6db8404f3d5f83c10acd3a81a055fdfdaee0b6241a508e0dad8ac9e0ae693862313b081210481727592dbb39b42feb5b205552343e1809445bbd7b842f44f2063254c73468a73d23da92519b036bbcb71b82a0af7b77079bacc80f008d2542b7e15e943374b37a3d4ede533d1a67ff90b8b59ab389f55826d83903402ac438ac4bbf72a89dc5a24c079f70ea90a0d0e95a11d6fe8e7ffbe1a0d4b7a985747daa7505826566b1cd48c0423d402ecb2bd2fc4d00384fb7ab89264bae8161e387d206ca0ace504fadcdd013a34dd4a15b0bcdf11539320c27fe8b05b09e33ab4aa86d598f875eae4b4d17452769d37f9e7e0c37f";

  [self.ivyCamera setPedestrianLicense:license onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取声音侦测

接口说明

获取声音侦测

  - (void)getAudioDetectConfig:(void(^)(IvyAudioDetect *config, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getAudioDetectConfig:^(IvyAudioDetect * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, config:%@", @(cmdResult), config);
      if (cmdResult != IVYIO_RESULT_OK) { return; }
      config.isEnable = !config.isEnable;

      [self.ivyCamera setAudioDetectConfig:config onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

设置声音侦测

接口说明

设置声音侦测

  - (void)setAudioDetectConfig:(IvyAudioDetect *)config onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
config DevMotionDetect对象
resultBlock 结果

示例代码

  [self.ivyCamera getAudioDetectConfig:^(IvyAudioDetect * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, config:%@", @(cmdResult), config);
      if (cmdResult != IVYIO_RESULT_OK) { return; }
      config.isEnable = !config.isEnable;

      [self.ivyCamera setAudioDetectConfig:config onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

网络设置

获取设备Wi-Fi配置

接口说明

获取设备Wi-Fi配置

  - (void)getWiFiConfig:(void(^)(IvyWiFiConfig *config, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getWiFiConfig:^(IvyWiFiConfig * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), config.ssid);
  }];

  Output:
  ... cmdResult:0, obj:My_WiFi

获取Wi-Fi列表

接口说明

获取Wi-Fi列表

  - (void)getWiFiList:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getWiFiList:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... getWiFiList cmdResult:%@ obj:%@", @(cmdResult), obj);
  }];

设置Wi-Fi

接口说明

设置Wi-Fi

  - (void)setWiFiConfig:(IvyWiFiDetail *)model password:(NSString *)password onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
model 选择的Wi-Fi类型
password Wi-Fi密码
resultBlock 结果

示例代码

  IvyWiFiDetail *obj = list[0];
  NSString *password = @"1234567890";
  [self.ivyCamera setWiFiConfig:obj password:password onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取网络自适应开关状态

接口说明

获取网络自适应开关状态

  - (void)getNetworkAutoAdaptability:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0关闭, 1开启

示例代码

  [self.ivyCamera getNetworkAutoAdaptability:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

设置网络自适应开关状态

接口说明

设置网络自适应开关状态

  - (void)setNetworkAutoAdaptability:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
mode 状态
resultBlock 结果

示例代码

  NSInteger mode = 1;
  [self.ivyCamera setNetworkAutoAdaptability:mode onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

时间设置

获取设备系统时间

接口说明

获取设备系统时间

  - (void)getSystemTime:(void(^)(IvyDevTime *devTime, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getSystemTime:^(IvyDevTime * _Nonnull devTime, IVYIO_RESULT cmdResult) {
      if (cmdResult == IVYIO_RESULT_OK) {
          NSLog(@"... devTime:%04ld-%02ld-%02ld %02ld:%02ld:%02ld", devTime.year, devTime.month, devTime.day, devTime.hour, devTime.min, devTime.sec);
      }
  }];

  Output:
  ... devTime:2019-07-06 04:32:38

设置系统时间

接口说明

设置系统时间

  - (void)setSystemTime:(IvyDevTime *)devTime onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
devTime 时间对象
resultBlock 结果

示例代码

  devTime.hour = 12;
  devTime.min = 30;
  [self.ivyCamera setSystemTime:devTime onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

同步手机时间到设备

接口说明

同步手机时间到设备

  - (void)syncSystemTime:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera syncSystemTime:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... syncSystemTime cmdResult:%@", @(cmdResult));
  }];

SD卡相关

获取设备SD卡信息

接口说明

获取设备SD卡信息

  - (void)getSDCardInfo:(void(^)(IvySDInfo *ivySDInfo, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getSDCardInfo:^(IvySDInfo * _Nonnull ivySDInfo, IVYIO_RESULT cmdResult) {
      if (cmdResult == IVYIO_RESULT_OK) {
          NSLog(@"... isExist:%@ totalSpace:%@ freeSpace:%@", @(ivySDInfo.isExist), @(ivySDInfo.totalSpace), @(ivySDInfo.freeSpace));
      }
  }];

格式化SD卡

接口说明

格式化SD卡

  - (void)setSDCardFormat:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera setSDCardFormat:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取SD卡录像列表

接口说明

获取SD卡录像列表

  - (void)getSDCardRecordList:(NSUInteger)startTime endTime:(NSUInteger)endTime recordType:(NSInteger)recordType onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
startTime 开始时间
endTime 结束时间
recordType 录像类型
resultBlock 结果

说明

一次查询时间不能超过一天

示例代码

  NSInteger year, month, day;
  NSInteger recordType = 2;

  {
      NSDate *date = [NSDate date];
      NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
      calendar.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
      NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];

      year = components.year;
      month = components.month;
      day = components.day;
  }

  NSLog(@"... getRecordList:%@-%@-%@ recordType:%@", @(year), @(month), @(day), @(recordType));

  NSDateComponents *components = [[NSDateComponents alloc] init];

  components.year = year;
  components.month = month;
  components.day = day;
  components.minute = 0;
  components.second = 0;

  NSCalendar *calendar = [NSCalendar currentCalendar];
  NSDate *date = [calendar dateFromComponents:components];

  NSUInteger st = (unsigned int)[date timeIntervalSince1970];
  NSUInteger et = st + 24 * 3600 - 1;

  __weak typeof(self) weakSelf = self;
  [self.ivyCamera getSDCardRecordList:st endTime:et recordType:recordType onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      if (IVYIO_RESULT_OK == cmdResult) {
          NSArray *records = (NSArray *)obj;
          NSLog(@"... getRecordList records count:%@", @([records count]));

          weakSelf.records = records;
          [weakSelf reload];
      } else {
          NSLog(@"... getRecordList cmdResult:%@", @(cmdResult));
      }
  }];

分页获取SD卡录像列表

接口说明

分页获取SD卡录像列表

  - (void)getSDCardRecordList:(NSUInteger)startTime endTime:(NSUInteger)endTime recordType:(NSInteger)recordType startNo:(NSInteger)startNo onCompletion:(void(^)(IvyRecordList *recordList, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
startTime Start time
endTime End time
recordType record Type
startNo Start number
resultBlock result

说明

The query time cannot exceed one day. startNo starts at 0.

示例代码

  int startNo = 220;

  [self.ivyCamera getSDCardRecordList:st endTime:et recordType:recordType startNo:startNo onCompletion:^(IvyRecordList * _Nonnull recordList, IVYIO_RESULT cmdResult) {
  NSLog(@"... totalCnt:%@ startNo:%@", @(recordList.totalCnt), @(recordList.startNo));

  if (IVYIO_RESULT_OK == cmdResult) {
      NSArray *records = (NSArray *)recordList.list;
      NSLog(@"... getRecordList records count:%@", @([records count]));

      weakSelf.records = records;
      [weakSelf reload];
  } else {
      NSLog(@"... getRecordList cmdResult:%@", @(cmdResult));
  }

  }];

获取SD卡图片列表

接口说明

获取SD卡图片列表

  - (void)getSDCardPictureList:(unsigned long long)startTime endTime:(unsigned long long)endTime type:(NSInteger)type startNo:(NSInteger)startNo onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
startTime 开始时间
endTime 结束时间
type 图片类型
startNo 起始位置
resultBlock 结果

说明

type 1表示手动录像、2表示计划录像、4表示移动侦测、8表示声音侦测、16表示IO侦测、32表示温度侦测、64表示湿度侦测、128表示人行侦测、256表示一键告警

示例代码

  - (void)loadSDCardPictureList {
      unsigned long long startTime = _st;
      unsigned long long endTime = _et;
      NSInteger type = 0xFFFF;
      NSInteger startNo = _curCount;

      [self.ivyCamera getSDCardPictureList:startTime endTime:endTime type:type startNo:startNo onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          if (cmdResult == IVYIO_RESULT_OK) {
              IvyPictureList *list = (IvyPictureList *)obj;
              NSLog(@"... totalCount:%@ curCount:%@", @(list.totalCount), @(list.curCount));

              self.totalCount = list.totalCount;
              self.curCount += list.curCount;
              [self.dataSource addObjectsFromArray:list.list];
              [self reload];
          }
      }];
  }

下载SD卡图片

接口说明

下载SD卡图片

  - (void)downloadSDCardPicture:(IvyPictureInfo *)info onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
info IvyPictureInfo 对象
resultBlock 结果

说明

图片下载成功,则以NSData返回

示例代码

  - (void)downloadPicture:(IvyPictureInfo *)info {
      NSString *deviceUID = self.ivyCamera.deviceUID;
      NSString *filename = [NSString stringWithFormat:@"%@_%@.JPG", deviceUID, @(info.time)];
      NSString *filepath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:filename];

      NSLog(@"... download picture time:%@", @(info.time));
      [self.ivyCamera downloadSDCardPicture:info onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... download picture time:%@ finished cmdResult:%@", @(info.time), @(cmdResult));

          if (IVYIO_RESULT_OK == cmdResult) {
              NSData *data = (NSData *)obj;
              if (nil != data) {
                  BOOL flag = [data writeToFile:filepath atomically:YES];
                  if (flag) {
                      NSLog(@"... download picture success");
                  }
              }
          }
      }];
  }

获取计划录像配置

接口说明

获取计划录像配置

  - (void)getScheduleRecordConfig:(void(^)(IvyScheduleRecordConfig *config, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera getScheduleRecordConfig:^(IvyScheduleRecordConfig * _Nonnull config, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), config);
  }];

设置计划录像配置

接口说明

设置计划录像配置

  - (void)setScheduleRecordConfig:(IvyScheduleRecordConfig *)config onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
config IvyScheduleRecordConfig 对象
resultBlock 结果

示例代码

  config.isEnable = YES;
  config.schedule0 = 281474976710655L;
  [self.ivyCamera setScheduleRecordConfig:config onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), config);
  }];

其它控制

开始录像

接口说明

开始录像

  - (void)startRecord:(NSString *)filepath onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
filepath 文件存储路径
resultBlock 结果

示例代码

  NSString *filepath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"record.mp4"];
  [self.ivyCamera startRecord:filepath onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... startRecord cmdResult:%@", @(cmdResult));
  }];

停止录像

接口说明

停止录像

  - (void)stopRecord:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera stopRecord:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... stopRecord cmdResult:%@", @(cmdResult));
  }];

获取摄像机音量

接口说明

获取摄像机音量

  - (void)getAudioVolume:(void(^)(NSInteger volume, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

volume的取值范围0~100

示例代码

  [self.ivyCamera getAudioVolume:^(NSInteger volume, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, volume:%@", @(cmdResult), @(volume));

      [self.ivyCamera setAudioVolume:80 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

设置摄像机音量

接口说明

设置摄像机音量

  - (void)setAudioVolume:(NSInteger)volume onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
volume 音量大小
resultBlock 结果

示例代码

  [self.ivyCamera getAudioVolume:^(NSInteger volume, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, volume:%@", @(cmdResult), @(volume));

      [self.ivyCamera setAudioVolume:80 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
          NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
      }];
  }];

获取对讲音量

接口说明

获取对讲音量

  - (void)getSpeakerVolume:(void(^)(NSInteger volume, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

volume的取值范围0~100

示例代码

设置对讲音量

接口说明

设置对讲音量

  - (void)setSpeakerVolume:(NSInteger)volume onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
volume 音量大小
resultBlock 结果

示例代码

重启设备

接口说明

重启设备

  - (void)rebootSystem:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera rebootSystem:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取电源频率

接口说明

获取电源频率

  - (void)getFrequency:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0表示50HZ,1表示60HZ,2表示户外模式

示例代码

  [self.ivyCamera getFrequency:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

设置电源频率

接口说明

设置电源频率

  - (void)setFrequency:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
mode IPC电源频率
resultBlock 结果

示例代码

  [self.ivyCamera setFrequency:0 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

获取休眠状态

接口说明

获取休眠状态

  - (void)getCameraSleepState:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0未启用, 1休眠状态,2唤醒状态,3结束休眠

示例代码

  [self.ivyCamera getCameraSleepState:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

唤醒设备

接口说明

唤醒设备

  - (void)setCameraWakeUp:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera setCameraWakeUp:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

休眠设备

接口说明

休眠设备

  - (void)setCameraSleep:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
resultBlock 结果

示例代码

  [self.ivyCamera setCameraSleep:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取指示灯开关状态

接口说明

获取指示灯开关状态

  - (void)getLedEnableState:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0关闭, 1开启

示例代码

  [self.ivyCamera getLedEnableState:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

设置指示灯开关状态

接口说明

设置指示灯开关状态

  - (void)setLedEnableState:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
mode 状态
resultBlock 结果

示例代码

  [self.ivyCamera setLedEnableState:1 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

获取提示语音开关状态

接口说明

获取提示语音开关状态

  - (void)getVoiceState:(void(^)(NSInteger mode, IVYIO_RESULT cmdResult))resultBlock;

参数说明

参数 说明
resultBlock 结果

说明

mode: 0关闭, 1开启

示例代码

  [self.ivyCamera getVoiceState:^(NSInteger mode, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, mode:%@", @(cmdResult), @(mode));
  }];

设置提示语音开关状态

接口说明

设置提示语音开关状态

  - (void)setVoiceState:(NSInteger)mode onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
mode 状态
resultBlock 结果

示例代码

  [self.ivyCamera setVoiceState:1 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

云端配置

在线升级

接口说明

在线升级

  - (void)setOnlineUpgrade:(NSString *)URLString onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
URLString 升级链接
resultBlock 结果

示例代码

  NSString *URLString = @"http://test-download.myfoscam.com:9001/firmware/test/anba_F_app_ver2.x.1.77_0821--1569550740170.bin";
  [self.ivyCamera setOnlineUpgrade:URLString onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

设置云存储配置

接口说明

设置云存储配置

  - (void)setCloudStorageConfig:(NSString *)portal deviceMac:(NSString *)deviceMac streamId:(NSString *)streamId userTag:(NSString *)userTag onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
portal 网关地址
deviceMac 设备Mac
streamId 已授权的云存储Id
userTag 已授权的用户tag
resultBlock 结果

示例代码

  NSString *portal = @"https://test-api.myfoscam.com:443";
  NSString *deviceMac = @"00000000232A";
  NSString *streamId = @"1a8d226eca789c189403c112b6c1acb5104256400000000232A";
  NSString *userTag = @"d85280b8e9e146679197c2dca2f54531";

  [self.ivyCamera setCloudStorageConfig:portal deviceMac:deviceMac streamId:streamId userTag:userTag onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

设置富媒体推送配置

接口说明

设置富媒体推送配置

  - (void)setRichMediaPushConfig:(NSString *)portal userTag:(NSString *)userTag onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
portal 网关地址
userTag 已授权的用户tag
resultBlock 结果

示例代码

  NSString *portal = @"https://test-api.myfoscam.com";
  NSString *userTag = @"a44ad70c97f84d21b763412119f3397e";

  [self.ivyCamera setRichMediaPushConfig:portal userTag:userTag onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

设置文本推送配置

接口说明

设置文本推送配置

  - (void)setTextPushConfig:(NSString *)portal userTag:(NSString *)userTag onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
portal 网关地址
userTag 已授权的用户tag
resultBlock 结果

示例代码

  NSString *portal = @"https://test-api.myfoscam.com";
  NSString *userTag = @"a44ad70c97f84d21b763412119f3397e";

  [self.ivyCamera setTextPushConfig:portal userTag:userTag onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

通用命令

通用命令

接口说明

通用命令

  - (void)sendCommand:(int)cgiCommand parameters:(NSDictionary *)parameters iTimeout:(int)iTimeout onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
cgiCommand 命令
parameters 输入参数
iTimeout 超时时长
resultBlock 结果

示例代码

  [self.ivyCamera sendCommand:IVY_CTRL_MSG_GET_OSD_PARAM parameters:@{} iTimeout:kTimeout onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

  NSInteger osdType = 0b001;
  NSDictionary *parameters = @{@"dispPos" : @(0),
                               @"osdType" : @(osdType)};
  [self.ivyCamera sendCommand:IVY_CTRL_MSG_SET_OSD_PARAM parameters:parameters iTimeout:kTimeout onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

通用命令,发送CGI命令

接口说明

通用命令,发送CGI命令

  - (void)sendCGICommand:(NSString *)cgiCommand iTimeout:(int)iTimeout onCompletion:(IvyCameraResultBlock)resultBlock;

参数说明

参数 说明
cgiCommand 命令字符串
iTimeout 超时时长
resultBlock 结果

示例代码

  NSString *deviceName = @"Küche";

  NSString *value = [deviceName UTF8ToUnicode];
  NSString *cmd = [NSString stringWithFormat:@"cmd=setDevNameUnicode&devNameUnicode=%@", value];

  [self.ivyCamera sendCGICommand:cmd iTimeout:30000 onCompletion:^(id  _Nullable obj, IVYIO_RESULT cmdResult) {
      NSLog(@"... cmdResult:%@, obj:%@", @(cmdResult), obj);
  }];

事件管理

添加一个事件的观察者

接口说明

添加一个事件的观察者

  - (void)addEventObserver:(id)observer selector:(SEL)aSelector;

参数说明

参数 说明
observer 观察者
aSelector 选择子

说明

必须调用removeEventObserver:移除当前观察者

示例代码

  [self.ivyCamera addEventObserver:self selector:@selector(handleEvent:)];

  - (void)handleEvent:(NSDictionary *)eventDict {
      NSInteger eventId = [eventDict[@"eventId"] integerValue];
      NSLog(@"... eventId:%@ eventDict:%@", @(eventId), eventDict);
      switch (eventId) {
          case IVY_CTRL_MSG_DAY_NIGHT_MODE_CHG: {

          }
              break;

          case IVY_CTRL_MSG_MIRROR_FLIP_CHG: {

          }
              break;

          case IVY_CTRL_MSG_ONLINE_UPGRADE_STATE: {
              NSLog(@"... IVY_CTRL_MSG_ONLINE_UPGRADE_STATE eventDict:%@", eventDict);
          }

          default:
              break;
      }
  }

移除一个观察者

接口说明

移除一个观察者

  - (void)removeEventObserver:(id)observer;

参数说明

参数 说明
observer 观察者

示例代码

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      [self.ivyCamera removeEventObserver:self];
  }

IvyPlayer 实时直播

IvyPlayer 实时直播类

直播

接口说明

直播

  - (void)playLive:(IvyCamera *)ivyCamera decodeType:(IvyVideoDecodeType)decodeType;

参数说明

参数 说明
ivyCamera 设备
decodeType 解码数据的类型

示例代码

  - (void)play {
      __weak typeof(self) weakSelf = self;
      [self.ivyCamera loginCamera:^(IVYIO_HANDLE_STATE handleState, IVYIO_RESULT cmdResult) {
          if (IVYIO_HANDLE_STATE_ONLINE == handleState) {
              [weakSelf.ivyPlayer playLive:self.ivyCamera decodeType:IvyVideoDecodeUIImage];
          } else {
              NSLog(@"... Offline");
          }
      }];
  }

  - (IvyPlayer *)ivyPlayer {
      if (!_ivyPlayer) {
          _ivyPlayer = [IvyPlayer new];
          _ivyPlayer.delegate = self;
      }
      return _ivyPlayer;
  }

停止播放

接口说明

停止播放

  - (void)stop;

示例代码

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      [self.ivyPlayer endTalk];

      [self.ivyPlayer stop];
  }

打开对讲

接口说明

打开对讲

  - (void)startTalk;

示例代码

  [self.ivyPlayer startTalk];

关闭对讲

接口说明

关闭对讲

  - (void)endTalk;

示例代码

  [self.ivyPlayer endTalk];

音频开关

属性说明

音频开关

  @property (nonatomic, assign) BOOL validAudio;

示例代码

  self.ivyPlayer.validAudio = NO;

代理

属性说明

代理

  @property (nonatomic, weak) id<IvyPlayerDelegate > delegate;

IvyPlayerDelegate 实时直播代理

解码到一帧UIImage的图像

接口说明

解码到一帧UIImage的图像

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer didReciveFrame:(UIImage *)image isFirstFrame:(BOOL)isFirstFrame;

参数说明

参数 说明
ivyPlayer 当前播放器
image 一帧图像
isFirstFrame 是否为第一帧数据

说明

播放使用IvyVideoDecodeUIImage类型时,帧数据通过该方法回掉。否则通过ivyPlayer:didReciveIVYFrame:isFirstFrame回掉指定帧数据。

示例代码

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer didReciveFrame:(UIImage *)image isFirstFrame:(BOOL)isFirstFrame {
      self.imageView.image = image;
      if (isFirstFrame) {

      }
  }

解码到一帧指定格式的图像

接口说明

解码到一帧指定格式的图像

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer didReciveIVYFrame:(IVYIO_FRAME *)frame isFirstFrame:(BOOL)isFirstFrame;

参数说明

参数 说明
ivyPlayer 当前播放器
frame 指定帧数据
isFirstFrame 是否为第一帧数据

示例代码

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer didReciveIVYFrame:(IVYIO_FRAME *)frame isFirstFrame:(BOOL)isFirstFrame {
      NSLog(@"... isKey:%@ len:%@", @(frame->iKey), @(frame->len));
  }

命令结果

接口说明

命令结果

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer playerCommand:(IvyPlayerCommand)command result:(IVYIO_RESULT)result;

参数说明

参数 说明
ivyPlayer 当前播放器
command 命令
result 结果

示例代码

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer playerCommand:(IvyPlayerCommand)command result:(IVYIO_RESULT)result {
      NSLog(@"... command:%@ result:%@", @(command), @(result));
  }

播放流量

接口说明

播放流量

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer mediaTransmitSpeed:(NSUInteger)transmitSpeed;

参数说明

参数 说明
ivyPlayer 当前播放器
transmitSpeed 流量大小(Kb)

示例代码

  - (void)ivyPlayer:(IvyPlayer *)ivyPlayer mediaTransmitSpeed:(NSUInteger)transmitSpeed {
      NSString *text = nil;
      CGFloat mb = transmitSpeed / (1024.f * 1024.f);
      if (mb > 1) {
          text = [NSString stringWithFormat:@"%4.1fMB", mb];
      } else {
          CGFloat kb = transmitSpeed / 1024.f;
          text = [NSString stringWithFormat:@"%4.1fKB",kb];
      }

      NSLog(@"... transmitSpeed:%@", text);
  }

IvySDPlayer SD卡播放

IvySDPlayer SD卡播放类

播放SD卡录像

接口说明

播放SD卡录像

  - (void)playBack:(IvyCamera *)ivyCamera recordObject:(id<IvyRecordObject>)recordObject decodeType:(IvyVideoDecodeType)decodeType;

参数说明

参数 说明
ivyCamera 设备对象
recordObject 录像对象
decodeType 解码数据的类型

示例代码

  - (void)playBack:(id<IvyRecordObject>)obj {
      if (nil == obj) { return; }

      [self.player playBack:self.ivyCamera recordObject:obj decodeType:IvyVideoDecodeUIImage];
      self.player.validAudio = YES;
  }

  - (IvySDPlayer *)player {
      if (!_player) {
          _player = [IvySDPlayer new];
          _player.delegate = self;
      }
      return _player;
  }

暂停播放

接口说明

暂停播放

  - (void)pause;

示例代码

继续播放

接口说明

继续播放

  - (void)resume;

示例代码

设置播放位置

接口说明

设置播放位置

  - (void)seekToPosition:(NSTimeInterval)pos;

参数说明

参数 说明
pos 播放位置

示例代码

  NSTimeInterval pos = 10;

  [self.player seekToPosition:pos];

停止播放

接口说明

停止播放

  - (void)stop;

示例代码

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      [self.player stop];
  }

音频开关

属性说明

音频开关

  @property (nonatomic, assign) BOOL validAudio;

示例代码

  self.player.validAudio = NO;

代理

属性说明

代理

  @property (nonatomic, weak) id<IvySDPlayerDelegate> delegate;

IvySDPlayerDelegate SD卡播放代理

解码到一帧UIImage的图像

接口说明

解码到一帧UIImage的图像

  - (void)ivySDPlayer:(IvySDPlayer *)player didReciveFrame:(UIImage *)image isFirstFrame:(BOOL)isFirstFrame;

参数说明

参数 说明
player 当前播放器
image 一帧图像
isFirstFrame 是否为第一帧数据

说明

播放使用IvyVideoDecodeUIImage类型时,帧数据通过该方法回掉。否则通过ivySDPlayer:didReciveIVYFrame:isFirstFrame回掉指定帧数据。

示例代码

  - (void)ivySDPlayer:(IvySDPlayer *)player didReciveFrame:(UIImage *)image isFirstFrame:(BOOL)isFirstFrame {
      self.imageView.image = image;
      if (isFirstFrame) {

      }
  }

解码到一帧指定格式的图像

接口说明

解码到一帧指定格式的图像

  - (void)ivySDPlayer:(IvySDPlayer *)player didReciveIVYFrame:(IVYIO_FRAME *)frame isFirstFrame:(BOOL)isFirstFrame;

参数说明

参数 说明
player 当前播放器
frame 指定帧数据
isFirstFrame 是否为第一帧数据

示例代码

命令结果

接口说明

命令结果

  - (void)ivySDPlayer:(IvySDPlayer *)player playerCommand:(IvyPlayerCommand)command result:(IVYIO_RESULT)result;

参数说明

参数 说明
player 当前播放器
command 命令
result 结果

示例代码

  - (void)ivySDPlayer:(IvySDPlayer *)player playerCommand:(IvyPlayerCommand)command result:(IVYIO_RESULT)result {
      NSLog(@"... command:%@ result:%@", @(command), @(result));
      switch (command) {
          case IvyPlayerOpenVideo: {
              if (result != IVYIO_RESULT_OK) {
                  _isFinished = YES;
              }
          }
              break;

          case IvyPlayerCloseVideo: {
              _isFinished = YES;
          }
              break;

          case IvyPlayerFinished: {
              self.imageView.image = nil;

              [self autoPlay];
          }
              break;

          default:
              break;
      }
  }

播放时间

接口说明

播放时间

  - (void)ivySDPlayer:(IvySDPlayer *)player totalTime:(NSTimeInterval)totalTime timePosition:(NSTimeInterval)timePosition;

参数说明

参数 说明
player 当前播放器
totalTime 本段录像总时长
timePosition 当前播放位置

示例代码

  - (void)ivySDPlayer:(IvySDPlayer *)player totalTime:(NSTimeInterval)totalTime timePosition:(NSTimeInterval)timePosition {
      NSLog(@"... totalTime:%@ timePosition:%@", @(totalTime), @(timePosition));
  }

缓冲进度

接口说明

缓冲进度

  - (void)ivySDPlayer:(IvySDPlayer *)player bufferingProgress:(CGFloat)progress;

参数说明

参数 说明
player 当前播放器
progress 缓冲进度

示例代码

  - (void)ivySDPlayer:(IvySDPlayer *)player bufferingProgress:(CGFloat)progress {
      NSLog(@"... buffering progress:%@", @(progress));
  }

播放流量

接口说明

播放流量

  - (void)ivySDPlayer:(IvySDPlayer *)player mediaTransmitSpeed:(NSUInteger)transmitSpeed;

参数说明

参数 说明
player 当前播放器
transmitSpeed 流量大小(Kb)

示例代码

  - (void)ivySDPlayer:(IvySDPlayer *)player mediaTransmitSpeed:(NSUInteger)transmitSpeed {
      NSString *text = nil;
      CGFloat mb = transmitSpeed / (1024.f * 1024.f);
      if (mb > 1) {
          text = [NSString stringWithFormat:@"%4.1fMB", mb];
      } else {
          CGFloat kb = transmitSpeed / 1024.f;
          text = [NSString stringWithFormat:@"%4.1fKB",kb];
      }

          NSLog(@"... transmitSpeed:%@", text);
  }

IvySDDownloader SD卡录像下载

IvySDDownloader 类

IvySDDownloader单例

接口说明

IvySDDownloader单例

  + (IvySDDownloader *)shared;

示例代码

下载SD卡录像文件

接口说明

下载SD卡录像文件

  - (void)downloadSDCardRecod:(IvyCamera *)ivyCamera recordObject:(id<IvyRecordObject>)recordObject toURL:(NSURL *)location;

参数说明

参数 说明
ivyCamera 设备对象
recordObject 待下载的SD卡录像对象
location SD卡录像文件存储路径

示例代码

  - (void)downloadWithObject:(id<IvyRecordObject>)obj {

      if ([IvySDDownloader shared].isDownloading) {
          NSLog(@"... is downloading");
          return;
      }

      NSURL *locationURL = nil;

      switch (obj.type) {
          case IvyRecordType0: {
              IvyRecordObject0 *model = (IvyRecordObject0 *)obj;

              NSString *locationStr = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp4", @(model.sTime)]];
              locationURL = [NSURL URLWithString:locationStr];
          }
              break;

          case IvyRecordType1: {
              IvyRecordObject1 *model = (IvyRecordObject1 *)obj;
              NSString *filepath = model.filepath;
              NSString *filename = [NSString stringWithFormat:@"%@.mp4", [[filepath componentsSeparatedByString:@"/"].lastObject componentsSeparatedByString:@"."].firstObject];
              NSString *locationStr = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
              locationURL = [NSURL URLWithString:locationStr];
          }
              break;
      }

      NSLog(@"... locationURL:%@", locationURL.absoluteString);

      [IvySDDownloader shared].delegate = self;
      [[IvySDDownloader shared] downloadSDCardRecod:self.ivyCamera recordObject:obj toURL:locationURL];
  }

取消当前下载

接口说明

取消当前下载

  - (void)cancel;

示例代码

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      if ([IvySDDownloader shared].isDownloading) {
          [[IvySDDownloader shared] cancel];
      }

      [self.player stop];
  }

代理

属性说明

代理

  @property (nonatomic, weak) id<IvySDDownloaderDelegate> delegate;

IvySDDownloaderDelegate 代理

SD卡录像下载成功

接口说明

SD卡录像下载成功

  - (void)ivySDDownloader:(IvySDDownloader *)downloader didFinishDownloadingToURL:(NSURL *)location;

参数说明

参数 说明
downloader IvySDDownloader对象
location SD卡录像文件存储路径

示例代码

  #pragma mark - IvySDDownloaderDelegate
  - (void)ivySDDownloader:(IvySDDownloader *)downloader didFinishDownloadingToURL:(NSURL *)location {
      NSLog(@"... ivySDDownloader didFinishDownloadingToURL:%@", location.absoluteString);
  }

  - (void)ivySDDownloader:(IvySDDownloader *)downloader progress:(CGFloat)progress {
      NSLog(@"... ivySDDownloader progress:%@", @(progress));
  }

  - (void)ivySDDownloader:(IvySDDownloader *)downloader didFinishDownloadingWithError:(IVYIO_RESULT)result {
      NSLog(@"... ivySDDownloader didFinishDownloadingWithError:%@", @(result));
  }

SD卡录像下载进度

接口说明

SD卡录像下载进度

  - (void)ivySDDownloader:(IvySDDownloader *)downloader progress:(CGFloat)progress;

参数说明

参数 说明
downloader IvySDDownloader对象
progress 进度值

说明

progress范围0~1

示例代码

SD卡录像下载失败

接口说明

SD卡录像下载失败

  - (void)ivySDDownloader:(IvySDDownloader *)downloader didFinishDownloadingWithError:(IVYIO_RESULT)result;

参数说明

参数 说明
downloader IvySDDownloader对象
result 失败原因

示例代码

IvyVoicePlayer声波配网

IvyVoicePlayer类

初始化方法

接口说明

初始化方法

  - (instancetype)initWithSSID:(nonnull NSString *)SSID password:(nonnull NSString *)password deviceUID:(nullable NSString *)deviceUID;

参数说明

参数 说明
SSID Wi-Fi SSID
password Wi-Fi 密码
deviceUID 设备UID

返回

IvyVoicePlayer对象

示例代码

  NSString *SSID = kDeviceUID;
  NSString *password = kWiFiPassword;
  NSString *deviceUID = kDeviceUID;

  _voicePlayer = [[IvyVoicePlayer alloc] initWithSSID:SSID password:password deviceUID:deviceUID];
  _voicePlayer.delegate = self;

  [_voicePlayer play];

播放

接口说明

播放

  - (void)play;

示例代码

停止播放

接口说明

停止播放

  - (void)stop;

示例代码

  - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];

      if (_voicePlayer) {
          [_voicePlayer stop];
      }
  }

代理

属性说明

代理

  @property (nonatomic, weak) id<IvyVoicePlayerDelegate> delegate;

IvyVoicePlayerDelegate代理

声波配网完成

接口说明

声波配网完成

  - (void)ivyVoicePlayerDidFinishPlaying:(IvyVoicePlayer *)player successfully:(BOOL)flag;

参数说明

参数 说明
player 当前对象
flag 结果

示例代码

  #pragma mark - IvyVoicePlayerDelegate
  - (void)ivyVoicePlayerDidFinishPlaying:(IvyVoicePlayer *)player successfully:(BOOL)flag {
      NSLog(@"... did Finish Playing flag:%@", @(flag));
  }

  - (void)ivyVoicePlayerDecodeErrorDidOccur:(IvyVoicePlayer *)player error:(NSError * __nullable)error {
      NSLog(@"... decodeErrorDidOccur:%@", error);
  }

声波配网异常

接口说明

声波配网异常

  - (void)ivyVoicePlayerDecodeErrorDidOccur:(IvyVoicePlayer *)player error:(NSError * __nullable)error;

参数说明

参数 说明
player 当前对象
error 异常

示例代码

Ivy数据模型

IvyDevAbility 设备能力集

属性定义

属性说明

属性定义

  @property (nonatomic, assign) NSInteger val0;
  @property (nonatomic, assign) NSInteger val1;
  @property (nonatomic, assign) NSInteger val2;
  @property (nonatomic, assign) NSInteger val3;
  @property (nonatomic, assign) NSInteger val4;
  @property (nonatomic, assign) NSInteger val5;
  @property (nonatomic, assign) NSInteger val6;
  @property (nonatomic, assign) NSInteger val7;
  @property (nonatomic, assign) NSInteger val8;

IvyDevAbility (Helper) 设备能力集Helper

是否支持 sd 卡

属性说明

是否支持 sd 卡

  @property (nonatomic, assign, readonly) BOOL enableSD;

是否支持 outdoor

属性说明

是否支持 outdoor

  @property (nonatomic, assign, readonly) BOOL enableOutdoor;

是否支持 pt

属性说明

是否支持 pt

  @property (nonatomic, assign, readonly) BOOL enablePT;

是否支持 zoom

属性说明

是否支持 zoom

  @property (nonatomic, assign, readonly) BOOL enableZoom;

是否支持 rs485

属性说明

是否支持 rs485

  @property (nonatomic, assign, readonly) BOOL enableRS485;

是否支持 ioAlarm

属性说明

是否支持 ioAlarm

  @property (nonatomic, assign, readonly) BOOL enableIOAlarm;

是否支持 onvif

属性说明

是否支持 onvif

  @property (nonatomic, assign, readonly) BOOL enableOnvif;

是否支持 p2p

属性说明

是否支持 p2p

  @property (nonatomic, assign, readonly) BOOL enableP2P;

是否支持 wps

属性说明

是否支持 wps

  @property (nonatomic, assign, readonly) BOOL enableWPS;

是否支持 监听(设备提示音量调节)

属性说明

是否支持 监听(设备提示音量调节)

  @property (nonatomic, assign, readonly) BOOL enableAudio;

是否支持 对讲

属性说明

是否支持 对讲

  @property (nonatomic, assign, readonly) BOOL enableTalk;

是否支持 全双工对讲

属性说明

是否支持 全双工对讲

  @property (nonatomic, assign, readonly) BOOL enableDuplexVoice;

是否支持 视频参数网络自适应

属性说明

是否支持 视频参数网络自适应

  @property (nonatomic, assign, readonly) BOOL enableNetworkAdapter;

是否支持 分辨率切换和主次码流切换

属性说明

是否支持 分辨率切换和主次码流切换

  @property (nonatomic, assign, readonly) BOOL enableStreamMode;

说明

为NO: 只支持主次码流切换

是否支持 区域选择

属性说明

是否支持 区域选择

  @property (nonatomic, assign, readonly) BOOL enableMotionArea;

是否支持 一键呼叫

属性说明

是否支持 一键呼叫

  @property (nonatomic, assign, readonly) BOOL enableOneKeyCall;

是否支持 夜视计划

属性说明

是否支持 夜视计划

  @property (nonatomic, assign, readonly) BOOL enableNightVisionSchedule;

是否支持 SD卡图片下载

属性说明

是否支持 SD卡图片下载

  @property (nonatomic, assign, readonly) BOOL enableSDCardPictureDownload;

是否支持 dropbox 云存储

属性说明

是否支持 dropbox 云存储

  @property (nonatomic, assign, readonly) BOOL enableDropboxStorage;

说明

NO表示支持百度云存储(fosbaby内外销系列都只支持百度云存储)

是否支持 百度推送

属性说明

是否支持 百度推送

  @property (nonatomic, assign, readonly) BOOL enableBaiduPush;

是否支持 Foscam 推送

属性说明

是否支持 Foscam 推送

  @property (nonatomic, assign, readonly) BOOL enableFoscamPush;

是否支持 Foscam 存储

属性说明

是否支持 Foscam 存储

  @property (nonatomic, assign, readonly) BOOL enableFoscamStorage;

是否支持 Foscam 富媒体推送

属性说明

是否支持 Foscam 富媒体推送

  @property (nonatomic, assign, readonly) BOOL enableFoscamRichPush;

是否支持 Alexa

属性说明

是否支持 Alexa

  @property (nonatomic, assign, readonly) BOOL enableAlexa;

是否支持 7*24 小时云存储

属性说明

是否支持 7*24 小时云存储

  @property (nonatomic, assign, readonly) BOOL enable24HStorage;

是否支持 告警录像时长设置

属性说明

是否支持 告警录像时长设置

  @property (nonatomic, assign, readonly) BOOL enableRecordTimeSet;

是否支持 APP 预置位巡航

属性说明

是否支持 APP 预置位巡航

  @property (nonatomic, assign, readonly) BOOL enablePresetCruise;

是否支持 框外侦测

属性说明

是否支持 框外侦测

  @property (nonatomic, assign, readonly) BOOL enableOutSideDetect;

是否支持 声音侦测

属性说明

是否支持 声音侦测

  @property (nonatomic, assign, readonly) BOOL enableAudioDetect;

是否支持 温度侦测

属性说明

是否支持 温度侦测

  @property (nonatomic, assign, readonly) BOOL enableTemperatureDetect;

是否支持 湿度侦测

属性说明

是否支持 湿度侦测

  @property (nonatomic, assign, readonly) BOOL enableHumidityDetect;

是否支持 PIR侦测

属性说明

是否支持 PIR侦测

  @property (nonatomic, assign, readonly) BOOL enablePIRDetect;

是否支持 IV侦测

属性说明

是否支持 IV侦测

  @property (nonatomic, assign, readonly) BOOL enableIVDetect;

是否支持 人体侦测–爱华盈通

属性说明

是否支持 人体侦测–爱华盈通

  @property (nonatomic, assign, readonly) BOOL enableHumanDetect_aiwinn;

是否支持 人体侦测–珊口

属性说明

是否支持 人体侦测–珊口

  @property (nonatomic, assign, readonly) BOOL enableHumanDetect_sanko;

是否支持 童谣

属性说明

是否支持 童谣

  @property (nonatomic, assign, readonly) BOOL enableBabyMusic;

是否支持 芯片加密

属性说明

是否支持 芯片加密

  @property (nonatomic, assign, readonly) BOOL enableChipEncrypt;

是否支持 SoftAP

属性说明

是否支持 SoftAP

  @property (nonatomic, assign, readonly) BOOL enableSoftAP;

是否支持 EZLink

属性说明

是否支持 EZLink

  @property (nonatomic, assign, readonly) BOOL enableEZLink;

说明

不区分芯片,不表示是否支持IPC扫码

是否支持 PPPoE

属性说明

是否支持 PPPoE

  @property (nonatomic, assign, readonly) BOOL enablePPPoE;

是否支持 夜视红外功能

属性说明

是否支持 夜视红外功能

  @property (nonatomic, assign, readonly) BOOL enableNightIRCut;

是否支持 录像功能

属性说明

是否支持 录像功能

  @property (nonatomic, assign, readonly) BOOL enableRecord;

是否支持 定时重启

属性说明

是否支持 定时重启

  @property (nonatomic, assign, readonly) BOOL enableTimingReset;

是否支持 布撤防

属性说明

是否支持 布撤防

  @property (nonatomic, assign, readonly) BOOL enableDefend;

是否支持 指示灯开关

属性说明

是否支持 指示灯开关

  @property (nonatomic, assign, readonly) BOOL enableLEDLight;

是否支持 小夜灯开关

属性说明

是否支持 小夜灯开关

  @property (nonatomic, assign, readonly) BOOL enableNightLight;

是否支持 扬声器音量控制

属性说明

是否支持 扬声器音量控制

  @property (nonatomic, assign, readonly) BOOL enableVolume;

是否支持 HDR

属性说明

是否支持 HDR

  @property (nonatomic, assign, readonly) BOOL enableHDR;

是否支持 WDR

属性说明

是否支持 WDR

  @property (nonatomic, assign, readonly) BOOL enableWDR;

是否支持 语音提示开关

属性说明

是否支持 语音提示开关

  @property (nonatomic, assign, readonly) BOOL enableVoiceTips;

是否支持 神马全双工算法

属性说明

是否支持 神马全双工算法

  @property (nonatomic, assign, readonly) BOOL enableShenMaDuplexVoice;

是否支持 双马达自动聚焦

属性说明

是否支持 双马达自动聚焦

  @property (nonatomic, assign, readonly) BOOL enable2MotorsAutoFocus;

是否支持 云台巡航看守位

属性说明

是否支持 云台巡航看守位

  @property (nonatomic, assign, readonly) BOOL enablePTCruise;

是否支持 设备名称Unicode

属性说明

是否支持 设备名称Unicode

  @property (nonatomic, assign, readonly) BOOL enableUnicodeDevName;

是否支持 设备休眠

属性说明

是否支持 设备休眠

  @property (nonatomic, assign, readonly) BOOL enableSleep;

IvyDevInfo 设备信息

设备类型

属性说明

设备类型

  @property (nonatomic, assign) NSInteger devType;

平台类型

属性说明

平台类型

  @property (nonatomic, assign) NSInteger platType;

sensor类型

属性说明

sensor类型

  @property (nonatomic, assign) NSInteger sensorType;

wifi类型

属性说明

wifi类型

  @property (nonatomic, assign) NSInteger wifiType;

语言

属性说明

语言

  @property (nonatomic, assign) NSInteger language;

产品名字

属性说明

产品名字

  @property (nonatomic, strong) NSString *productName;

设备名

属性说明

设备名

  @property (nonatomic, strong) NSString *devName;

应用固件版本号

属性说明

应用固件版本号

  @property (nonatomic, strong) NSString *firmwareVersion;

系统固件版本号

属性说明

系统固件版本号

  @property (nonatomic, strong) NSString *hardwareVersion;

序列号

属性说明

序列号

  @property (nonatomic, strong) NSString *serialNo;

设备UID

属性说明

设备UID

  @property (nonatomic, strong) NSString *uid;

MAC 地址

属性说明

MAC 地址

  @property (nonatomic, strong) NSString *mac;

OEM 码

属性说明

OEM 码

  @property (nonatomic, assign) NSInteger oemCode;

IvyDevLan 局域网搜索

Mac地址

属性说明

Mac地址

  @property (nonatomic, strong) NSString *mac;

设备名

属性说明

设备名

  @property (nonatomic, strong) NSString *name;

IP地址

属性说明

IP地址

  @property (nonatomic, strong) NSString *ip;

mask

属性说明

mask

  @property (nonatomic, assign) NSInteger mask;

NDS

属性说明

NDS

  @property (nonatomic, assign) NSInteger dns;

类型 0:FOSIPC_H264 1:FOSIPC_MJ 2: FOSIPC_UNKNOW

属性说明

类型 0:FOSIPC_H264 1:FOSIPC_MJ 2: FOSIPC_UNKNOW

  @property (nonatomic, assign) NSInteger type;

端口

属性说明

端口

  @property (nonatomic, assign) NSInteger port;

DHCP 是否开启

属性说明

DHCP 是否开启

  @property (nonatomic, assign) NSInteger dhcp_enabled;

设备UID

属性说明

设备UID

  @property (nonatomic, strong) NSString *uid;

IvyMotionDetect 移动侦测告警协议

移动侦测告警类类型

属性说明

移动侦测告警类类型

  @property (nonatomic, assign, readonly) IvyMotionDetectType type;

IvyMotionDetectObject0 移动侦测告警模型1

开关

属性说明

开关

  @property (nonatomic, assign) NSInteger isEnable;

说明

0:关 1:开

移动侦测开关

属性说明

移动侦测开关

  @property (nonatomic, assign) NSInteger isMovAlarmEnable;

说明

0:关 1:开

PIR侦测开关

属性说明

PIR侦测开关

  @property (nonatomic, assign) NSInteger isPirAlarmEnable;

说明

0:关 1:开

联动

属性说明

联动

  @property (nonatomic, assign) NSInteger linkage;

说明

Bit0:Ring Bit1:发送邮件 Bit2:截图 Bit3:录像 Bit4:Io输出 Bit5:截图上云 Bit6:录像上云 Bit7:手机推送

抓拍间隔秒

属性说明

抓拍间隔秒

  @property (nonatomic, assign) NSInteger snapInterval;

敏感度

属性说明

敏感度

  @property (nonatomic, assign) NSInteger sensitivity;

触发间隔

属性说明

触发间隔

  @property (nonatomic, assign) NSInteger triggerInterval;

周日

属性说明

周日

  @property (nonatomic, assign) long long schedule0;

说明

bit0-bit47表示一天,每个bit表示半个小时

281474976710655: 表示全天

246290738806799: 表示00:00 ~ 02:00、07:30 ~ 13:30、22:30 ~ 24:00

周一

属性说明

周一

  @property (nonatomic, assign) long long schedule1;

周二

属性说明

周二

  @property (nonatomic, assign) long long schedule2;

周三

属性说明

周三

  @property (nonatomic, assign) long long schedule3;

周四

属性说明

周四

  @property (nonatomic, assign) long long schedule4;

周五

属性说明

周五

  @property (nonatomic, assign) long long schedule5;

周六

属性说明

周六

  @property (nonatomic, assign) long long schedule6;

侦测告警区域

属性说明

侦测告警区域

  @property (nonatomic, assign) NSInteger areas0;
  @property (nonatomic, assign) NSInteger areas1;
  @property (nonatomic, assign) NSInteger areas2;
  @property (nonatomic, assign) NSInteger areas3;
  @property (nonatomic, assign) NSInteger areas4;
  @property (nonatomic, assign) NSInteger areas5;
  @property (nonatomic, assign) NSInteger areas6;
  @property (nonatomic, assign) NSInteger areas7;
  @property (nonatomic, assign) NSInteger areas8;
  @property (nonatomic, assign) NSInteger areas9;

说明

侦测告警区域被划分成10 * 10个小区域,每一个areas表示画面上某一行的10个区域,一共10个areas,areas按位表示,取值范围为0~1023

IvyMotionDetectObject1 移动侦测告警模型2

开关

属性说明

开关

  @property (nonatomic, assign) NSInteger isEnable;

说明

0:关 1:开

移动侦测开关

属性说明

移动侦测开关

  @property (nonatomic, assign) NSInteger isMovAlarmEnable;

说明

0:关 1:开

PIR侦测开关

属性说明

PIR侦测开关

  @property (nonatomic, assign) NSInteger isPirAlarmEnable;

说明

0:关 1:开

联动

属性说明

联动

  @property (nonatomic, assign) NSInteger linkage;

说明

Bit0:Ring Bit1:发送邮件 Bit2:截图 Bit3:录像 Bit4:Io输出 Bit5:截图上云 Bit6:录像上云 Bit7:手机推送

抓拍间隔秒

属性说明

抓拍间隔秒

  @property (nonatomic, assign) NSInteger snapInterval;

触发间隔

属性说明

触发间隔

  @property (nonatomic, assign) NSInteger triggerInterval;

周日

属性说明

周日

  @property (nonatomic, assign) long long schedule0;

说明

bit0-bit47表示一天,每个bit表示半个小时

281474976710655: 表示全天

246290738806799: 表示00:00 ~ 02:00、07:30 ~ 13:30、22:30 ~ 24:00

周一

属性说明

周一

  @property (nonatomic, assign) long long schedule1;

周二

属性说明

周二

  @property (nonatomic, assign) long long schedule2;

周三

属性说明

周三

  @property (nonatomic, assign) long long schedule3;

周四

属性说明

周四

  @property (nonatomic, assign) long long schedule4;

周五

属性说明

周五

  @property (nonatomic, assign) long long schedule5;

周六

属性说明

周六

  @property (nonatomic, assign) long long schedule6;

侦测区域

属性说明

三个侦测区域

  @property (nonatomic, assign) NSInteger x0;
  @property (nonatomic, assign) NSInteger x1;
  @property (nonatomic, assign) NSInteger x2;
  @property (nonatomic, assign) NSInteger y0;
  @property (nonatomic, assign) NSInteger y1;
  @property (nonatomic, assign) NSInteger y2;
  @property (nonatomic, assign) NSInteger width0;
  @property (nonatomic, assign) NSInteger width1;
  @property (nonatomic, assign) NSInteger width2;
  @property (nonatomic, assign) NSInteger height0;
  @property (nonatomic, assign) NSInteger height1;
  @property (nonatomic, assign) NSInteger height2;

说明

第一个区域: Rect(x0, y0, width0, height0)

第二个区域: Rect(x1, y1, width1, height1)

第三个区域: Rect(x2, y2, width2, height2)

第一个区域告警敏感度

属性说明

第一个区域告警敏感度

  @property (nonatomic, assign) NSInteger sensitivity0;

第二个区域告警敏感度

属性说明

第二个区域告警敏感度

  @property (nonatomic, assign) NSInteger sensitivity1;

第三个区域告警敏感度

属性说明

第三个区域告警敏感度

  @property (nonatomic, assign) NSInteger sensitivity2;

是否开启第一个区域侦测告警

属性说明

是否开启第一个区域侦测告警

  @property (nonatomic, assign) NSInteger valid0;

是否开启第二个区域侦测告警

属性说明

是否开启第二个区域侦测告警

  @property (nonatomic, assign) NSInteger valid1;

是否开启第三个区域侦测告警

属性说明

是否开启第三个区域侦测告警

  @property (nonatomic, assign) NSInteger valid2;

IvyAudioDetect 声音侦测告警

开关

属性说明

开关

  @property (nonatomic, assign) NSInteger isEnable;

说明

0:关 1:开

联动

属性说明

联动

  @property (nonatomic, assign) NSInteger linkage;

说明

Bit0:Ring Bit1:发送邮件 Bit2:截图 Bit3:录像 Bit4:Io输出 Bit5:截图上云 Bit6:录像上云 Bit7:手机推送

敏感度

属性说明

敏感度

  @property (nonatomic, assign) NSInteger sensitivity;

触发间隔

属性说明

触发间隔

  @property (nonatomic, assign) NSInteger triggerInterval;

抓拍间隔

属性说明

抓拍间隔

  @property (nonatomic, assign) NSInteger snapInterval;

周日

属性说明

周日

  @property (nonatomic, assign) long long schedule0;

说明

bit0-bit47表示一天,每个bit表示半个小时

281474976710655: 表示全天

246290738806799: 表示00:00 ~ 02:00、07:30 ~ 13:30、22:30 ~ 24:00

周一

属性说明

周一

  @property (nonatomic, assign) long long schedule1;

周二

属性说明

周二

  @property (nonatomic, assign) long long schedule2;

周三

属性说明

周三

  @property (nonatomic, assign) long long schedule3;

周四

属性说明

周四

  @property (nonatomic, assign) long long schedule4;

周五

属性说明

周五

  @property (nonatomic, assign) long long schedule5;

周六

属性说明

周六

  @property (nonatomic, assign) long long schedule6;

IvyPedestrianDetect 人体侦测告警

开关

属性说明

开关

  @property (nonatomic, assign) BOOL isEnable;

追踪开关

属性说明

追踪开关

  @property (nonatomic, assign) BOOL isTrackEnable;

联动告警

属性说明

联动告警

  @property (nonatomic, assign) NSInteger linkage;

灵敏度

属性说明

灵敏度

  @property (nonatomic, assign) NSInteger sensitivity;

说明

0:low 1:middle 2:high

抓拍时间间隔

属性说明

抓拍时间间隔

  @property (nonatomic, assign) NSInteger snapInterval;

触发时间间隔

属性说明

触发时间间隔

  @property (nonatomic, assign) NSInteger triggerInterval;

IvyScheduleRecordConfig 计划录像配置

是否开启计划录像

属性说明

是否开启计划录像

  @property (nonatomic, assign) BOOL isEnable;

录像级别

属性说明

录像级别

  @property (nonatomic, assign) NSInteger recordLevel;

空间满后录像处理方式

属性说明

空间满后录像处理方式

  @property (nonatomic, assign) NSInteger spaceFullMode;

说明

0:覆盖 1:停止

是否包含音频

属性说明

是否包含音频

  @property (nonatomic, assign) NSInteger isEnableAudio;

说明

0:不包含音频 1:包含音频

录像码流类型

属性说明

录像码流类型

  @property (nonatomic, assign) NSInteger streamType;

说明

0:主码流 1:子码流

周日

属性说明

周日

  @property (nonatomic, assign) long long schedule0;

说明

bit0-bit47表示一天,每个bit表示半个小时

281474976710655: 表示全天

246290738806799: 表示00:00 ~ 02:00、07:30 ~ 13:30、22:30 ~ 24:00

周一

属性说明

周一

  @property (nonatomic, assign) long long schedule1;

周二

属性说明

周二

  @property (nonatomic, assign) long long schedule2;

周三

属性说明

周三

  @property (nonatomic, assign) long long schedule3;

周四

属性说明

周四

  @property (nonatomic, assign) long long schedule4;

周五

属性说明

周五

  @property (nonatomic, assign) long long schedule5;

周六

属性说明

周六

  @property (nonatomic, assign) long long schedule6;

IvySDInfo SD卡信息

是否存在SD卡

属性说明

是否存在SD卡

  @property (nonatomic, assign) BOOL isExist;

SD的剩余空间

属性说明

SD的剩余空间

  @property (nonatomic, assign) unsigned long long freeSpace;

SD卡总空间

属性说明

SD卡总空间

  @property (nonatomic, assign) unsigned long long totalSpace;

IvyRecordList SD卡录像列表

Total number of videos

属性说明

Total number of videos

  @property (nonatomic, assign) NSInteger totalCnt;

Start number

属性说明

Start number

  @property (nonatomic, assign) NSInteger startNo;

Video list

属性说明

Video list

  @property (nonatomic, strong) NSArray<id<IvyRecordObject>> *list;

IvyRecordObject SD卡录像信息协议

录像对象类类型

属性说明

录像对象类类型

  @property (nonatomic, assign, readonly) IvyRecordType type;

IvyRecordObject0 SD卡录像信息模型1

通道号

属性说明

通道号

  @property (nonatomic, assign) NSInteger channel;

录像开始时间

属性说明

录像开始时间

  @property (nonatomic, assign) long long sTime;

录像结束时间

属性说明

录像结束时间

  @property (nonatomic, assign) long long eTime;

录像类型

属性说明

录像类型

  @property (nonatomic, assign) NSInteger recordType;

IvyRecordObject1 SD卡录像信息模型2

录像路径

属性说明

录像路径

  @property (nonatomic, strong) NSString *filepath;

IvyPictureList SD卡图片列表

通道号

属性说明

通道号

  @property (nonatomic, assign) NSInteger channel;

总数

属性说明

总数

  @property (nonatomic, assign) NSUInteger totalCount;

当前计数

属性说明

当前计数

  @property (nonatomic, assign) NSUInteger curCount;

照片列表

属性说明

照片列表

  @property (nonatomic, strong) NSArray<IvyPictureInfo *> *list;

IvyPictureInfo SD卡图片

图片格式

属性说明

图片格式

  @property (nonatomic, assign) NSInteger format;

时间戳

属性说明

时间戳

  @property (nonatomic, assign) unsigned long long time;

图片类型

属性说明

图片类型

  @property (nonatomic, assign) NSInteger type;

IvyDevTime 设备时间

属性说明

  @property (nonatomic, assign) NSInteger year;

属性说明

  @property (nonatomic, assign) NSInteger month;

属性说明

  @property (nonatomic, assign) NSInteger day;

小时

属性说明

小时

  @property (nonatomic, assign) NSInteger hour;

分钟

属性说明

分钟

  @property (nonatomic, assign) NSInteger min;

属性说明

  @property (nonatomic, assign) NSInteger sec;

ntp服务器

属性说明

ntp服务器

  @property (nonatomic, strong) NSString *ntpServer;

日期格式

属性说明

日期格式

  @property (nonatomic, assign) NSInteger dateFormat;

说明

0:YYYY-MM-DD 1:DD/MM/YYYY 2:MM/DD/YYYY

夏令时时长

属性说明

夏令时时长

  @property (nonatomic, assign) NSInteger dst;

是否有夏令时

属性说明

是否有夏令时

  @property (nonatomic, assign) NSInteger isDst;

说明

0:没有夏令时 1:有夏令时

时间格式

属性说明

时间格式

  @property (nonatomic, assign) NSInteger timeFormat;

说明

0:24小时 1:12小时

时间来源

属性说明

时间来源

  @property (nonatomic, assign) NSInteger timeSource;

说明

0:NTP 1:手动同步

时区

属性说明

时区

  @property (nonatomic, assign) NSInteger timeZone;

IvyWiFiDetail Wi-Fi信息

SSID

属性说明

SSID

  @property (nonatomic, strong) NSString *ssid;

Mac

属性说明

Mac

  @property (nonatomic, strong) NSString *mac;

是否加密

属性说明

是否加密

  @property (nonatomic, assign) BOOL encryption;

信号质量

属性说明

信号质量

  @property (nonatomic, assign) NSInteger quality;

说明

(0-100) 值越大,信号质量越高

模式

属性说明

模式

  @property (nonatomic, assign) NSInteger mode;

加密类型

属性说明

加密类型

  @property (nonatomic, assign) NSInteger encryptType;

IvyWiFiConfig Wi-Fi搜索信息

SSID

属性说明

SSID

  @property (nonatomic, strong) NSString *ssid;

Wi-Fi 加密类型

属性说明

Wi-Fi 加密类型

  @property (nonatomic, assign) NSInteger encryptType;

IvyStreamParam 视频流

GOP

属性说明

GOP

  @property (nonatomic, assign) int GOP;

bitRate

属性说明

bitRate

  @property (nonatomic, assign) int bitRate;

frameRate

属性说明

frameRate

  @property (nonatomic, assign) int frameRate;

isVBR

属性说明

isVBR

  @property (nonatomic, assign) int isVBR;

resolution

属性说明

resolution

  @property (nonatomic, assign) int resolution;

IvyPresetPoint 预置点

结果

属性说明

结果

  @property (nonatomic, assign) NSInteger result;

说明

0: 成功 1:预置点不存在 2:参数错误 3: 添加出厂预置点 4: 已存在

预置点名称

属性说明

预置点名称

  @property (nonatomic, strong) NSArray<NSString *> *pointNames;

IvyOSDSettings OSD

是否显示OSD

属性说明

是否显示OSD

  @property (nonatomic, assign) BOOL isEnableOSDMask;

是否显示时间戳

属性说明

是否显示时间戳

  @property (nonatomic, assign) BOOL isEnableTimeStamp;

是否显示设备名称

属性说明

是否显示设备名称

  @property (nonatomic, assign) BOOL isEnableDevName;

是否显示温度、湿度

属性说明

是否显示温度、湿度

  @property (nonatomic, assign) BOOL isEnableTempAndHumid;

dispPos

属性说明

dispPos

  @property (nonatomic, assign) NSInteger dispPos;
文档更新时间: 2023-07-20 19:24   作者:庄小婵