![]() | 1 | initial version |
Hi,
I am trying to send a signal with multiple arguments; an integer and a string. But I am getting an error from BusObject::Signal() method like below.
2.153 ****** ERROR ALLJOYN external14312 ...re\src\Message_Gen.cc:1030 |
MarshalMessage: SIGNAL[11] com.se.Bus.Discovery.DeviceStatusChanged: ER_BUS_BAD_
VALUE_TYPE
I added a signal to the interface like this.
testIntf->AddSignal("DeviceStatusChanged", "us", "Branch,DeviceStatus", 0);
When I print an XML of the interface I get this.
<interface name="com.se.Bus.Discovery">
<signal name="DeviceStatusChanged">
<arg name="Branch" type="u" direction="out"/>
<arg name="DeviceStatus" type="s" direction="out"/>
</signal>
I sent a signal like this.
MsgArg deviceStatusChangedArg("(us)", i + 1, deviceStatusArray[i]);
uint8_t flags = 0;
busObject->Signal(NULL, s_sessionId, *deviceStatusChangedSignalMember, &deviceStatusChangedArg, 2, 0, flags);
If I print the MsgArg before sending the signal, I get this.
<struct>
<uint32>5</uint32>
<string>Inactive</string>
</struct>
Does anyone know what I miss here? When I tried the same thing with a single argument it worked perfectly.
Thanks in advance.
© 2014 AllSeen Alliance, Inc. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. AllSeen and AllSeen Alliance are trademarks of the AllSeen Alliance, Inc.
Linux is a registered trademark of Linus Torvalds.
Please see our brand guidelines, trademark guidelines, terms of use and privacy policy.