SQLITE_NOTICE(283): recovered 5 frames from WAL file /data/mtt.fossil-wal
Artifact 32d431a21d300edbf8c6bdb8d669600d81a02e5a760587c86ed8390ec60396dd:
- Executable file mttroot/mtt/bin/trans/ibg2abg_m — part of check-in [1459f7b012] at 2004-09-12 22:27:27 on branch origin/master — Appended 't' to fopen mode string to open in text mode. (user: geraint@users.sourceforge.net, size: 2879) [annotate] [blame] [check-ins using] [more...]
#! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### # Bourne shell script: ibg2abg_m # Based on rbg2abg_m while [ -n "`echo $1 | grep '^-'`" ]; do case $1 in -I ) info=info ;; -nounits ) units=no ;; *) echo "$1 is an invalid argument - ignoring" ;; esac shift done # Set up some vars sys=$1 lbl_file=${sys}_lbl.txt abg_file=${sys}_abg.m err=mtt_error.txt log=ibg2abg_m_${sys}.log # Remove the old log file rm -f ibg2abg_m.log rm -f ${abg_file} # Inform user echo Creating ${abg_file} # Use matrix manipulation to accomplish the transformation ${MATRIX} > ${log} 2> ${err} <<EOF name = '$1' infofile = fopen('mtt_info.txt', 'wt'); errorfile = fopen('mtt_error.txt', 'wt'); ## Interpret data from the ibg representation ibonds = $1_ibg; bonds = ibonds.bonds; [bonds,components,n_vector_bonds] = ibg2abg(name,bonds, \ infofile,errorfile) ## Write the acausal bond graph m-file write_abg(name,bonds,components,n_vector_bonds); EOF # Set the units for the abg file test_units() { grep '^[\s]*[#|%]UNITS' < ${lbl_file} >/dev/null if [ $? = "0" ]; then grep '^[\s]*[#|%]UNITS' < ${lbl_file} |\ gawk '{ printf("mtt_units.sh %s %s %s %s %s\n", sys, $2, $3, $4, $5) }' sys=${sys} | sh | grep ERROR if [ $? = "0" ]; then echo " " *MTT_ERRROR: domains and units are not OK - exiting exit 1 else echo " " domains and units are OK fi else echo " no domains or units declared" fi } check_ports_exist() { declared_ports=`grep '^[\s]*[#|%]UNITS' < ${lbl_file} | gawk '{print $2}'` for declared_port in $declared_ports; do grep "${sys}\.ports\.${declared_port}\.type" ${abg_file} >/dev/null if [ $? = "1" ]; then echo "*MTT_ERROR: Units declared for non-existent port ${declared_port}" exit 1 fi done } set_units() { grep '^[\s]*[#|%]UNITS' < ${lbl_file} |\ gawk '{ printf(" %s.ports.%s.domain = \"%s\";\n", sys, $2, $3); printf(" %s.ports.%s.units.effort = \"%s\";\n", sys, $2, $4); printf(" %s.ports.%s.units.flow = \"%s\";\n", sys, $2, $5); }' sys=${sys} } if [ -z "$units" ]; then echo Checking port domains and units check_ports_exist; test_units; echo "## Port domain and units" >> ${abg_file} set_units >> ${abg_file} fi # Append any VAR declarations if [ -f "$1_lbl.txt" ]; then echo "## Explicit variable declarations" >> ${abg_file} grep '^[\s]*[%|#][V|P]AR' $1_lbl.txt | tr '%' '#' >> ${abg_file} grep '^[\s]*[%|#]NOT[V|P]AR' $1_lbl.txt | tr '%' '#' >> ${abg_file} fi # Close off the function echo "endfunction" >> ${abg_file} # Errors and info if [ "$info" = "info" ]; then cat mtt_info.txt fi if mtt_error mtt_error.txt; then exit 0 else exit 1 fi