日前根据公司需求需要对接海康威视的硬件设备信息。因此特地研究了其开发文档。
萤石开发文档:https://open.ys7.com/help/82
根据业务需求;报警设备安装到所需地址;有人按报警后我们系统会接受该报警消息;可以远程对该报警设备进行操作,比如一键消警。
首先到萤石平台注册开发账号(https://open.ys7.com/cn/s/index)
其次,会得到账号的一些私钥等信息。
然后调用萤石文档提供的获取token接口;可以获取token 信息;每次生成的token有效期是七天。根据自己业务需求可以进行token保存处理。
最后就是利用token进行获取设备信息等操作。
private static Logger logger= LoggerFactory.getLogger(DeviceInfoApi.class);
/**
* 网关设备信息获取
* @param apiMap
* @return
*/
public static String getDeviceInfoList(String token,String url,String pageStart,String pageSize) throws Exception {
Map<String, String> map= new HashMap<>();
map.put("accessToken",token);
//分页默认0
map.put("pageStart",pageStart);
//分页大小,默认为10,最大为50:50无效;设置为50返回数据仍为10
map.put("pageSize",pageSize);
String jsonStr = HttpClientUtil.doPost(url,map);
return jsonStr;
}
/**
*
* 获取网关设备明细信息
* @return
*
*/
public static String getGatWayDeviceDetail(String token,String url,String deviceSerial){
String message=null;
Map<String, String> param=new HashMap<>();
param.put("accessToken",token);
//设备序列号,存在英文字母的设备序列号,字母需为大写
param.put("deviceSerial",deviceSerial);
message = HttpClientUtil.doPost(url,param);
logger.info(message);
return message;
}
/**
*
* 根据网关查询子设备信息列表
* @return
*
*/
public static String getGatWaySonDeviceList(String token,String url,String deviceSerial){
String message=null;
Map<String, String> param=new HashMap<>(10);
param.put("accessToken",token);
//HUB设备序列号,存在英文字母的设备序列号,字母需为大写
param.put("deviceSerial",deviceSerial);
message = HttpClientUtil.doPost(url,param);
logger.info(message);
return message;
}
public static String getAccessToken(){
//获取token信息
String requestUrl = "https://open.ys7.com/api/lapp/token/get";
String access = null;
try {
Map<String, String> param=new HashMap<>();
param.put("appKey",appKey);
param.put("appSecret",appSecret);
String resmsg = HttpClientUtil.doPost(requestUrl,param);
JsonNode node = mapper.readTree(resmsg);
access = node.get("data").get("accessToken").asText();
}
catch (Exception e)
{
e.printStackTrace();
}
return access;
}
/**
*
* 获取摄像头列表
* @return
*
*/
public static String getCameraDeviceList(String token,String url,String pageStart,String pageSize){
String message=null;
Map<String, String> param=new HashMap<>(10);
param.put("accessToken",token);
//分页默认0
param.put("pageStart",pageStart);
//分页大小,默认为10,最大为50
param.put("pageSize",pageSize);
message = HttpClientUtil.doPost(url,param);
logger.info(message);
return message;
}
/**
*一键取消报警
* @return
*/
public static String cancelCall(String url,String token,String deviceSerial){
String message=null;
Map<String, String> param=new HashMap<>(10);
param.put("accessToken",token);
param.put("deviceSerial",deviceSerial);
message = HttpClientUtil.doPost(url,param);
logger.info(message);
return message;
}
/**
*
* 根据设备序列号获取摄像头播放地址
* accessToken:token
* deviceSerial:设备序列号
* channelNo:通道号
* @return
*/
public static String getCameraLivingRomme(String url,String token,String deviceSerial,String channelNo ){
String mes = null;
Map<String, String> param=new HashMap<>(10);
param.put("accessToken",token);
//硬盘录像机设备序列表
param.put("deviceSerial",deviceSerial);
//通道号(表示不同摄像头):默认为1
param.put("channelNo",channelNo);
mes = HttpClientUtil.doPost(url,param);
return mes;
}
}
关于对接海康威视开发文档;就这么多了;其次还有就是硬件接口的对接。