openbmc.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* How to get the return value using the command busctl set-property?
@ 2021-04-16  4:46 Bruce Lee (李昀峻)
  2021-04-16 14:58 ` Patrick Williams
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Lee (李昀峻) @ 2021-04-16  4:46 UTC (permalink / raw)
  To: openbmc; +Cc: edtanous, Nan Zhou

Does busctl set-property can get its return value?
I use the below command, and I found it has no return value.
Dose set-property does not provide a return message like the get-property function?
If can get its return value from set-property, how to do it?

i.e.
busctl set-property xyz.openbmc_project.Hwmon-3687764522.Hwmon1 /xyz/openbmc_project/sensors/voltage/vbat xyz.openbmc_project.Sensor.Value Value d 22
or
in bmcweb the code as below:
i.e.
crow::connections::systemBus->async_method_call(
	[sensorAsyncResp](const boost::system::error_code ec) {
		if (ec)
        {
			BMCWEB_LOG_DEBUG
				<< "setOverrideValueStatus DBUS error: "<< ec;
			messages::internalError(sensorAsyncResp->res);
			return;
		}
	},
	item.second, item.first,
	"org.freedesktop.DBus.Properties", "Set",
	"xyz.openbmc_project.Sensor.Value", "Value",
	std::variant<double>(iterator->second.first));

in dbus-monitor --system I also not found its return value when I use set-property 
dbus-monitor message as below:
method call time=1618547183.313540 sender=:1.87 -> destination=xyz.openbmc_project.Hwmon-3687764522.Hwmon1 serial=2 path=/xyz/openbmc_project/sensors/voltage/vbat; interfa
   string "xyz.openbmc_project.Sensor.Value"                                                                                                                               
   string "Value"                                                                                                                                                          
   variant       double 22                                                                                                                                                 
method call time=1618547183.317152 sender=:1.45 -> destination=org.freedesktop.DBus serial=35 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnect
   string ":1.87"                                                                                                                                                          
method return time=1618547183.317937 sender=org.freedesktop.DBus -> destination=:1.45 serial=4294967295 reply_serial=35                                                    
   uint32 0                                                                                                                                                                
method return time=1618547183.330441 sender=:1.45 -> destination=:1.87 serial=36 reply_serial=2  

The set-property code as below: 
int setSensorValue(const double& newValue, double& oldValue)
    {
            
        if (!internalSet)
        {  
            oldValue = newValue;
            overriddenState = true;
            // check thresholds for external set
            value = newValue;
            checkThresholds();
        }
        else if (!overriddenState)
        {
            oldValue = newValue;
        }
        return 1;
    }

sensorInterface->register_property(
	"Value", value, [&](const double& newValue, double& oldValue) {
	return setSensorValue(newValue, oldValue);
});

Thanks,
Bruce.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-19 11:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16  4:46 How to get the return value using the command busctl set-property? Bruce Lee (李昀峻)
2021-04-16 14:58 ` Patrick Williams
2021-04-19 11:15   ` Bruce Lee (李昀峻)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).