cancel
Showing results for 
Search instead for 
Did you mean: 

Automation ICmdAdvanced

Creator
Creator

Gents,

 

I am trying to use the IAdvancedCmd Interface without success.

 

I Am trying to use is as ICmd (which is working for me) but I always receive this "TYPE MISMATCH" error

 

I use the handles offered by TL.Application (cmd and cmd.Advancedcmd)

 

As example, I receive the error calculating a Block Average

 

Dim blockAveraged As LMSTestLabAutomation.IBlock2

Dim currentBlockOctave As LMSTestLabAutomation.IBlock2

 

currentBlockOctave = TL.cmd.BLOCK_OCTAVE(currentBlock)

 

blockAveraged = TL.cmd.AdvancedCmd.BLOCK_AVERAGE_STATISTICS(AvgParam, AvgType, blockAveraged, currentBlockOctave)

 

Same for 

 

blockLoudness = TL.cmd.AdvancedCmd.BLOCK_LOUDNESS(currentBlockOctave, SoundField)

 

I think that I'm not doing the proper use of the interface, but can't figure out how...

 

Thanks in advance

4 REPLIES

Re: Automation ICmdAdvanced

Siemens Valued Contributor Siemens Valued Contributor
Siemens Valued Contributor

Dear,

 

below you can find a small code snippet for the problems.

Indeed the syntax on the command are not correct.

 

1.Loudness:

 

Snippet

oScalar = tl.cmd.AdvancedCmd.BLOCK_LOUDNESS(oBlock, LMSTestLabAutomation.CONST_EnumSoundField.SoundFieldFree)

Remark1: you must provide an Octave block

Remark2: result is a scalar value

 

2. Average Statistics:

Snippet

oBlock = tl.cmd.AdvancedCmd.BLOCK_AVERAGE_STATISTICS(1, LMSTestLabAutomation.CONST_EnumStatisticFunction.StatisticFunctionEnergy_average, oBlock, oBlock)

 

hopefull this will help you.

 

 kind regards,

Re: Automation ICmdAdvanced

Creator
Creator

Hi bvlassa, Thank you very much for your reply

 

I tried your proposal without success. Still this "TYPE Mismatch"

 

I reprogrammed the code in C#, and now I get an error in line wich I was seein just browsing in the object browser: "System.MissingMemberException"

 

Indeed, you are able to unfold all the functions from TestLabAutomation.Application.cmd

 

But TestLabAutomation.Application.cmd.cmdAdvanced does not have "children", the Handle is empty

 

This is what I was seeing from the beginning ...

 

Now the question is: Is it a mistake of my installation or a bug in the Automation Module???

 

Thanks

 

Francisco

Re: Automation ICmdAdvanced

Siemens Valued Contributor Siemens Valued Contributor
Siemens Valued Contributor

Dear,

 

The TestLabAutomation.CMD.AdvancedCmd is not working in C#, this is a BUG, that you may report through GTAC. This functionality is currently only working on VB.Net.

 

Some work-arrounds:

1. Block_Loudness, this function is also available in the TestLabAutomation.CMD, so you can use it  from here.

Snippet

sc = tl.cmd.BLOCK_LOUDNESS(bl, LMSTestLabAutomation.CONST_EnumSoundField.SoundFieldFree);

 

2. Block_Average_Statistics, this is not available in LmsTestLabAutomation, so for this we can use the CreateObject method.

 

In the Automation Documentation Tool you can find function (object) called: Snippet

"LmsHq::DataModelC::BlockStatistics::CAveragedBlock"

This object performs the same calculation as the Block_Average_Statistics. Find below small snippet:

Snippet

bl = (LMSTestLabAutomation.IBlock2)db.GetItem(@"Section1/Octave/Octave 1\/3 Point1");
sf = tl.Factory.CreateEnumerate("LmsHq::DataModelC::BlockStatistics::CEnumStatisticFunction", 1);
 
map = tl.CreateAttributeMap();
map.Add("SourceBlock", bl);     //LMSTestLabAutomation.IBlock2
map.Add("PrevAvgBlock", bl);    //LMSTestLabAutomation.IBlock2
map.Add("AvgType", sf);         //LMSTestLabAutomation.Enumerate
map.Add("AvgParam", 1);         //real
map.Add("AvgTimeConstant", 1);  //real
 
bl = (LMSTestLabAutomation.IBlock2)tl.CreateObject("LmsHq::DataModelC::BlockStatistics::CAveragedBlock", map);

 

Hopefull, this will help,

 

Kind regards

 

 

Re: Automation ICmdAdvanced

Creator
Creator

Hi bvlassa

 

It works!!!!! And not only this: you helped me to understand how to use the Snippets.

Many doors have been opened to me now, thanks to your help.

 

Thank you very much!!!