How to add about feature in ajtcl? [closed]
asked 2015-06-30 04:36:47 -0800

This post is a wiki. Anyone with karma >75 is welcome to improve it.
I am able to announce about seperately. I am trying to add about feature to sessions example. When I start the service, the about data should be announced. I am not able to do it.
AJ_Initialize();
status = PropertyStore_Init();
if (status != AJ_OK)
{
goto Exit;
}
status = About_Init(AnnounceObjects, aboutIconMimetype, aboutIconContent, aboutIconContentSize, aboutIconUrl);
if (status != AJ_OK)
{
goto Exit;
}
status = AJServices_Init(AppObjects, ProxyObjects, AnnounceObjects, deviceManufactureName, deviceProductName);
if (status != AJ_OK)
{
goto Exit;
}
AJ_RegisterObjects(AppObjects, ProxyObjects);
SetBusAuthPwdCallback(MyBusAuthPwdCB);
AJ_StartReadFromStdIn();
while (TRUE)
{
AJ_Message msg;
status = AJ_OK;
if (!isBusConnected)
{
isBusConnected = AJRouter_Connect(&busAttachment, ROUTER_NAME);
if (isBusConnected)
{
status = AJServices_ConnectedHandler(&busAttachment);
}
else
{ // Failed to connect to daemon.
continue; // Retry establishing connection to daemon.
//goto Exit;
}
}
if (status == AJ_OK)
{
status = AJApp_ConnectedHandler(&busAttachment);
}
if (status == AJ_OK)
{
status = AJ_UnmarshalMsg(&busAttachment, &msg, AJAPP_UNMARSHAL_TIMEOUT);
isUnmarshalingSuccessful = (status == AJ_OK);
if (status == AJ_ERR_TIMEOUT)
{
if (AJ_ERR_LINK_TIMEOUT == AJ_BusLinkStateProc(&busAttachment))
{
status = AJ_ERR_READ; // something's not right. force disconnect
}
else
{ // nothing on bus, do our own thing
//printf("in else before AJServices_DoWork before continue\n");
AJServices_DoWork(&busAttachment);
//sessionsAJ_Main();
continue;
//goto Exit;
}
}
if (isUnmarshalingSuccessful)
{
serviceStatus = AJServices_MessageProcessor(&busAttachment, &msg, &status);
if (serviceStatus == AJSVC_SERVICE_STATUS_NOT_HANDLED)
{
//Pass to the built-in bus message handlers
status = AJ_BusHandleBusMessage(&msg);
}
AJ_NotifyLinkActive();
}
//Unmarshaled messages must be closed to free resources
AJ_CloseMsg(&msg);
}
if (status == AJ_ERR_READ || status == AJ_ERR_RESTART || status == AJ_ERR_RESTART_APP)
{
if (isBusConnected)
{
AJApp_DisconnectHandler(&busAttachment, status != AJ_ERR_READ);
AJServices_DisconnectHandler();
isBusConnected = !AJRouter_Disconnect(&busAttachment, status != AJ_ERR_READ);
if (status == AJ_ERR_RESTART_APP)
{
AJ_Reboot();
}
}
}
} // while (TRUE)
This how I am announcing about data
status = AJ_StartService(&bus, NULL, CONNECT_TIMEOUT, TRUE, port, name, AJ_NAME_REQ_DO_NOT_QUEUE, &opts);
AJ_BusAddSignalRule(&bus, "Sessions", InterfaceName, AJ_BUS_SIGNAL_ALLOW);
This is how I am starting a service for chatting.
I want to announce the aboutdata when I announce the chat service.
May you provide some source code please? It is heavy to determine where the mistake is if you don't provide a code snippet.
julianbros ( 2015-07-01 04:31:15 -0800 )edit