Запрос описания классов объектов сервера

Каждый объект сервера принадлежит тому или иному классу(типу). Класс описывает возможные состояния объекта и методы, которые к нему применимы. Существует множество различных классов и чтобы узнать какому классу принадлежит объект, воспользуйтесь командой /objects. Для запроса параметров класса используется команда /classes.

Пример запроса:

        https://192.168.1.200:8080/classes/Channel?sid=gbnVFUit
	

Подсказка

Обратите внимание, что названия классов (в нашем примере Channel) регистрозависимы.

Пример ответа сервера:

{
    "possible_states_vector" : [
        {
            "name" : "signal",
            "values" : [
                    "No Signal",
                    "Signal"
            ]
        },
        {
            "name" : "motion",
            "values" : [
                    "No Motion",
                    "Motion"
            ]
        },
        {
            "name" : "recording",
            "values" : [
                    "Not Recording",
                    "Recording"
            ]
        },
        {
            "name" : "recording_on_device",
            "values" : [
                    "Not Recording (on device)",
                    "Recording (on device)"
            ]
        },
        {
            "name" : "sound_detector",
            "values" : [
                "Disabled",
                "Silent",
                "Loud"
            ]
        }
    ],
    "methods" : [
        {
            "name" : "record",
            "parameters" : [
                {
                    "name" : "turn_on_record",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "record_on",
            "parameters" : [
            ]
        },
        {
            "name" : "record_off",
            "parameters" : [
            ]
        },
        {
            "name" : "set_watermark",
            "parameters" : [
                {
                    "name" : "watermark_text",
                    "type" : "string"
                },
                {
                    "name" : "watermark_position",
                    "type" : "integer"
                },
                {
                    "name" : "timestamp_position",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "manual_record_start",
            "parameters" : [
            ]
        },
        {
            "name" : "manual_record_stop",
            "parameters" : [
            ]
        },
        {
            "name" : "ptz_preset",
            "parameters" : [
                {
                    "name" : "preset_n",
                    "type" : "integer"
                }
            ]
        },
        {
            "name" : "screenshot",
            "parameters" : [
            ]
        },
        {
            "name" : "screenshot_ex",
            "parameters" : [
                {
                    "name" : "timestamp",
                    "type" : "string"
                },
                {
                    "name" : "directory",
                    "type" : "string"
                }
            ]
        },
        {
            "name" : "screenshot_v2",
            "parameters" : [
                {
                    "name" : "time_YYYYMMDD_HHMMSS",
                    "type" : "string"
                },
                {
                    "name" : "screenshot_filename",
                    "type" : "string"
                },
                {
                    "name" : "screenshot_folder",
                    "type" : "string"
                },
                {
                    "name" : "make_thumb",
                    "type" : "integer"
                }
            ]
        }
    ]
}
	

В данном примере ответ содержит:

	
    "possible_states_vector" : [
        {
            "name" : "signal",
            "values" : [
                    "No Signal",
                    "Signal"
            ]
        }
    ]
	

  • "possible_states_vector" - блок описания статусов объекта данного класса и их возможных состояний;
  • "name" : "signal" - имя статуса, в данном примере описывает наличие сигнал по каналу;
  • "values" : - возможные значения, в данном примере: "No Signal" – нет сигнала, "Signal"– сигнал есть.

В данном примере ответ содержит:

	
    "methods" : [
        {
            "name" : "ptz_preset",
            "parameters" : [
                {
                    "name" : "preset_n",
                    "type" : "integer"
                }
            ]
        }
    ]
	

  • "methods" : - блок описания методов применимых к объекту данного класса;
  • "name" : "ptz_preset" - имя метода, в данном примере переход PTZ камеры на определенную предустановку (preset) камеры;
  • "parameters" : - параметры, которые необходимо передать;
  • "name" : "preset_n", "type" : "integer" - имя параметра и его тип, в данном примере номер предустановки камеры, формат — целое число.