= Команда snmpset = == Назначение команды == Команда `snmpset` служит для запроса записи значений переменных в платы блока MC04-DSL-3U. == Ключи запроса == || '''Ключ''' || '''Тип значения''' || '''обязательный''' || '''Назначение''' || || cmd || строка || да || "snmpset" - имя команды || || varlist || объект || да || набор пар "OID"-"значение" || Команде `snmpset` требуется параметр `varlist`, значением которого является объект, содержащий набор пар "OID"-"значение". Ключами объекта являются OID переменных, в которые требуется запись, значением - записываемое значение. Записываемое значение может быть числом, строкой или массивом байт. При обращении к переменной платы первый элемент OID должен быть равен 4, второй элемент - номеру слота. Элементы OID начиная с третьего являются идентификатором переменной внутри платы. OID должен завершаться элементом 0. Если записываемая переменная имеет тип "число", записываемое значение должно быть числом. Пример записи такой переменной: `{"cmd":"snmpset","varlist":{".4.3.9.0":16}}` - переменной `.4.3.9.0` присваивается значение 16. Если записываемая переменная имеет тип "строка", записываемое значение может иметь тип "строка" или массив чисел со значениями от 0 до 255. В последнем случае каждый элемент массива является значением байта записываемой строки. Два следующих запроса эквивалентны: `{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}`, `{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67]}}` - переменной `.4.3.5.0` присваивается последовательность из 3 байт со значениями 65, 66, 67. == Права доступа == В общем случае для выполнения команды `snmpset` требуется право изменения конфигурации блока. Однако для записи некоторых значений в некоторые переменные некоторых плат могут требоваться другие права. Например для записи значений от 1 до 4 в переменную `.6.0` плат SM-01, SM-02 и SM-03 требуется право записи команд в платы SM (право изменения конфигурации блока при этом не требуется). == Возвращаемые данные == В случае успешного выполнения команда `snmpset` возвращает ключ `result`, значением которого является объект, содержащий результаты записи переменных. Ключами объекта `result` являются OID переменных, которые были переданы в объекте `varlist` запроса. Значениями являются результаты записи. Результат записи переменной может принимать одно из следующих значений: || '''значение''' || '''описание''' || || "OK" || Запись переменной выполнена успешно. || || "Not found" || Запрошенная переменная отсутствует (неверный OID) || || "Wrong type" || Записываемое значение не соответствует типу переменной (попытка записи строки или массива байт в переменную типа "число" или наоборот) || || "Access denied" || Пользователь не имеет права записи в эту переменную || || "Read only" || Запрошенная переменная имеет тип "только для чтения" || || "Timeout" || Плата, которая содержит переменную, не ответила на запрос (время ожидания ответа истекло) || || "Error" || Плата, содержащая запрошенную переменную, вернула ошибку. || В случае успешной записи результат имеет значение "OK". Обратите внимание, что значение "OK" означает только то, что переменная с указанным OID существует, право записи в нее имеется, тип записываемого значения соответствует типу переменной, запрос записи был получен и успешно обработан соответствующей платой блока. Результат "OK" не означает, что записанное значение корректно с точки зрения семантики конкретной переменной. Например при записи в регистр команд платы несуществующего кода команды будет возвращен результат "OK", однако никакой команды платой выполнено не будет. === Примеры запросов и ответов: === `{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}`, {{{ { "cmd":"snmpset", "result": { ".4.3.5.0": "OK" } } }}} `{"cmd":"snmpset","varlist":{".4.3.7.3.0":234}}`, {{{ { "cmd":"snmpset", "result": { ".4.3.7.3.0": "Not found" } } }}} `{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67], ".4.3.6.0":1}}`, {{{ { "cmd":"snmpset", "result": { ".4.3.5.0": "OK", ".4.3.6.0": "Access denied" } } }}} == См. также == [ApiSnmpget команда snmpget]