53歳限界プログラマの憂鬱

SU/CAR-ST-APplication-cellsから派生したプログラマのブログ

来訪ありがとうございます
シストレツールを自作してました
自分用の記事が多いのであまり役には立たないブログでした

f:id:sucar:20150414193802p:plain

自作システム詳細目次

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()を追加

awk/mt_h_2.awk

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