局域网搜索摄像机
版本/作者/日期 | 修改内容 |
---|---|
1.0/Sandy/2015-09-24 | 初版 |
2.局域网搜索摄像机
条件:sdk初始化成功
语法:
1)函数
+(int)startSearch;//开始搜索 +(void)stopSearch;//停止搜索
2)消息
FOUNDATION_EXPORT NSString* const IPCamera_Search_Result_Notification;
3)消息回调函数
-(void)IPCamera_response_function:(NSNotification*)note;
IPCamera.h宏定义了两种注册消息的方法
#define ADD_IPCAMERA_RESPONSE_WITHOUT_ARG(notice_name) \ [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(IPCamera_response_function:) name: notice_name object: nil] #define ADD_IPCAMERA_RESPONSE_WITH_ARG(notice_name,camera_object) \ [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(IPCamera_response_function:) name: notice_name object: camera_object]
示列:
1)注册消息通知+搜索
ADD_IPCAMERA_RESPONSE_WITH_ARG( IPCamera_Search_Result_Notification, cam_) [IPCamera startSearch ];
2)搜索消息回调
-(void)IPCamera_response_function:(NSNotification*)note { if( [note.name isEqualToString: IPCamera_Search_Result_Notification ]) { if (note.userInfo) { NSLog(@"搜索结果返回:搜索到摄像机了"); NSNumber* result = [ dic objectForKey:@"result"];//搜索结果,参考IPCamera_Search_Result,根据不同类型做删除,连接,添加等动作 IPCamera_Search_Result option = [result intValue ]; if ( CAM_SEARCH_ADD == option){ //搜索到设备了,开始获取摄像机属性添加 [self m_get_cam_infomation: note.userInfo ]; //执行相关动作} else if ( CAM_SEARCH_REMOVE == option){ //搜索到设备已删除了,需在本地删除 NSLog(@"摄像机已删除,此时需在本地删除摄像机");} else if ( CAM_SEARCH_CHANGED == option){ NSLog(@"搜索到的结果有改变");} } else { NSLog(@"搜索结果返回:没有找到摄像机"); } } }
3)获取摄像机属性
-(void)m_get_cam_infomation:(NSDictionary*)dic { [dic objectForKey:@"name"]; //名称 [dic objectForKey:@"ID"]; //id [dic objectForKey:@"currect_ip"]; //IP host [dic objectForKey:@"port"]; //端口号 [dic objectForKey:@"currect_netmask"]; //子网掩码 [dic objectForKey:@"https_flag"];//ssl是否加密传输,1是0否 [dic objectForKey:@"dhcp_flag"]; // //是否启动DHCP 1启用0不启用 [dic objectForKey:@"firmware_version"]; //系统固件版本号 [dic objectForKey:@"web_version"]; //网页固件版本号 [dic objectForKey:@"model"]; //机型 参考IPCamera_Model [dic objectForKey:@"id_type"]; //id类型,参考IPCamera_ID_TYPE [dic objectForKey:@"dns1"]; //不启用DHCP时的DNS1 [dic objectForKey:@"dns2"]; //不启用DHCP时的DNS2 [dic objectForKey:@"ip"]; //不启用DHCP时的IP [dic objectForKey:@"netmask"]; //不启用DHCP时的子网掩码 [dic objectForKey:@"gateway"];////不启用DHCP时的网关 [dic objectForKey:@"same_subnet"]; }
4)停止搜索
[IPCamera stopSearch ];