Быстрое подключение к платформе JFTECH Cloud, через которую можно управлять камерами вверх, вниз, влево, вправо, увеличивать и уменьшать изображение. Если ваша камера управляется одним из следующих приложений, вы можете использовать этот плагин для управления: [Super Kan Kan, XMEye, JFTECH Development Assistant, BeeCloud SaaS, JFTECH Kan Kan, EYE-U, 5G Kan Kan, Xiongmai Kan Kan, JFEye; англоязычное название icsee]. Все приложения, разработанные HANGZHOU JFTECH CO., LTD, могут использовать этот плагин. Исходный код
- API официального сайта JFTECH Cloud довольно понятен, но требует передачи большого количества параметров, что делает его сложным. Обычные RestTemplate или HTTP-коды требуют много времени для написания. Поэтому на основе официального SDK этот интерфейс упакован в JAR-файл для использования, чтобы избежать появления избыточного кода в собственном бизнесе.
Платформа JFTECH Cloud### API официального сайта JFTECH Официальная документация
Чтобы позволить пользователям быстро подключаться к API платформы JFTECH Cloud.
- Введение зависимости в pom.xml
<dependency>
<groupId>io.gitee.renkai721</groupId>
<artifactId>jftech-camera</artifactId>
<version>1.0.0</version>
</dependency>
- Инициализация
JLinkClient jClient = new JLinkClient(
"e0534f3240274897821a126be19b6d46",
"5b027c14d371332e88a9cbae30375ee7",
"fd664d5fa6974ec09023818f68b23212",
5);
// Инициализация устройства
JLinkDevice jDevice = new JLinkDevice(jClient, "1234567890123457", "device Username", "device password");
- Привязка устройства
String url = String.format("%s/%s", JLinkDomain.OPENAPI_DOMAIN.get(), JLinkDeviceRequestUrl.DEVICE_BIND.get());
Map<String, String> bodyParam = new HashMap<>();
bodyParam.put("sn", "1234567890123457");
JLinkHttpUtil.httpsRequest(url, "POST", JLinkHeaderUtil.map(jClient), new Gson().toJson(bodyParam));
- Получение токена доступа устройства (deviceToken)
String deviceToken = jDevice.getDeviceToken();
- Получение состояния устройства
DeviceStatusData statusResponse = jDevice.deviceStatus();
- Получение URL потока для прямой трансляции устройства
// Этот метод возвращает поток в формате h265
JLinkUser jUser = new JLinkUser(jClient);
String liveStream = jDevice.deviceLivestream(DeviceLiveStreamEnum.STREAM_EXTRA.get(), DeviceLiveStreamEnum.MEDIATYPE_HLS.get(), DeviceLiveStreamEnum.PROTOCOL_TS.get(), jUser);
- Получение URL потока для прямой трансляции устройства в формате h264``` // Обратите внимание, что vue-video-player может воспроизводить только m3u8 в формате h264 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DAY_OF_MONTH, 2); Date futureTime = calendar.getTime(); try { JLinkClient jClient = new JLinkClient(uuid, appKey, appSecret, moveCard); JLinkDevice jDevice = new JLinkDevice(jClient, sn, username, password); JLinkUser jUser = new JLinkUser(jClient); String liveStream = jDevice.deviceLivestream( "0", "1", "hls", "ts", String.valueOf(futureTime.getTime()), "h264", "aac", jUser); log.info("liveStream={}", liveStream); } catch (Exception e) { e.printStackTrace(); }
> 7. Вход на устройство
jDevice.login();
> 8. Получение системы функций устройства
jDevice.deviceAbility(JLinkDeviceAbilityEnum.SYSTEMFUNCTION);
> 9. Настройка устройства (на примере получения конфигурации DAS устройства)
try {
NetWorkDasConfig dasConfig;
dasConfig = (NetWorkDasConfig) jDevice.getConfig(JLinkDeviceConfigTypeEnum.NETWORKDAS);
JLinkLog.i(new Gson().toJson(dasConfig));
/**
* Установка конфигурации устройства. Пример с NetWorkDasConfig.
* Получение dasConfig из запроса GetConfig.
*/
try {
dasConfig.getNetWorkDAS().setServerAddr("127.0.0.1");
jDevice.setConfig(dasConfig);
} catch (JLinkDeviceSetConfigException e) {
JLinkLog.e("Ошибка установки конфигурации: " + e);
}
} catch (JLinkDeviceGetConfigException e) {
JLinkLog.e("Ошибка получения конфигурации: " + e);
}
```markdown
try {
PtzDirectionControlDTO ptzDirectionControlDTO = new PtzDirectionControlDTO();
// DirectionUp=上, DirectionDown=下, DirectionLeft=左, DirectionRight=右
// DirectionLeftUp=左上, DirectionLeftDown=左下, DirectionRightUp=右上, DirectionRightDown=右下
// FocusNear=放大, FocusFar=缩小
ptzDirectionControlDTO.getOpptzControl().setCommand(PTZControlEnum.DirectionRight);
//channel 1
ptzDirectionControlDTO.getOpptzControl().getParameter().setChannel(0);
//0~65535: start exercising -1: stop exercising
ptzDirectionControlDTO.getOpptzControl().getParameter().setPreset(1);
//rotation speed
ptzDirectionControlDTO.getOpptzControl().getParameter().setStep(1);
jDevice.deviceOperate(ptzDirectionControlDTO);
} catch (JLinkDeviceOperateException e) {
JLinkLog.e("Ошибка выполнения:" + e);
}
- Скриншот с устройства
// DirectionUp=上, DirectionDown=下, DirectionLeft=左, DirectionRight=右
// DirectionLeftUp=左上, DirectionLeftDown=左下, DirectionRightUp=右上, DirectionRightDown=右下
// FocusNear=放大, FocusFar=缩小
// DirectionUp=вверх, DirectionDown=вниз, DirectionLeft=влево, DirectionRight=вправо
// DirectionLeftUp=влево-вверх, DirectionLeftDown=влево-вниз, DirectionRightUp=вправо-вверх, DirectionRightDown=вправо-вниз
// FocusNear=увеличение, FocusFar=уменьшение
try {
String picUrl = jDevice.capture(0);
JLinkLog.i(picUrl);
} catch (JLinkDeviceCaptureException e) {
JLinkLog.e(e.toString());
}
> 12. Настройка Wi-Fi
try {
JLinkClient jClient = new JLinkClient(uuid, appKey, appSecret, moveCard);
JLinkDevice jDevice = new JLinkDevice(jClient, sn, username, password);
NetWorkWifiConfig dasConfig = (NetWorkWifiConfig) jDevice.getConfig(JLinkDeviceConfigTypeEnum.NETWORKWIFI);
dasConfig.getNetWorkWifiDTO().setSsid("имя вашей Wi-Fi сети");
dasConfig.getNetWorkWifiDTO().setKeys("пароль вашей Wi-Fi сети");
jDevice.setConfig(dasConfig);
} catch (Exception e) {
log.error("Ошибка при настройке Wi-Fi");
e.printStackTrace();
throw new Exception("Ошибка при настройке Wi-Fi");
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )