busCreators = find_system(model, 'BlockType', 'BusCreator');
fileID = fopen('signal_defaults.txt', 'w');
fprintf(fileID, 'Signal Name\tDefault Value\n');
for i = 1:length(busCreators)
numInputs = str2double(get_param(blk, 'Inputs'));
lines = get_param(blk, 'LineHandles');
srcBlock = get_param(line, 'SrcBlockHandle');
srcBlockName = get_param(srcBlock, 'Name');
blockType = get_param(srcBlock, 'BlockType');
if strcmp(blockType, 'Constant')
defaultVal = get_param(srcBlock, 'Value');
elseif strcmp(blockType, 'Sin')
sineType = get_param(srcBlock, 'SineType');
if strcmp(sineType, 'Sample based')
maskValues = get_param(srcBlock, 'MaskValues');
if length(maskValues) >= 4
amp = str2double(maskValues{1});
bias = str2double(maskValues{2});
samplesPerPeriod = str2double(maskValues{3});
offsetSamples = str2double(maskValues{4});
angle = 2 * pi * offsetSamples / samplesPerPeriod;
sineVal = amp * sin(angle) + bias;
defaultVal = num2str(sineVal);
elseif strcmp(sineType, 'Time based')
amp = str2double(get_param(srcBlock, 'Amplitude'));
bias = str2double(get_param(srcBlock, 'Bias'));
freq = str2double(get_param(srcBlock, 'Frequency'));
phase = str2double(get_param(srcBlock, 'Phase'));
sineVal = amp * sin(freq * t + phase) + bias;
defaultVal = num2str(sineVal);
fprintf(fileID, '%s\t%s\n', srcBlockName, defaultVal);
disp('Signal names and default values saved to signal_defaults.txt');
fileID = fopen('signal_defaults.txt', 'w');
fprintf(fileID, 'Signal Name\tDefault Value\n');
numSignals = logsout.numElements
srcSignalName = logsout{i}.Name;
defaultVal = logsout{i}.Values.Data(1);
fprintf(fileID, '%s\t%s\n', srcSignalName, num2str(defaultVal));
disp('Signal names and default values saved to signal_defaults.txt');