I have an iOS application where I have the Interface Description and the way I initialize it is as follows.
The iOS application connects to a BLE enabled device and gets the device information and the same I am using to announce as per the steps mentioned below.
- Create one BustAttachment (initWithApplicationName)
- Register Buslistner (registerBusListener)
- Initialize BusObject. This is basically containing information about the interface (initWithBusAttachment)
- Inside the InitWithBusAttachment - performing all the interfacedescription related functionality i.e. createInterfaceWithName, addSignalWithName, addPropertyWithName, setPropertyDescription, activate,
- Inside the AJNBusObjectImpl derived class, AddInterface
- Start the Bus
- Register the Bus Object (registerBusObject)
- ConnectwithArguments - passing null
- Advertise this service on the bus by doing (requestWellKnownName, bindSessionPort)
- Init AJNAboutObject (withAnnounceFlag : Announced)
Using the above mentioned steps, I am able to view my about device information on the "Dashboard" android application. What I want to achieve is when a property value changes, I want to perform an action on another connected device which is Alljoyn compliant.
Am I missing any steps above?
Also I tried using the AlljoynCodeGenerator application to generate the code from the XML below and not sure if it generated properly or not as most of the places the Interface name and delegate names were missing.
<xml> <node> <interface name="com.example.device"> <description language="en"> Examples for an AllJoyn-enabled. </description> <property name="BrushState" type="b" access="readwrite"> <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/> <description language="en"> Device State Information and Emission on value change. </description> </property> </interface> </node> </xml>