HI
I have a couple of questions with respect to the AWE API command syntax
Question 1:
There are 2 commands discussed in the pdf namely
> PFID_SetObjectValueCall for setting value
> PFID_FetchObjectValueCall for getting values
I am looking in using this command in order to change a parameter of a module
running in an AWE target.
For both of these API commands, one of the passing parameter is the fieldOfsset,
I want to ask about what value to feed. Let us take the delay module.
I have cut and pasted sections of the delay module header.
If I want to change the currentDelay, should the fieldoffset be 9 (as defined by OFFSET_xyz)
or is it 2 as it is the 3rd item in the typedef struct _awe_modDelayInstance.
#define OFFSET_Delay_maxDelay 0x00000008
#define OFFSET_Delay_currentDelay 0x00000009
#define OFFSET_Delay_stateIndex 0x0000000A
#define OFFSET_Delay_stateHeap 0x0000000B
#define OFFSET_Delay_state 0x0000000C
typedef struct _awe_modDelayInstance
{
ModuleInstanceDescriptor instance;
int maxDelay;
int currentDelay;
int stateIndex;
int stateHeap;
float* state;
} awe_modDelayInstance;
Question 2
In the AWE target tuning section (specifically RS232) , we have the following set of bytes per command
0x02(start), seq_number, command bytes, 0x03(end).
When AWE server connects to a target it goes through a series of comamnds
upon connection. This is when it interrogates the target etc.
My question is if the PC software is not the AWE_server and all we really want to do is change
a set of module parameters numbers using the documented API commands, how do we connect
to a target properly since we don't know the last seq_number that the
target worked with?
If we arbitrarily start using a starting seq_number, will the target ignore the command?
Thank you
11:44am
1. Both these opcodes were AWE4 only, and were retired years ago. The current opcodes with similar meaning are:
* PFID_SetValueSetCall - for scalars
* PFID_SetValuesSetCall - for arrays
* PFID_GetCallFetchValue - for scalars
* PFID_GetCallFetchValues - for arrays
As with all AWE6 command they work by a logical address of ((objectID << 12) | member_offset).
This almost duplicates a similar question Emilson raised with different commands. From what he said then he apparently is using AWE4 documents and files, and is not even trying to come up to speed with AWE6. I find that very tiresome.
2. Sequence numbers matter only for retries, and are specified by the master, the target does not care. Start at 0, increment with every command, and wrap back to 0 after 9. The sequence number is an ASCII digit.
When you start talking to the target start with 0. That always works. If the connection is reliable, you'll never care anyway. Only if the connection is flaky with packet corruption, or times out does it ever matter. In which case, it has to be handled exactly as the document says.
1:33pm
Hi,
Thanks for the comment for #2
On item#1,
If I search through the Audio Weaver Server Command Syntax pdf as installed under Docs for 6.17.06, I cannot find these commands.
* PFID_SetValueSetCall - for scalars
* PFID_SetValuesSetCall - for arrays
* PFID_GetCallFetchValue - for scalars
* PFID_GetCallFetchValues - for arrays
What I can find are
PFID_SetCall, PFID_GetCall, PFID_SetValues, PFID_FetchValues,
The closest to the search is PFID_SetValueCall. Is there a better pdf document ?
The query about using the object IDs started as a recommendation from Paul where I can just use
the object ID and an offset. I am just asking the detail with respect to the offset.
The idea also started when I came across pages 34 (onwards) of the AWE-Core™-Integration-Guide-v08.pdf also
installed in the Docs of AW 6.17.06 where it discusses objectIDs etc and then I started re-reading the
API calls all referencing the objectID.
Thank you.