Commit 960eac4b authored by Claes Sjofors's avatar Claes Sjofors

Script arrays maxsize increased from 1000 to 5000

parent 8126c9cd
......@@ -611,7 +611,7 @@ int ccm_varname_parse(
}
sscanf( elementstr, "%d", element);
*s = '\0';
if ( (*element < 0) || (*element > 1000) )
if ( (*element < 0) || (*element > 5000) )
{
return 0;
}
......
......@@ -12,161 +12,68 @@
#
# --------------------------------------------------------------------------
main()
string channel;
function int print_channels( int fp, string chanclass, string sigclass)
string signal;
string attr;
string sigchancon;
string elem;
string ioconnect;
string str;
int idx;
int sigcnt = 0;
int i;
string channel;
string sdescr;
string cdescr;
string sigchancon;
string volume;
string outfilename;
string tmpfilename;
string lvolname;
string cmd;
int found;
int fp;
string msg;
string path = "$pwrp_doc/";
string fileend = "_iolist.csv";
string tmpname = "tmp";
int cntr=0;
int cntr_tot=0;
# Write excuse
printf("This will take some time, please wait...\n");
# Create temporary file name and output file name
volume = GetCurrentVolume();
lvolname = tolower(volume);
outfilename = path + lvolname + fileend;
tmpfilename = path + tmpname + fileend;
# Open temporary file
fp = fopen(tmpfilename,"w");
sigcnt = 0;
# Get all ChanDi
channel = GetClassListAttrRef( "ChanDi");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Di");
signal = GetClassListAttrRef( sigclass);
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Di", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
elem = element( 2, "-", sigchancon);
if ( elem == "Class")
attr = channel + ".Description";
cdescr = GetAttribute( attr);
idx = strrchr( signal, ".");
str = extract( 1, idx, signal);
attr = str + "IoConnect";
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
ioconnect = GetAttribute( attr);
idx = strchr( sigchancon, ".");
str = extract( idx, 200, sigchancon);
sigchancon = ioconnect + str;
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanDi", channel);
endwhile
signals[sigcnt] = signal;
sigchancons[sigcnt] = sigchancon;
sigcnt++;
# Get all ChanDo
channel = GetClassListAttrRef( "ChanDo");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Do");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Do", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
attr = channel + ".Description";
cdescr = GetAttribute( attr);
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanDo", channel);
signal = GetNextAttrRef( sigclass, signal);
endwhile
# Get all ChanAi
channel = GetClassListAttrRef( "ChanAi");
# Get all channels of this class
channel = GetClassListAttrRef( chanclass);
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Ai");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
for ( i = 0; i < sigcnt; i++)
if ( sigchancons[i] == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Ai", signal);
endwhile
endfor
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
attr = signals[i] + ".Description";
sdescr = GetAttribute( attr);
endif
......@@ -174,209 +81,51 @@ main()
cdescr = GetAttribute( attr);
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanAi", channel);
fprintf( fp, "%s;%s;\"%s\";\"%s\"\n", channel, signals[i], sdescr, cdescr);
channel = GetNextAttrRef( chanclass, channel);
endwhile
return 1;
endfunction
# Get all ChanAo
channel = GetClassListAttrRef( "ChanAo");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Ao");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Ao", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
attr = channel + ".Description";
cdescr = GetAttribute( attr);
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanAo", channel);
endwhile
# Get all ChanCo
channel = GetClassListAttrRef( "ChanCo");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Co");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Co", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
attr = channel + ".Description";
cdescr = GetAttribute( attr);
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanCo", channel);
endwhile
# Get all ChanAo
channel = GetClassListAttrRef( "ChanIi");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Ii");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Ii", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
attr = channel + ".Description";
cdescr = GetAttribute( attr);
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
channel = GetNextAttrRef( "ChanIi", channel);
endwhile
# Get all ChanAo
channel = GetClassListAttrRef( "ChanIo");
while ( channel != "")
found = 0;
signal = GetClassListAttrRef( "Io");
while ( signal != "")
attr = signal + ".SigChanCon";
sigchancon = GetAttribute( attr);
if ( sigchancon == channel)
found = 1;
break;
endif
signal = GetNextAttrRef( "Io", signal);
endwhile
if ( !found)
signal = "-";
sdescr = "-";
else
attr = signal + ".Description";
sdescr = GetAttribute( attr);
endif
attr = channel + ".Description";
cdescr = GetAttribute( attr);
main()
extern string signals[4000];
extern string sigchancons[4000];
string volume;
string outfilename;
string tmpfilename;
string lvolname;
string cmd;
int fp;
string msg;
# Write to temporary file
fprintf(fp, "%s;%s;\"%s\";\"%s\"\n", channel, signal, sdescr, cdescr);
string path = "$pwrp_doc/";
string fileend = "_iolist.csv";
string tmpname = "tmp";
# Write alive info to screen
cntr++;
cntr_tot++;
if (cntr >= 100)
cntr = 0;
printf("Writing line %d\n", cntr_tot);
endif
# Write excuse
printf("This will take some time, please wait...\n");
channel = GetNextAttrRef( "ChanIo", channel);
# Create temporary file name and output file name
volume = GetCurrentVolume();
lvolname = tolower(volume);
outfilename = path + lvolname + fileend;
tmpfilename = path + tmpname + fileend;
endwhile
# Open temporary file
fp = fopen(tmpfilename,"w");
# Print all channnels
print_channels( fp, "ChanDi", "Di");
print_channels( fp, "ChanDo", "Do");
print_channels( fp, "ChanAi", "Ai");
print_channels( fp, "ChanAo", "Ao");
print_channels( fp, "ChanCo", "Co");
print_channels( fp, "ChanIi", "Ii");
print_channels( fp, "ChanIo", "Io");
# Close temporary file
fclose(fp);
......@@ -388,9 +137,11 @@ main()
system( cmd );
# Write total no of lines to screen
printf("Total %d lines written to file %s\n", cntr_tot, outfilename);
printf("File %s created\n", outfilename);
msg = "File " + outfilename + " created";
MessageInfo( msg);
delete signals[1000];
delete sigchancons[1000];
endmain
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment