summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmodules/scicos_blocks/src/c/cscopxy3d.c38
1 files changed, 26 insertions, 12 deletions
diff --git a/modules/scicos_blocks/src/c/cscopxy3d.c b/modules/scicos_blocks/src/c/cscopxy3d.c
index 1c106f177..47d596595 100755
--- a/modules/scicos_blocks/src/c/cscopxy3d.c
+++ b/modules/scicos_blocks/src/c/cscopxy3d.c
@@ -152,18 +152,20 @@ SCICOS_BLOCKS_IMPEXP void cscopxy3d(scicos_block * block, scicos_flag flag)
int j;
BOOL result;
-
+ // Define file pointer to write data to a log file which can used for output generation to the client
FILE* filePointer;
int processId;
char fileName[25];
char line[100];
-
filePointer = NULL;
processId = 0;
+ // Get the process id to give a unique name to the requested simulation
processId = getpid(); // On Linux
- sprintf(fileName, "scilab-log-%d.txt", processId);
+ sprintf(fileName, "scilab-log-%d.txt", processId);
+ // Open file in append mode
filePointer = fopen(fileName, "a");
+ // Give block id to distinguish blocks
int block_id=5;
switch (flag)
@@ -182,7 +184,7 @@ SCICOS_BLOCKS_IMPEXP void cscopxy3d(scicos_block * block, scicos_flag flag)
set_block_error(-5);
}
-
+ // Write data to define Initialization phase
fprintf(filePointer, "%d || Initialization %d\n", processId, iFigureUID);
break;
@@ -204,21 +206,32 @@ SCICOS_BLOCKS_IMPEXP void cscopxy3d(scicos_block * block, scicos_flag flag)
for (j = 0; j < block->insz[0]; j++)
{
+ // Store parameters required to generate output on the web
int iFigureUID = getFigure(block);
int iAxeUID = getAxe(iFigureUID, block);
int iPolylineUID = getPolyline(iAxeUID, block, j);
- fprintf(filePointer, "%d %d || %d | %d | %d || %f %f %f %d %f %f %f %f %f %f %s %f %f\n", block_id,processId, iFigureUID, iAxeUID, iPolylineUID, x[j], y[j], z[j],1,block->rpar[0],block->rpar[1],block->rpar[2],block->rpar[3],block->rpar[4],block->rpar[5],"CSCOPXY3D", block->rpar[6], block->rpar[7]);
- result = pushData(block, j);
- if (result == FALSE)
- {
- Coserror("%s: unable to push some data.", "cscopxy3d");
- break;
- }
+ // Store scilab's plotted data in the log file
+ fprintf(filePointer, "%d %d || %d | %d | %d || %f %f %f %d %f %f %f %f %f %f %s %f %f\n", block_id, processId, iFigureUID, iAxeUID, iPolylineUID, x[j], y[j], z[j], 1, block->rpar[0], block->rpar[1], block->rpar[2], block->rpar[3], block->rpar[4], block->rpar[5], "CSCOPXY3D", block->rpar[6], block->rpar[7]);
+ /*
+ block_id - block_id of this block, process_id - process id of currently running scilab's instance, iFigureUID - figure id of graph generated,
+ iAxeUID - axes id of graph, iPolylineUID - id for each separate output line of graph, x[j]- value of x-axis for j,
+ y[j] - value of y-axis for j, z[j] - value of z-axis for j, 1 - representing 1 output graph, block->rpar[0] - xMin value,
+ block->rpar[1] - xMax value, block->rpar[2] - yMin value, block->rpar[3] - yMax value, block->rpar[4] - zMin value, block->rpar[5] - zMax value,
+ block->rpar[6], block->rpar[7] - alpha and theta (angles of rotation of axes)
+ */
+
+ result = pushData(block, j);
+ if (result == FALSE)
+ {
+ Coserror("%s: unable to push some data.", "cscopxy3d");
+ break;
+ }
}
break;
case Ending:
+ // Write data to define Ending phase
fprintf(filePointer, "%d || Ending %d\n", processId, getFigure(block));
freeScoData(block);
@@ -227,7 +240,8 @@ SCICOS_BLOCKS_IMPEXP void cscopxy3d(scicos_block * block, scicos_flag flag)
default:
break;
}
- fclose(filePointer);
+ // Close the file pointer
+ fclose(filePointer);
}
/*-------------------------------------------------------------------------*/