1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/renkai721-jftech-camera

Клонировать/Скачать
README.md 9.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 16:13 98fce77

jftech-camera

Быстрое подключение к платформе 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, могут использовать этот плагин. Исходный код

Содержание

  1. Описание проекта
    1. Преимущества проекта
    2. Адрес платформы JFTECH Cloud
    3. API официального сайта JFTECH
    4. Почему был запущен этот проект?
  2. Инструкция по использованию

История обновлений

Обновления

Описание проекта

Преимущества проекта

  1. API официального сайта JFTECH Cloud довольно понятен, но требует передачи большого количества параметров, что делает его сложным. Обычные RestTemplate или HTTP-коды требуют много времени для написания. Поэтому на основе официального SDK этот интерфейс упакован в JAR-файл для использования, чтобы избежать появления избыточного кода в собственном бизнесе.

Адрес платформы JFTECH Cloud

Платформа JFTECH Cloud### API официального сайта JFTECH Официальная документация

Почему был запущен этот проект?

Чтобы позволить пользователям быстро подключаться к API платформы JFTECH Cloud.

Инструкция по использованию

  1. Введение зависимости в pom.xml
<dependency>
    <groupId>io.gitee.renkai721</groupId>
    <artifactId>jftech-camera</artifactId>
    <version>1.0.0</version>
</dependency>

Пример использования Demo


  1. Инициализация
    JLinkClient jClient = new JLinkClient(
    "e0534f3240274897821a126be19b6d46",
    "5b027c14d371332e88a9cbae30375ee7",
    "fd664d5fa6974ec09023818f68b23212",
    5);
    // Инициализация устройства
    JLinkDevice jDevice = new JLinkDevice(jClient, "1234567890123457", "device Username", "device password");
  1. Привязка устройства
    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));
  1. Получение токена доступа устройства (deviceToken)
    String deviceToken = jDevice.getDeviceToken();
  1. Получение состояния устройства
    DeviceStatusData statusResponse = jDevice.deviceStatus();
  1. Получение URL потока для прямой трансляции устройства
    // Этот метод возвращает поток в формате h265
    JLinkUser jUser = new JLinkUser(jClient);
    String liveStream = jDevice.deviceLivestream(DeviceLiveStreamEnum.STREAM_EXTRA.get(), DeviceLiveStreamEnum.MEDIATYPE_HLS.get(), DeviceLiveStreamEnum.PROTOCOL_TS.get(), jUser);
  1. Получение 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);
    }
  1. Скриншот с устройства
    // 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/renkai721-jftech-camera.git
git@api.gitlife.ru:oschina-mirror/renkai721-jftech-camera.git
oschina-mirror
renkai721-jftech-camera
renkai721-jftech-camera
master