using System.Data; using System.Net; using System.Net.Sockets; using System.Text; using System.Text.Json; using GoveeCSharpConnector.Objects; namespace GoveeCSharpConnector.Interfaces; public interface IGoveeUdpService { /// /// Sends a Scan Command via Udp Multicast. /// /// Standard 200ms /// List of GoveeUdpDevices Task> GetDevices(TimeSpan? timeout = null); /// /// Request the State of the Device /// /// Ip Address of the Device /// Port of the Device. Standard 4003 /// Standard 200ms /// Task GetState(string deviceAddress, int uniCastPort = 4003, TimeSpan? timeout = null); /// /// Sets the On/Off State of the Device /// /// Ip Address of the Device /// /// Port of the Device. Standard 4003 /// Task ToggleDevice(string deviceAddress, bool on, int uniCastPort = 4003); /// /// Sets the Brightness of the Device /// /// Ip Address of the Device /// In Percent 1-100 /// Port of the Device. Standard 4003 /// Task SetBrightness(string deviceAddress, int brightness, int uniCastPort = 4003); /// /// Sets the Color of the Device /// /// Ip Address of the Device /// /// Port of the Device. Standard 4003 /// Task SetColor(string deviceAddress, RgbColor color, int uniCastPort = 4003); /// /// Sets the ColorTemp of the Device /// /// Ip Address of the Device /// /// Port of the Device. Standard 4003 /// Task SetColorTemp(string deviceAddress, int colorTempInKelvin, int uniCastPort = 4003); /// /// Starts the Udp Listener /// /// void StartUdpListener(); /// /// Returns the State of the Udp Listener /// /// True if Active bool IsListening(); /// /// Stops the Udp Listener /// /// void StopUdpListener(); }