cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

How to add Ethercatclient as a service dependency to a bundle?

How to add Ethercatclient as a service dependency to a bundle?

Elleshar
Established Member

Hello Community,

is it possible to add the ethercatmasterapp in the following snippet?

void Activator::init()
{
       .....

        // datalayer: cpp ServiceDependency w/ specifier 'name'
        ServiceDependency<sdk::control::XXXComponent, comm::datalayer::IDataLayerFactory> &serviceDepDl = component.createServiceDependency<comm::datalayer::IDataLayerFactory>(IDATALAYER_FACTORY_INTERFACE_NAME);
        serviceDepDl.setVersionRange(IDATALAYER_CONSUMER_RANGE);
        serviceDepDl.setRequired(true);
        serviceDepDl.setStrategy(DependencyUpdateStrategy::suspend);
        serviceDepDl.setCallbacks(&sdk::control::XXXComponent::cppDatalayerServiceStateChanged);
        serviceDepDl.setCallbacks(&sdk::control::XXXComponent::cppDatalayerServiceAdded, &sdk::control::XXXComponent::cppDatalayerServiceRemoved);
    }
 
    ....
}
 
Sincerely 
Elleshar
2 REPLIES 2

nickH
Community Moderator
Community Moderator

Hello Elleshar,

the standard way to communicate with the EtherCAT-Master is over the Data Layer interface of the EtherCAT Master App. This can be found at “fieldbuses/ethercat/master/instances/ethercatmaster” in the Data Layer of the ctrlX CORE. You can access the current state of the fieldbus and the Realtime Data there.

What would be your specific requirements, so that a connection via a ServiceDependency and thereby the Celix framework would be necessary?

 

Best regards,

Nick

Elleshar
Established Member

Hi Nick,

What would be your specific requirements, so that a connection via a ServiceDependency and thereby the Celix framework would be necessary?
---> Not explicit necessary, we made it work via the datalayer, it would be more convinient and "cleaner" if we can inject it there.
We got this idea, by looking at the interface for ethercat-masterapp in
ctrlx-automation-sdk.1.12.0\ctrlX-automation-sdk\include\comm.ethercat.master\comm\ethercat\master\i_ethercatMasterProvider.h

Sincerely
Elleshar

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist