mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-29 01:24:51 +02:00
Additional changes, almost all stylistic, to make the resis/ section
style conform to the rest of the database. It is difficult to work with code written in a sloppy, random style.
This commit is contained in:
+121
-125
@@ -47,78 +47,76 @@ ResPrintNetwork(filename, reslist)
|
||||
resResistor *reslist;
|
||||
|
||||
{
|
||||
char bigname[255],name1[255],name2[255];
|
||||
|
||||
char bigname[255], name1[255], name2[255];
|
||||
FILE *fp;
|
||||
int i=1;
|
||||
int i = 1;
|
||||
|
||||
sprintf(bigname,"%s.%s",filename,"res");
|
||||
fp = fopen(bigname,"w");
|
||||
sprintf(bigname, "%s.%s", filename, "res");
|
||||
fp = fopen(bigname, "w");
|
||||
if (fp != NULL)
|
||||
{
|
||||
for (;reslist;reslist=reslist->rr_nextResistor)
|
||||
{
|
||||
if (reslist->rr_connection1->rn_id == 0)
|
||||
{
|
||||
reslist->rr_connection1->rn_id = i++;
|
||||
}
|
||||
if (reslist->rr_connection2->rn_id == 0)
|
||||
{
|
||||
reslist->rr_connection2->rn_id = i++;
|
||||
}
|
||||
if (reslist->rr_connection1->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
sprintf(name1,"gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(name1,"n%d_%d_%d",
|
||||
for (; reslist; reslist = reslist->rr_nextResistor)
|
||||
{
|
||||
if (reslist->rr_connection1->rn_id == 0)
|
||||
{
|
||||
reslist->rr_connection1->rn_id = i++;
|
||||
}
|
||||
if (reslist->rr_connection2->rn_id == 0)
|
||||
{
|
||||
reslist->rr_connection2->rn_id = i++;
|
||||
}
|
||||
if (reslist->rr_connection1->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
sprintf(name1, "gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(name1, "n%d_%d_%d",
|
||||
reslist->rr_connection1->rn_id,
|
||||
reslist->rr_connection1->rn_loc.p_x,
|
||||
reslist->rr_connection1->rn_loc.p_y);
|
||||
}
|
||||
if (reslist->rr_connection2->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
sprintf(name2,"gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(name2,"n%d_%d_%d",
|
||||
}
|
||||
if (reslist->rr_connection2->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
sprintf(name2,"gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(name2, "n%d_%d_%d",
|
||||
reslist->rr_connection2->rn_id,
|
||||
reslist->rr_connection2->rn_loc.p_x,
|
||||
reslist->rr_connection2->rn_loc.p_y);
|
||||
}
|
||||
fprintf(fp,"r %s %s %f\n",name1,name2,
|
||||
(float)(reslist->rr_value)*MILLITOKILO);
|
||||
}
|
||||
}
|
||||
fprintf(fp, "r %s %s %f\n", name1, name2,
|
||||
(float)(reslist->rr_value) * MILLITOKILO);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void
|
||||
ResPrintCurrents(filename,extension,node)
|
||||
char *filename;
|
||||
float extension;
|
||||
resNode *node;
|
||||
ResPrintCurrents(filename, extension, node)
|
||||
char *filename;
|
||||
float extension;
|
||||
resNode *node;
|
||||
|
||||
{
|
||||
char bigname[255];
|
||||
FILE *fp;
|
||||
int resCurrentPrintFunc();
|
||||
char bigname[255];
|
||||
FILE *fp;
|
||||
int resCurrentPrintFunc();
|
||||
|
||||
sprintf(bigname,"%s.%d",filename,abs((int)(extension)));
|
||||
sprintf(bigname, "%s.%d", filename, abs((int)(extension)));
|
||||
|
||||
fp = fopen(bigname,"w");
|
||||
if (fp != NULL)
|
||||
{
|
||||
(void) ResTreeWalk(node,NULL,resCurrentPrintFunc,
|
||||
RES_DO_FIRST,RES_NO_LOOP,RES_NO_FLAGS,fp);
|
||||
}
|
||||
fclose(fp);
|
||||
fp = fopen(bigname, "w");
|
||||
if (fp != NULL)
|
||||
{
|
||||
(void) ResTreeWalk(node, NULL, resCurrentPrintFunc,
|
||||
RES_DO_FIRST, RES_NO_LOOP, RES_NO_FLAGS, fp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*-------------------------------------------------------------------------
|
||||
*
|
||||
@@ -130,100 +128,98 @@ ResPrintCurrents(filename,extension,node)
|
||||
*/
|
||||
|
||||
void
|
||||
resCurrentPrintFunc(node,resistor,filename)
|
||||
resNode *node;
|
||||
resResistor *resistor;
|
||||
FILE *filename;
|
||||
resCurrentPrintFunc(node, resistor, filename)
|
||||
resNode *node;
|
||||
resResistor *resistor;
|
||||
FILE *filename;
|
||||
|
||||
{
|
||||
tElement *workingDev;
|
||||
float i_sum=0.0;
|
||||
tElement *workingDev;
|
||||
float i_sum = 0.0;
|
||||
|
||||
for (workingDev = node->rn_te; workingDev != NULL;
|
||||
workingDev=workingDev->te_nextt)
|
||||
{
|
||||
for (workingDev = node->rn_te; workingDev != NULL;
|
||||
workingDev = workingDev->te_nextt)
|
||||
{
|
||||
if ((workingDev->te_thist->rd_status & RES_DEV_PLUG) ||
|
||||
workingDev->te_thist->rd_gate != node)
|
||||
i_sum += workingDev->te_thist->rd_i;
|
||||
}
|
||||
if (i_sum != 0.0)
|
||||
{
|
||||
if (node->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
fprintf(filename,"i gnd %f\n",i_sum);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(filename,"i n%d_%d %f\n",node->rn_loc.p_x,
|
||||
node->rn_loc.p_y,i_sum);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (i_sum != 0.0)
|
||||
{
|
||||
if (node->rn_why == RES_NODE_ORIGIN)
|
||||
{
|
||||
fprintf(filename, "i gnd %f\n", i_sum);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(filename, "i n%d_%d %f\n", node->rn_loc.p_x,
|
||||
node->rn_loc.p_y, i_sum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ResDeviceCounts()
|
||||
{
|
||||
int i,j,k;
|
||||
resNode *n;
|
||||
resDevice *t;
|
||||
resResistor *r;
|
||||
int i,j,k;
|
||||
resNode *n;
|
||||
resDevice *t;
|
||||
resResistor *r;
|
||||
|
||||
for (n=ResNodeList,i=0;n!=NULL;n=n->rn_more,i++);
|
||||
for (t=ResDevList,j=0;t!=NULL;t=t->rd_nextDev,j++);
|
||||
for (r=ResResList,k=0;r!=NULL;r=r->rr_nextResistor,k++);
|
||||
TxError("n=%d t=%d r=%d\n",i,j,k);
|
||||
TxFlushErr();
|
||||
for (n = ResNodeList, i = 0; n != NULL; n = n->rn_more, i++);
|
||||
for (t = ResDevList, j = 0; t != NULL; t = t->rd_nextDev, j++);
|
||||
for (r = ResResList, k = 0; r != NULL; r = r->rr_nextResistor, k++);
|
||||
TxError("n=%d t=%d r=%d\n", i, j, k);
|
||||
TxFlushErr();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ResWriteECLFile(filename,reslist,nodelist)
|
||||
char *filename;
|
||||
resResistor *reslist;
|
||||
resNode *nodelist;
|
||||
ResWriteECLFile(filename, reslist, nodelist)
|
||||
char *filename;
|
||||
resResistor *reslist;
|
||||
resNode *nodelist;
|
||||
|
||||
{
|
||||
char newname[100],*tmpname,*per;
|
||||
FILE *fp;
|
||||
int nodenum = 0;
|
||||
char newname[100], *tmpname, *per;
|
||||
FILE *fp;
|
||||
int nodenum = 0;
|
||||
|
||||
strcpy(newname,filename);
|
||||
if (per = strrchr(newname,'.')) *per = '\0';
|
||||
strcat(newname,".res");
|
||||
strcpy(newname, filename);
|
||||
if (per = strrchr(newname,'.')) *per = '\0';
|
||||
strcat(newname, ".res");
|
||||
|
||||
if ((fp = fopen(newname,"w")) == NULL)
|
||||
{
|
||||
TxError("Can't open %s\n",newname);
|
||||
return;
|
||||
}
|
||||
for (;nodelist;nodelist=nodelist->rn_more)
|
||||
{
|
||||
if (nodelist->rn_name == NULL)
|
||||
{
|
||||
if (nodelist->rn_noderes == 0)
|
||||
{
|
||||
strcpy(newname,"gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
(void)sprintf(newname,"n%d_%d_%d",nodelist->rn_loc.p_x,
|
||||
nodelist->rn_loc.p_y,nodenum++);
|
||||
}
|
||||
tmpname = (char *) mallocMagic((unsigned) (strlen(newname)+1));
|
||||
strcpy(tmpname,newname);
|
||||
nodelist->rn_name = tmpname;
|
||||
}
|
||||
}
|
||||
for (;reslist;reslist = reslist->rr_nextResistor)
|
||||
{
|
||||
|
||||
fprintf(fp,"r %s %s %f %s %d\n",
|
||||
reslist->rr_node[0]->rn_name,reslist->rr_node[1]->rn_name,
|
||||
if ((fp = fopen(newname, "w")) == NULL)
|
||||
{
|
||||
TxError("Can't open %s\n", newname);
|
||||
return;
|
||||
}
|
||||
for (; nodelist; nodelist = nodelist->rn_more)
|
||||
{
|
||||
if (nodelist->rn_name == NULL)
|
||||
{
|
||||
if (nodelist->rn_noderes == 0)
|
||||
{
|
||||
strcpy(newname, "gnd");
|
||||
}
|
||||
else
|
||||
{
|
||||
(void)sprintf(newname, "n%d_%d_%d", nodelist->rn_loc.p_x,
|
||||
nodelist->rn_loc.p_y, nodenum++);
|
||||
}
|
||||
tmpname = (char *)mallocMagic((unsigned) (strlen(newname) + 1));
|
||||
strcpy(tmpname, newname);
|
||||
nodelist->rn_name = tmpname;
|
||||
}
|
||||
}
|
||||
for (; reslist; reslist = reslist->rr_nextResistor)
|
||||
{
|
||||
fprintf(fp, "r %s %s %f %s %d\n",
|
||||
reslist->rr_node[0]->rn_name,
|
||||
reslist->rr_node[1]->rn_name,
|
||||
/* /1000.0 gets ohms from milliohms */
|
||||
(float)(reslist->rr_value)/1000.0,
|
||||
DBTypeShortName(reslist->rr_tt),reslist->rr_csArea);
|
||||
}
|
||||
fclose(fp);
|
||||
(float)(reslist->rr_value) / 1000.0,
|
||||
DBTypeShortName(reslist->rr_tt), reslist->rr_csArea);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user