#ifdef USER_MODE #include #include #include int write_output(const char *fname,const char *vname,void *data,int length,int dec,char format) { FILE *fp; int i; printf("Writing %d elements of type %d to %s\n",length,format,fname); if (format == 10 || format ==11 || format == 12 ) { fp = fopen(fname,"a+"); } else if (format != 10 && format !=11 && format != 12 ) { fp = fopen(fname,"w+"); fprintf(fp,"%s = [",vname); } if (fp== NULL) { printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname); return(-1); } switch (format) { case 0: // real 16-bit for (i=0;i 0)) fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); else if ((i == 2*(length-1))) fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]); else if ((i == 0)) fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); } break; case 11 : //case eren 16 bit real for channel magnitudes: for (i=0;i 0)) fprintf(fp,"%d,",((short *)data)[i]); else if ((i == (length-1))) fprintf(fp,"%d;",((short *)data)[i]); else if (i == 0) fprintf(fp,"\n%d,",((short *)data)[i]); } printf("\n erennnnnnnnnnnnnnn: length :%d",length); break; case 12 : // case eren for log2_maxh real unsigned 8 bit fprintf(fp,"%d \n",((unsigned char *)&data)[0]); break; } if (format != 10 && format !=11 && format !=12 ) { fprintf(fp,"];\n"); fclose(fp); return(0); } else if (format == 10 || format ==11 || format == 12 ) { fclose(fp); return(0); } return 0; } #endif // USER_MODE