Here is a sample macro used to display the various available results for simulation groups and simulations in the Atoll event viewer, for the active document:
’ Returns ’True’ if there is at least one group of simulation in ’doc’, ’ ’False’ ’ otherwise
' Params:
' [in] doc : Atoll document object
' [out] array: Array of simulation group feature objects Private Function SimulationGroupFeatureObjects(doc, ByRef array)
Const OBJECTKIND_SIMULATIONS = "{CDDF1E1D-1963-4D80-A057-D23A19570984}" Const OBJECTKIND_SIMULATIONGROUP = "{AF5E2B98-1D54-48FA-89C5- 8BFA2936ABF2}"
Const atoData = 0 Dim oSimulations
' oSimulations is the "Simulations" ChildFolder object On Error Resume Next
Set oSimulations = doc.GetRootFolder(atoData).Item(OBJECTKIND_SIMULATIONS) If Err Then
' There is no "Simulations" folder On Error Goto 0 SimulationGroupFeatureObjects = False Exit Function End If On Error Goto 0 If oSimulations.Count = 0 Then SimulationGroupFeatureObjects = False Exit Function End If
Atoll 3.3.2 Task Automation Guide
Chapter 12: ChildFolder Feature Objects © 2016 Forsk. All Rights Reserved.
Dim oSimulationGroup Dim n
n = 0
’ "Simulation Group" ChildFolder objects are located ’ in the "Simulations" folder
For Each oSimulationGroup In oSimulations
If oSimulationGroup.ObjectKind = OBJECTKIND_SIMULATIONGROUP Then Set array(n) = oSimulationGroup.Dispatch
n = n + 1 End If Next
SimulationGroupFeatureObjects = True End Function
’ Returns 'True' if there is at least one simulation in 'oSimulationGroup', ’ ’False’ otherwise
’ Params:
’ [in] oSimulationGroup : Group of simulations ChildFolder object ’ [out] array: Array of simulation feature objects
Private Function SimulationFeatureObjects(oSimulationGroup, ByRef array) If oSimulationGroup.Count = 0 Then SimulationFeatureObjects = False Exit Function End If Redim array(oSimulationGroup.Count - 1) Dim oSimulation Dim n n = 0
For Each oSimulation In oSimulationGroup
Const OBJECTKIND_SIMULATION = "{095C5D90-96F1-4BA8-85BB-B2F990AC2DD9}" If oSimulation.ObjectKind = OBJECTKIND_SIMULATION Then
Set array(n) = oSimulation.Dispatch n = n + 1
Next
SimulationFeatureObjects = True End Function
Private Sub DumpTable(t) Dim c Dim r Dim values() For r = 0 To t.RowCount Redim values(t.ColumnCount) For c = 0 To t.ColumnCount values(c) = t.GetValue(r, c) If IsNull(values(c)) Then values(c) = "(Null)" End If If IsEmpty(values(c)) Then values(c) = "(Empty)" End If If IsArray(values(c)) Then values(c) = "(Array)" End If Next LogMessage Join(values, ";") Next End Sub
Private Sub DumpSimulation(oSimulation, name) LogMessage name
LogMessage "Cells..."
DumpTable(oSimulation.Cells) LogMessage "End Cells." LogMessage "Sites..."
DumpTable(oSimulation.Sites) LogMessage "End Sites." LogMessage "Mobiles..."
Atoll 3.3.2 Task Automation Guide
Chapter 12: ChildFolder Feature Objects © 2016 Forsk. All Rights Reserved.
DumpTable(oSimulation.Mobiles) LogMessage "End Mobiles." LogMessage "End " & name & "." End Sub
Public Sub DumpSimulationGroupAttributes Dim f()
Dim arraySimulations()
If (SimulationGroupFeatureObjects(ActiveDocument, f) = False) Then LogMessage "No Group of Simulations found in the document." Exit Sub
End If Dim oFeature
For Each oFeature In f
LogMessage "Group of Simulations [" & oFeature.Source.Name & "]..." Dim average
Dim stddev
On Error Resume Next
Set average = oFeature.MeanSimulation If Err Then
’ The average simulation is not available when ’ no simulation has converged in the group.
LogMessage "The average simulation is not available." On Error Goto 0
Else
On Error Goto 0
DumpSimulation average, "Average Simulation" On Error Resume Next
Set stddev = oFeature.StdDevSimulation If Err Then
' The standard deviation simulation is not available ’ for LTE and WiMAX projects.
On Error Goto 0 Else
12.7 3GPP Multi-RAT Simulation Group Feature Object
Multi-RAT Simulation Group Feature objects are available in Atolldocuments based on the templates: • 3GPP Multi-RAT
3GPP Multi-RAT Simulation Group Feature objects are similar to Simulation Group Feature objects available in single-RAT documents, except some methods in 3GPP Multi-RAT Simulation Group Feature objects require the name of the technology to be specified.Multi-RAT Simulation Group Feature objects provide the following properties and methods:
12.7.1 get_Source
Returns the associated 3GPP Multi-RAT Simulation Group ChildFolder object. On Error Goto 0
DumpSimulation stddev, "Stddev Simulation" End If
End If
' Dump all simulation in the group of simulations Dim oSimulationGroup
Set oSimulationGroup = oFeature.Source
If (SimulationFeatureObjects(oSimulationGroup, arraySimulations) = False) Then
LogMessage "There are no simulations in this group of simulations." Else
Dim oSimulation
For Each oSimulation In arraySimulations
DumpSimulation oSimulation, oSimulation.Source.Name Next
End If
LogMessage "End Group of Simulations." Next
End Sub
Name Description
get_Source Returns the associated 3GPP Simulation Group ChildFolder object.
get_Statistics Returns a TabularData object holding the statistics of the simulation group for the specified technology.
get_MeanSimulation Returns a Simulation Feature object giving access to the average
simulation properties for the specified technology.
get_StdDevSimulation Returns a Simulation Feature object used to access the standard
Atoll 3.3.2 Task Automation Guide
Chapter 12: ChildFolder Feature Objects © 2016 Forsk. All Rights Reserved.
Parameters
[out] ppSource: Address of the IDispatch interface pointer used to return the associated 3GGP Multi-RAT Simulation Group ChildFolder object.
12.7.2 get_Statistics
Returns a TabularData object holding the statistics of the simulation group for the specified technology.
Remarks
This method is not implemented. Please don’t use this method.
12.7.3 get_MeanSimulation
Returns a Simulation Feature object giving access to the average simulation properties for the specified technology.
Parameters
[in] bstrTechno: A string used to specify the requested technology. Available values are "GSM”, “UMTS”, or “LTE”.
[out] ppMeanValues: Address of the ISimulation interface pointer used to return the Simulation Feature object corresponding to the average simulation.
Remarks
The returned Simulation Feature object is not associated with a particular ChildFolder object in the Atoll document. An error is returned when no simulation in the simulation group has converged. The average simulation is not available when no simulation in the simulation group has converged.
An error is returned when the simulation group has not been calculated yet, for instance when the 3GPP simulation group has been created with the check box "Execute Later" set.
12.7.4 get_StdDevSimulation
Returns a Simulation Feature object used to access the standard deviation simulation properties for the specified technology.
[in] bstrTechno: A string used to specify the requested technology. Available values are "GSM”, “UMTS”, or “LTE”.
[out] ppStdDevValues: Address of the ISimulation interface pointer used to return the Simulation Feature object correspond- ing to the standard deviation simulation.
Remarks
The returned Simulation Feature object is not associated with a particular ChildFolder object in the Atoll document. An error is returned when no simulation in the simulation group has converged. The standard deviation simulation is not avail- able when no simulation in the simulation group has converged.
HRESULT get_Source(IDispatch **ppSource);
HRESULT get_Statistics(const BSTR bstrTechno, ITabularData **ppTable);
HRESULT get_MeanSimulation( const BSTR bstrTechno, ISimulation **ppMeanValues ); HRESULT get_StdDevSimulation( const BSTR bstrTechno, ISimulation **ppStdDevValues );
An error is returned when the simulation group has not been calculated yet, for instance when the simulation group has been created with the check box "Execute Later" set.
An error is returned when the Atoll document is based on the LTE, WiMAX 802.16e templates. The standard deviation simu- lation is not available for LTE and WiMAX.
12.8 GSM Interference Matrix Feature Object
GSM Interference Matrix Feature objects give access to GSM interference matrices. A document can contain zero, one, or more interference matrices. They are located in the "Interference matrices" folder of the document.
GSM Interference Matrix Feature objects are available in documents based on the GSM GPRS EDGE template. GSM Interference Matrix Feature objects provide the following properties and methods:
Name Description Attributes
get_Source Returns the "Interference Matrices" ChildFolder object.
Type: ChildFolder object Access:Read
Load Loads an interference matrix.
CompleteScopeInfo Completes scope information.
get_Scope Returns the scope of the interference matrix.
Type: Tabular Data object Access:Read
get_Active Returns the interference matrix active state. Type: Boolean
Access:Read/Write
put_Active Sets the interference matrix active state. Type: Boolean
Access:Read/Write
get_Type Returns the type of the interference matrix. Type: Integer
Access:Read/Write
put_Type Sets the type of the interference matrix. Type: Integer
Access:Read/Write
get_BasedOnTraffic Type: Boolean
Access:Read/Write
put_BasedOnTraffic Type: Boolean
Access:Read/Write
get_Resolution Returns the resolution of the interference matrix
calculation.
Type: Integer Access:Read/Write put_Resolution Sets the resolution of the interference matrix calculation. Type: Integer
Access:Read/Write
get_StdDev Returns the interference matrix standard deviation. Type: Single
Access:Read/Write
put_StdDev Sets the interference matrix standard deviation. Type: Single
Access:Read/Write get_InfoQuantityIndicator Returns the interference matrix information quantity
indicator.
Type: Integer Access:Read/Write put_InfoQuantityIndicator Sets the interference matrix information quantity
indicator.
Type: Integer Access:Read/Write
get_CdfTab Returns the interference matrix CDF tabular data.
Type: Tabular Data object Access:Read
Atoll 3.3.2 Task Automation Guide
Chapter 12: ChildFolder Feature Objects © 2016 Forsk. All Rights Reserved.