ADDED mttroot/mtt/bin/trans/m/write_cbg.m Index: mttroot/mtt/bin/trans/m/write_cbg.m ================================================================== --- /dev/null +++ mttroot/mtt/bin/trans/m/write_cbg.m @@ -0,0 +1,80 @@ +function write_cbg(system_name,system); + +############################################################### +## Version control history +############################################################### +## $Id$ +## $Log$ +############################################################### + + + fid=fopen([system_name,"_cbg.m"], "w");# Open file + + Sformat = " %s.subsystems.%s.%s = \"%s\";\n"; + PSformat = " %s.ports.%s.%s = \"%s\";\n"; + Iformat = " %s.subsystems.%s.%s = %i;\n"; + Cformat = " %s.subsystems.%s.connections = ["; + PCformat = " %s.ports.%s.connections = ["; + Bformat = " %s.bonds = [\n"; + + fprintf(fid,"function [%s] = %s_cbg\n", system_name, system_name); + + if struct_contains(system,"ports") + for [port,name]=system.ports + fprintf(fid,"\n# Port %s\n", name); + fprintf(fid,PSformat,system_name,name,"arg",port.arg); + + m = length(port.connections); # Number of connections + fprintf(fid,PCformat,system_name,name); + for j=1:m + fprintf(fid,"%i ", port.connections(j)); + endfor; + fprintf(fid,"];\n"); + endfor; + endif + + fprintf(fid,"\n# Components \n"); + if struct_contains(system,"subsystems") + for [subsystem,name]=system.subsystems + + fprintf(fid,"\n# Component %s\n", name); + fprintf(fid,Sformat,system_name,name,"type",subsystem.type); + fprintf(fid,Sformat,system_name,name,"cr",subsystem.cr); + fprintf(fid,Sformat,system_name,name,"arg",subsystem.arg); + fprintf(fid,Iformat,system_name,name,"repetitions",subsystem.repetitions); + fprintf(fid,Iformat,system_name,name,"status",subsystem.status); + + m = length(subsystem.connections); # Number of connections + + fprintf(fid,Cformat,system_name,name); + for j=1:m + fprintf(fid,"%i ", subsystem.connections(j)); + endfor; + fprintf(fid,"];\n"); + endfor + endif + + + + [N,M]=size(system.bonds); # Bonds + fprintf(fid,"\n# Bonds \n"); + fprintf(fid,Bformat,system_name); + for i=1:N + fprintf(fid," "); + for j=1:M + fprintf(fid,"%i ", system.bonds(i,j)); + endfor; + fprintf(fid,"\n"); + endfor; + fprintf(fid," ];\n"); + + fprintf(fid,"\n# Aliases \n"); + if struct_contains(system,"alias") + for [val,key] = system.alias + fprintf(fid,"%s.alias.%s = \"%s\";\n", system_name,key,val); + endfor + endif + + fclose(fid); + +