# DBUS Guide ```rust pub static DBUS_NAME: &str = "org.rogcore.Daemon"; pub static DBUS_PATH: &str = "/org/rogcore/Daemon"; pub static DBUS_IFACE: &str = "org.rogcore.Daemon"; ``` ## Methods - `SetKeyBacklight` - `GetKeyBacklight` - `AnimatrixWrite` - `SetFanMode` - `GetFanMode` - `SetChargeLimit` - `GetChargeLimit` - `GetKeyBacklightModes` ## Signals - `KeyBacklightChanged` - `FanModeChanged` - `ChargeLimitChanged` ## Method Inputs ### SetKeyBacklight This method expects a string of JSON as input. The JSON is of format such: ``` { "Stable": { "colour": [ 255, 0, 0] } } ``` The possible contents of a mode are: - `"colour": [u8, u8, u8],` - `"speed": ,` - `"direction": ,` Modes may or may not be available for a specific laptop (TODO: dbus getter for supported modes). Modes are: - `"Stable": { "colour": },` - `"Pulse": { "colour": },` - `"Comet": { "colour": },` - `"Flash": { "colour": },` - `"Strobe": { "speed": },` - `"Rain": { "speed": },` - `"Laser": { "colour": , "speed": },` - `"Ripple": { "colour": , "speed": },` - `"Highlight": { "colour": , "speed": },` - `"Rainbow": { "direction": , "speed": },` - `"Breathe": { "colour": , "colour2": , "speed": },` - `"Star": { "colour": , "colour2": , "speed": },` - `"MultiStatic": { "colour1": , "colour2": , , "colour3": , "colour4": },` Additionally to the above there is `"RGB": [[u8; 64]; 11]` which is for per-key setting of LED's but this requires some refactoring to make it easily useable over dbus. Lastly, there is `"LedBrightness": ` which accepts 0-3 for off, low, med, high. ### GetKeyBacklight This method will return a JSON string in the same format as accepted by `SetKeyBacklight`. ### GetKeyBacklightModes Will return a JSON string array of modes that this laptop accepts. The mode data within this will be the current settings per mode. Good for: - Getting supported modes - Getting all mode settings ### AnimatrixWrite Used to write data to the AniMe display if available. Currently is takes `[[u8; 640]; 2]` which must be the byte data that will be written directly to the USB device. ### SetFanMode Accepts an integer from the following: - `0`: Normal - `1`: Boost mode - `2`: Silent mode ### GetFanMode Returns the integer set from above. ### SetChargeLimit Accepts an integer in the range of 20-100. ### GetChargeLimit Returns the integer set from above. ## Signal Outs ### KeyBacklightChanged When emitted, it will emit the JSON data of the mode changed to, e.g: ``` { "Stable": { "colour": [ 255, 0, 0] } } ``` ### FanModeChanged When emitted, it will include the integer the fan mode was changed to. ### ChargeLimitChanged When emitted, it will include the integer the charging limit was changed to.