Revision history [back]

click to hide/show revision 1
initial version

ER_BUS_BAD_ VALUE_TYPE from Signal() with multiple arguments


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\src\ |
MarshalMessage: SIGNAL[11] ER_BUS_BAD_

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="">
  <signal name="DeviceStatusChanged">
    <arg name="Branch" type="u" direction="out"/>
    <arg name="DeviceStatus" type="s" direction="out"/>

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.


Does anyone know what I miss here? When I tried the same thing with a single argument it worked perfectly.

Thanks in advance.