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 を指定できる
