10 通常パラメタのヘッダ #include "mt_prm.h" 生成部
追記2018/3/9) 標準フィルター設定を固定し/^X/を削除(別で書き換える方式)
追記2018/2/19) オペコード DEFにUNDEFオプション追加
追記2018/2/18) オペコード _P_対応
ストラテジーを記述しているcsvファイルをC言語に取り込める形式に変換する部分にはawkを使っている
通常パラメタのヘッダ #include "mt_prm.h" 生成部は
#!/bin/awk BEGIN { FS="," printf("uint8_t* rule=\"%s\";\n",ARGV[1]) # print "int Xp=50;" print "double Xper1=88.0;" print "double Xpf1=0.75;" print "double Xper2=87.0;" print "double Xpf2=1.5;" print "double Xper3=87.0;" print "double Xpf3=2.3;" print "double Xper4=80.0;" print "double Xpf4=2.8;" print "double Xper5=78.0;" print "double Xpf5=3.0;" # ex_cnt=0 } $1=="NK225" { print "#define SHIJOU \"./code/codeNK225.cfg\"" } $1=="INDEX0" { print "#define SHIJOU \"./code/INDEX0.txt\"" } $1=="INDEX1" { print "#define SHIJOU \"./code/INDEX1.txt\"" } $1=="T1" { print "#define SHIJOU \"./code/codeT1.cfg\"" } $1=="NotT1" { print "#define SHIJOU \"./code/codeNotT1.cfg\"" } $1=="T1NotNK225" { print "#define SHIJOU \"./code/codeT1NotNK225.cfg\"" } $1=="FILTER" { print "#define FILTER" } $1=="DAYSON" { print "#define DAYSON" } $1=="Yson" { print "#define _YSON_" } $1=="Zday" { print "#define _ZDAY_" } /^Y/ { printf("double %s=%f;\n",$1,$2) } /^Z/ { printf("int %s=%d;\n",$1,$2) } /^[abcdefghijkz]/{ if ($2>$3) { printf("double P%s=%f,P%s%s=%f;\n",$1,$2,$1,$1,$3) } else { printf("double P%s=%f,P%s%s=%f;\n",$1,$3,$1,$1,$2) } } #拡張パラメタ対応 #入れ替え 234->342 $1=="_P" { if (ex_cnt==0) printf("#define Ex_para\n") ex_cnt++ if ($2>$3) { printf("double P%su=%f,P%sd=%f;\n",$4,$2,$4,$3) } else { printf("double P%su=%f,P%sd=%f;\n",$4,$3,$4,$2) } } #パラメタそのまま $1=="P" { if ($2>$3) { printf("double P%su=%f,P%sd=%f;\n",$4,$2,$4,$3) } else { printf("double P%su=%f,P%sd=%f;\n",$4,$3,$4,$2) } } #######add 2018/2/18 $1=="_P_" { if (ex_cnt==0) printf("#define Ex_para\n") ex_cnt++ } ######### $1=="MAX" { printf("#define MAX\n") } $1=="MIM" { printf("#define MIN\n") } $1=="BUG" { printf("#define BUG\n") } $1=="DEF" { if ($4=="UNDEF") {printf("#undef %s\n",$2)} printf("#define %s %s\n",$2,$3) } END {}