When creating a custom embedded component using CDE and inheriting an AsynchroSerial component, I get a errors "Method is required by the interface, but is disabled by the component settings or by the template" when trying to use the component. I also get the same error for events.
Hello,
The error message means that the component is inherited in another component that requires these methods (the interface, that is used for the inheritance, requires these methods). You must correct the design of the component (correct the interface, component/template settings (enable generating of these methods) or a chg script that disables these methods).
It is a bug of the component design (inheritance).
If you need additional help, provide the component(s) for analysis, please.
Best Regards,
Marek Neuzil
Marek,
I have tried everything I know to correct the interface to enable these methods, but cannot get the errors to go away. Here is my procedure:
File->New->Embedded Component (using KDS 3.0.0)
Under the component Properties ->Inherit Component... -> AsynchroSerial->Exclusive usage of component methods and events
at this point I tried "Extended component interface, override or publish component methods or events" it did not fix the issue
select each method needed by the interface and change the inherit pull-down from "no" to "yes" (This icon will change from M or E to I)
Refresh and Deploy
Add component to project and you will get the errors described above.
I am not sure how to fix the issue. Can the issue be fixed via a CHG script? If so how?
Brian
Brian,
It seems that you have issue in the mode of every method that is inherited. If you leave the Mode = ALWAYS_REQUIRED the error is reported when the method is not generated.
When you open the interface of the AsynchroSerial that is used in your component select the methods that reports error and select for example OPTIONAL_IF_EXIST mode, see below. You can find details in the Help of CDE (e.g. Inheritance Wizard help page).
For example the RecvBlock method is not enabled in the AsynchroSerial by default. Therefore you need to modify the AsynchroSerial configuration that is inherited (use for example a template).
Best Regards,
Marek Neuzil