% -------------------------------------------------------------------------
% function HfssExportNetworkData(fid, HfileName, HsetupName, HsweepName,...
%                                [HexpFileType], [HrenormZ])
% 
% Popis funkce :
% -------------
% Funkce potrebna k vyexportovani vysledku z HFSS. Parametry jako (S, Z, f)
% do prednastaveneho souboru.
%
% Parametery :
% ------------
% fid       - soubor identifikujici HFSS skript.
% HfileName  - vystupni datovy soubor(do ktereho budou ulozeny vysledky).
% HsetupName - jmeno analyzy, ktera bude vyexportovana.
% HsweepName - jmeno frekvencniho krokovani, ktera bude vyexportovana.
% [HexpFileType] - vystupni datovy format (prednastaven je m-file). 
%                 Definovane jako:
%                 'h' - HFSS 8.x format (.szg)
%                 't' - Tab delimited spreadsheet format (.tab)
%				  's' - Touchstone SnP format (.sNp)
%				  'c' - CitiFile (.cit)
%				  'm' - MATLAB File (.m ) - default.
%                 'z' - Terminal Z0 spreadsheet.
% [HrenormZ]  - renormalizacni impedance (jestli-ze je odlisna od 50 Ohms).
%                Prednastavena hodnota je 50.
% 
%
% Priklad pouziti finkce :
% ---------
% fid = fopen('antenna.m', 'wt');
% ... 
% HfssExportNetworkData(fid, 'C:\temp\tempData.m', 'Setup150MHz', ...
%                       'Sweep100to200MHz', 'm', 75);
%
% -------------------------------------------------------------------------

function HfssExportNetworkData(fid, HfileName, HsetupName, HsweepName, ...
                               HexpFileType, HrenormZ)
global Module Design

% Exportovany typ souboru - prednastaven je MATLAB (m-file).
if (nargin < 5)
	HexpFileType = 'm';
end

% Renormalizace impedance.
if (nargin < 6)
	HrenormZ = 50.0;
end

% Vyber typu exportovaneho soubrou.
switch (HexpFileType)
	case 'h', expType = 1;
	case 't', expType = 2;
	case 's', expType = 3;
	case 'c', expType = 4;
	case 'm', expType = 7;
	case 'z', expType = 8;
	otherwise, error('Nenalezen pozadovany typ souboru!');
end

% Zapis do souboru temp
fprintf(fid,'Module = Design.GetModule(''Solutions'');\n');
fprintf(fid,'Module.ExportNetworkData('''',...\n');
fprintf(fid,['{''',HsetupName,':',HsweepName,'''},...\n']);
fprintf(fid,['',num2str(expType),',...\n']);
fprintf(fid,['''',HfileName,''',...\n']);
fprintf(fid,'{''All''},...\n');
fprintf(fid,'true,...\n');
fprintf(fid,['',num2str(HrenormZ),');\n\n']); 

% Prime vykonani v programu HFSS
Module = Design.GetModule('Solutions');
Module.ExportNetworkData('',...
    {[HsetupName,':',HsweepName]},...
    expType,...
    HfileName,...
    {'All'},...
    true,...
    HrenormZ); 
end
 