#ifdef APP_VIGI
#import <SurveillanceCore/TPSSBaseDevice.h>
#import <SurveillanceCore/TPSSShareInfo.h>
#import <SurveillanceCore/TPSSDeviceForSetting.h>
#import <SurveillanceCore/TPSSSolarInfo.h>
#else
#import <OmadaSurveillanceCore/TPSSBaseDevice.h>
#import <OmadaSurveillanceCore/TPSSShareInfo.h>
#import <OmadaSurveillanceCore/TPSSDeviceForSetting.h>
#import <OmadaSurveillanceCore/TPSSSolarInfo.h>
#endif
@class TPSSShareDevicePermissionInfo;
//@class TPSSSolarDayStat;
//@class TPSSSolarMonthStat;
//@class TPSSSolarRule;
//@class TPSSSolarSystemStatus;
NS_ASSUME_NONNULL_BEGIN
/**
设备列表页面使用的数据结构
*/
@interface TPSSDeviceForDeviceList : TPSSBaseDevice <TPSSGroupDefenceModeSettings>
@property (nonatomic, readonly) NSString *alias;
@property (nonatomic, readonly) NSString *ip;
@property (nonatomic, readonly) int httpsVersion;
@property (nonatomic, readonly) NSString *cloudDeviceId;
@property (nonatomic, readonly) NSInteger activeChannelNums;
@property (nonatomic, readonly) NSInteger maxChannelNums;
@property (nonatomic, readonly) BOOL isUnformatSD;
@property (nonatomic, readonly) BOOL isDilatantDiskDetectStatus;
@property (nonatomic, readonly) BOOL isDilatantSuspectDiskDetectStatus;
@property (nonatomic, readonly) BOOL isLowSpeedDiskDetectStatus;
@property (nonatomic, readonly) BOOL supportsPreview;
@property (nonatomic, readonly) BOOL supportsPlayback;
@property (nonatomic, readonly) BOOL supportsCloudControl;
@property (nonatomic, readonly) BOOL supportsShare;
@property (nonatomic, readonly) BOOL supportMessage;
@property (nonatomic, readwrite) BOOL supportFishEye;
@property (nonatomic, readwrite) BOOL supportFishEyeCorrection;
@property (nonatomic, readwrite) BOOL supportPano;
@property (nonatomic, readwrite) BOOL isDeviceLocked; //仅用于批量任务构建的临时设备列表标识是否被锁
//鱼眼参数
@property (nonatomic, readonly) TPSSFishEyeCapability *fisheyeCapability;
@property (nonatomic, readonly) BOOL supportCloudStorage;
@property (nonatomic, readonly) BOOL supportDeviceAlarm;
@property (nonatomic, readonly) NSString *imageDownloadVersion;
@property (nonatomic, readonly) BOOL supportsReonboarding;
@property (nonatomic, readonly) BOOL supportMultiSensors;
@property (nonatomic, readonly) NSString *model;
@property (nonatomic, readonly) NSString *mac;
@property (nonatomic, readonly) NSString *hardwareVersion;
@property (readonly) TPSSDeviceType displayType;
@property (readonly) NSString *displayName;
@property (nonatomic) BOOL messageEnable;
@property (nonatomic) long long siteId;
@property (nonatomic) long long vmsDevId;
@property (nonatomic, readonly) BOOL isLicenseNotActive; //CloudVms 设备是否未激活 /* false:设备已激活 true:设备未激活 license */
@property (nonatomic, assign) BOOL isFirstDeviceInSite;
@property (nonatomic, readonly) NSString *sitePathName;
@property (nonatomic, readonly) TPSSVMSSiteRoleType vmsRoleType;
@property (nonatomic, readonly) BOOL isVmsVirtualNvr;
@property (nonatomic) BOOL isVMSFavorited;
/**
if supports lens mask for IPC. (always false for nvr now)
*/
@property (nonatomic, readonly) BOOL supportVideoCover;
@property (nonatomic, readonly) BOOL hasChannels;
@property (nonatomic) NSArray <TPSSChannelInfo *> *channelsInfo; // channels (might not include hidden channels)
@property (nonatomic, readonly) NSArray <TPSSChannelInfo *> *activeChannelsInfo; // channels (with device)
@property (nonatomic, readonly) NSArray <TPSSChannelInfo *> *allChannelsInfo; // all channels
@property (nullable, nonatomic, readonly) NSArray <TPSSDeviceSDInfo *> *deviceSDInfos;
//share
@property (nonatomic, readonly) NSString *ownerID;
@property (nonatomic, readonly) BOOL isSharing;
@property (nonatomic, readonly) BOOL isSharedDevice;
@property (nonatomic, readonly) BOOL isInSharePeriod;
@property (nonatomic, readonly) BOOL isShareEnable;
@property (nonatomic, readonly) NSString *firmwareVersion;
@property (nonatomic, readonly) NSString *releaseFirmwareVersion;
@property (nonatomic, readonly) BOOL needUpgrade;
@property (nonatomic) BOOL isAlarmOnAtHome;
@property (nonatomic) BOOL isAlarmOnOutDoor;
@property (nonatomic) BOOL isDeviceAlarmAtHome;
@property (nonatomic) BOOL isDeviceAlarmOutDoor;
@property (nonatomic) BOOL isVideoCoverAtHome;
@property (nonatomic) BOOL isVideoCoverOutDoor;
@property (nonatomic, readonly) BOOL isBound;
//wifi
@property (nonatomic, readonly) NSString *ssid;
@property (nonatomic, readonly) BOOL hasConfigWifiPassword;
/** 无线设备连接信息 **/
@property (nonatomic, readonly) BOOL supportConnectInfo;
@property (nonatomic, readonly) TPSSDeviceLinkType linkType;
@property (nonatomic, readonly) NSInteger linkRssi;
@property (nonatomic, readonly) NSString *offlineTime;
@property (nonatomic, readonly) NSString *qrcode;
/// 设备管理类型 remote=0 | local=1 | direct=2 | onboard=3 | unbind=4 | all=5
/// 初始化时由外界输入
/// - Note 关联IPCDevice->IPCDeviceInfo.iState
/// - Note 其实设备是可以同时存在多种类型的,比如remote和local。之所以存在这个字段,应该是因为最初的交互和UI设计不同管理类型的设备是隔离的?
@property (nonatomic, readonly) TPSSDeviceListType listType;
/// 设备在当前的管理类型(listType)下是否在线
@property (nonatomic, readonly) BOOL online;
/// 本地设备是否在线,此参数仅用来判断当本地设备底层离线时,判断是否是因为验证不通过导致的,true为验证未通过 false为确实离线, 对应底层bValid
@property (nonatomic, readonly) BOOL onlineForLocalShow;
/// 出厂状态 unknow=-1 | no=0 | yes=1
/// 初始化时根据IPCDevice信息确定
/// - Note 关联IPCDevice.pcFactoryDefault
@property (nonatomic, readonly) TPSSDeviceFactoryStatus factoryStatus;
// media encrypt
@property (nonatomic, readonly) BOOL supportMediaEncrypt;
@property (nonatomic, readonly) BOOL supportFlicker;
@property (nonatomic, readonly) BOOL supportLanguage;
@property (nonatomic, readonly) NSArray<NSString *> *languageList;
@property (nonatomic, readonly) BOOL supportLocation;
@property (nonatomic, readonly) NSString *location;
//用于消息通知设备管理(判断是否支持消息推送)
@property (nonatomic, readonly) BOOL isSupportMessagePush;
// 已经分享的人数
@property (nonatomic, readonly) NSInteger sharingUserNum;
@property (nonatomic, readonly) NSInteger sharingNvrTotalUserCount;
// 当前是否正在分享
// 用于列表展示
@property (nonatomic, readonly) BOOL isDeviceSharing;
@property (nonatomic, readonly) BOOL isSharedFromOthers;
@property (nonatomic, readonly) NSString *deviceOwnerName;
@property (nonatomic, readonly) BOOL isSupportShare;
@property (nonatomic, readonly) TPSSShareDevicePermission2 *shareDevicePermissionInfo;
//收藏相关字段
@property (nonatomic) BOOL isCollected;
@property (nonatomic) NSArray <NSNumber *> *collectChannels;
//////////////////太阳能设备相关
//太阳能设备当天图表信息
@property (nonatomic, readonly) TPSSSolarDayStat *solarDayStat;
//获取太阳能设备当月图表信息
@property (nonatomic, readonly) TPSSSolarMonthStat *solarMonthStat;
//负载供电时间规则
@property (nonatomic, readonly) NSArray <TPSSSolarRule *> *solarRules;
// 太阳能系统信息
@property (nonatomic, readonly) TPSSSolarSystemStatus *solarSystemStatus;
/// 根据IPCDEVICE初始化
/// @param pDevice IPCDEVICE *
/// @param listType <#listType description#>
/// @param includeHidden <#includeHidden description#>
- (instancetype) initWithDevice:(void *)pDevice type:(TPSSDeviceListType)listType includeHiddenChannels:(BOOL)includeHidden;
/// VMS设备列表需要, 根据底层DeviceBasicInfo初始化, 仅包含设备列表展示的必要数据
///
/// @param pDevice IPCDeviceListBasicInfo *
/// @param listType 设备列表类型
/// @param includeHidden 是否需要包含NVR隐藏通道
- (instancetype) initWithBasicDevice:(void *)pDevice
type:(TPSSDeviceListType)listType
includeHiddenChannels:(BOOL)includeHidden;
- (NSArray<TPSSChannelInfo *> *)getNVRChannelsSharedFromOthers;
- (TPSSVMSSiteRoleType)convertRoleTypeFromeCType:(int)type;
- (BOOL)isSupportFishEye: (NSInteger)iChannelID;
- (BOOL)isSupportFishEyeCorrection: (NSInteger)iChannelID;
- (BOOL)isSupportPano: (NSInteger)iChannelID;
@end
NS_ASSUME_NONNULL_END
最新发布