Hello Mike,
passing arrays directy as method parameters is not possible. Some possibilies how to exchange array contents is addressed in the section Exchange array contents.
In your concrete case, PROFILE_uid, PROFILE_Mode and PROFILE_desc are arrays embedded within the device obejct. These can be accessed even from the native code and initialized with other values. At the end of the initialization you can call some Update method of the device object to notify it about the just made modification. Although accessing object members from C code is possible, we avoid to recommend this approach. It expects some deeper knowledge of the underlying concepts. One of these aspects, for example, is to always use EwRetainString() when assigning a string to a variable or array item existing within the object.
You can also modify the implementation and pass the array values individually by invoking a method for each value. This could be the implementation:
void DeviceDriver_getProfiles(XUInt8 profile_count, XUInt32 *profile_uid, XString* profile_desc, XUInt8* profile_mode)
{
ApplicationDeviceClass device = EwGetAutoObject( &ApplicationDevice, ApplicationDeviceClass );
if(g_SDcardFatfsInstance.mounted)
{
profile_count = MAX_CONFIG_FILES;
for (uint8_t x = 0; x < MAX_CONFIG_FILES; x++)
{
ApplicationDeviceClass__PROFILE_update_item(device, x, PROFILE_info->UID[x],
EwNewStringAnsi(PROFILE_info->Desc[x]), PROFILE_info->Mode[x]);
}
}
}
Best regards
Paul Banach