signal import の拡張
suQ2/main/main_000.c
double *V[100];
char *imfn;
char *imdir;
char *imdir;を追加して
#ifdef _SG_IMPORT_ //ここにsignal import処理 //ck[i][j]==0 だとシグナルになる //つまり何もしないとすべてにシグナルが立っている imfn=_SG_IMPORT_; #ifndef _SG_IMP_DIR_ import(imfn); #else imdir=_SG_IMP_DIR_; import2(imfn,imdir); #endif #endif
_SG_IMP_DIR_が定義されていると import2()を呼ぶ
suQ2/main/sub/import.h
int import(char *); int import2(char *,char *);
suQ2/main/sub/import.c
int import2(char *imfn,char *imdir) { int i,j,n; char buf[40]; char impfilename[100]; char Dt[11]; int date,jdate; uint8_t imCode[8]; FILE *fp; sprintf(impfilename,"./import/%s/signal%s.txt",imdir,imfn); for (j=0;j<DtMax;j++){ for (i=0;i<CodeMax;i++){ ck[i][j]=-1; } } fp=fopen(impfilename, "rt"); if (fp) { fprintf(stderr,"%s import\n",impfilename); j=0; while ( fgets(buf,40,fp)!=NULL) { n=check0(buf); if (n!=0) { sscanf(buf,"%s %s",Dt,imCode); date=dt2int(Dt); for (;j<DtMax;j++) { jdate=dt2int(dt[j]); if (date==jdate) break; } if (j==DtMax) break; if (date==jdate){ //念のため for (i=0;i<CodeMax;i++) { if (strcmp(imCode,code[i])==0) { ck[i][j]=0; //debug //fprintf(stderr,"%s:: %s %d %d\n",code[i],imCord,i,j); break; } } } } } fclose(fp); } else fprintf(stderr,"cannot open import%s\n",imfn); return 0; }
import2()を追加
$1=="_SG_IMP_" || $1=="SG_IMP" { printf("#define _SG_IMPORT_ \"%s\"\n",$2) if ($3!="") { printf("#define _SG_IMP_DIR_ \"%s\"\n",$3) } }
_SG_IMP_に処理追加
これで
_SG_IMP_ ALL subdir
とやるとimportするsub dir を指定できる