Hi all,
I’m using the latest legato dev studio 4.1.1 legato version 16.01 - 16.07 to build an app based on the modem demo template on a mangoh, running in a linux VM. I’ve added a component to talk to the Air Vantage interface and I’m trying to bind an interface between the modem and AV components. The modem part works fine and the AV part also works fine on it’s own, the problem is the AV component doesn’t run on the target when both components are in the same app. the developer studio shows this error:
Process 192.168.2.2/project_name/AVIF has 1 missing bindings:
Missing bindings:
Client ID: something.something.AVInterface.setValue
ProtocolID: some_big_hex_number_like_a_uuid
ServiceID: something.something.demomodem.setValue
However, the binding is definitely there in the adef file, the api is listed in the relevant provides and requires sections for each component, the api file and function is there and shows up in the interfaces.h file, the project settings are correct as far as I can tell. There are no errors or warnings during the build process, not a clue that anything is wrong apart from the error about missing bindings above. In short, everything looks correct as per the “hello greet” example in the docs.
There is one line in the documentation here that hints at some issues:
If client-side code was built using the ifgen tool or mkcomp or mkexe with requires or bundles sections, the tool reading your .adef file won’t know about the client-side interface. Use a special work-around to bind those interfaces:
bindings:
{
.le_data → dataConnectionService.le_data
}
This would bind any unknown client-side le_data interfaces in the current app to the le_data server-side interface on the dataConnectionService app.
But when I try adding a name preceded by a dot the compiler complains I’m using an invalid character and only a-z, numbers, underscores etc. are allowed, so the above workaround doesn’t actually work.
The strangest thing is, that the binding used in the modem demo app itself doesn’t have any problems, but then the client/server directories in the Target_Legato_Debug/api directory are there already for that interface. I checked and the uuid named directory given as the missing protocol isn’t there in my build.
Any clues folks ?