defmodule Hikvision.System do
@moduledoc """
System related operations
"""
alias Hikvision.{Operation, Parsers}
@prefix "/ISAPI/System"
@doc """
Get information about the device
"""
@spec device_info() :: Operation.t()
def device_info() do
Operation.new("#{@prefix}/deviceInfo", parser: &Parsers.parse_device_info/1)
end
@doc """
Get the system status of the Camera/NVR
"""
@spec status() :: Operation.t()
def status(), do: Operation.new("#{@prefix}/status", parser: &Parsers.parse_system_status/1)
@doc """
Reboot the device
"""
@spec reboot() :: Operation.t()
def reboot(),
do:
Operation.new("#{@prefix}/reboot",
http_method: :put,
parser: &Parsers.parse_response_status/1
)
@spec time() :: Operation.t()
def time(), do: Operation.new("#{@prefix}/time", parser: &Parsers.parse_system_time/1)
@spec ntp_servers() :: Operation.t()
def ntp_servers(),
do: Operation.new("#{@prefix}/time/NtpServers", parser: &Parsers.parse_time_ntp_servers/1)
end