📄 main.cpp
字号:
strcpy(name_z4,file_name);strcat(name_z4,".wt4");
if((fd=fopen(name_j1,"rb"))==NULL){return;}
fread((char *)p_buf_j1,sizeof(*p_buf_j1),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j2,"rb"))==NULL){return;}
fread((char *)p_buf_j2,sizeof(*p_buf_j2),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j3,"rb"))==NULL){return;}
fread((char *)p_buf_j3,sizeof(*p_buf_j3),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j4,"rb"))==NULL){return;}
fread((char *)p_buf_j4,sizeof(*p_buf_j4),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j5,"rb"))==NULL){return;}
fread((char *)p_buf_j5,sizeof(*p_buf_j5),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j6,"rb"))==NULL){return;}
fread((char *)p_buf_j6,sizeof(*p_buf_j6),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j7,"rb"))==NULL){return;}
fread((char *)p_buf_j7,sizeof(*p_buf_j7),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_j8,"rb"))==NULL){return;}
fread((char *)p_buf_j8,sizeof(*p_buf_j8),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_z1,"rb"))==NULL){return;}
fread((char *)p_buf_z1,sizeof(*p_buf_z1),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_z2,"rb"))==NULL){return;}
fread((char *)p_buf_z2,sizeof(*p_buf_z2),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_z3,"rb"))==NULL){return;}
fread((char *)p_buf_z3,sizeof(*p_buf_z3),BUF_SIZE,fd);
fclose(fd);
if((fd=fopen(name_z4,"rb"))==NULL){return;}
wav_bytes=fread((char *)p_buf_z4,sizeof(*p_buf_z4),BUF_SIZE,fd);
fclose(fd);
}else if(bd.hq_mode==HQ_CPZ24 ){
char name_j[16][100];
char name_z[8][100];
for(int i=0;i<16;i++){
sprintf(name_j[i],"%s.sr%d",file_name,i+1);
if((fd=fopen(name_j[i],"rb"))==NULL){err("read_j failed");return;}
fread((char *)p_buf_j[i],sizeof(*p_buf_j[0]),BUF_SIZE,fd); fclose(fd);
}
for(int i=0;i<8;i++){
sprintf(name_z[i],"%s.wt%d",file_name,i+1);
if((fd=fopen(name_z[i],"rb"))==NULL){err("read_z failed");return;}
if(i==7){
wav_bytes=fread((char *)p_buf_z[i],sizeof(*p_buf_z[0]),BUF_SIZE,fd);
fclose(fd);
}else{
fread((char *)p_buf_z[i],sizeof(*p_buf_z[0]),BUF_SIZE,fd);
fclose(fd);
}
}
}else if(bd.hq_mode==HQ_CPZGZ ){
char name_j[4][100];
char name_z[2][100];
for(int i=0;i<4;i++){
sprintf(name_j[i],"%s.sr%d",file_name,i+1);
if((fd=fopen(name_j[i],"rb"))==NULL){err("read_j failed");return;}
fread((char *)p_buf_j[i],sizeof(*p_buf_j[0]),BUF_SIZE,fd); fclose(fd);
}
for(int i=0;i<2;i++){
sprintf(name_z[i],"%s.wt%d",file_name,i+1);
if((fd=fopen(name_z[i],"rb"))==NULL){err("read_z failed");return;}
if(i==1){
wav_bytes=fread((char *)p_buf_z[i],sizeof(*p_buf_z[0]),BUF_SIZE,fd);
fclose(fd);
}else{
fread((char *)p_buf_z[i],sizeof(*p_buf_z[0]),BUF_SIZE,fd);
fclose(fd);
}
}
}else err("test_sub():not defined hq_mode");
for(int i=0;i<wav_bytes;i++){ //remove flag
for(int j=0;j<8;j++)(*(p_buf_j[j]+i))&=0x7fff;
for(int z=0;z<4;z++)(*(p_buf_z[z]+i))&=0x7fff;
if(bd.hq_mode==HQ_CPZ24){
for(int j=8;j<16;j++)(*(p_buf_j[j]+i))&=0x7fff;
for(int z=4;z<8;z++) (*(p_buf_z[z]+i))&=0x7fff;
}
}
if(bd.pb_mode!=PB_WAVE && bd.hq_mode!=HQ_2J1Z){ // 因为test时HQ_2J1Z不需要.k文件
strcpy(name_k,file_name);
strcat(name_k,".k");
if((fd=fopen(name_k,"rb"))==NULL){return;}
kg_now=fread((char *)kg,sizeof(kg_struct),KG_SIZE,fd)-1 ;
fclose(fd);
}
Repaint(); //???? test jax_hdx\跑车1022(7)时出戳,read 0xffffffff
offset_buf=wav_bytes; // StartDonClick 要用到flag_test,offset_buf
flag_test=1; // it is test
don_susp=FALSE;
donThread->Resume();
StartDon->Caption="退出动态称重Esc";
}
void __fastcall Tform_main::FormClose(TObject *Sender, TCloseAction &Action)
{
for(int j=0;j<8;j++) VirtualFree(p_buf_j[j],BUF_SIZE*sizeof(*p_buf_j[j]),MEM_DECOMMIT);
for(int z=0;z<4;z++) VirtualFree(p_buf_z[z],BUF_SIZE*sizeof(*p_buf_z[z]),MEM_DECOMMIT);
if(bd.hq_mode==HQ_NEWBDG||bd.hq_mode==HQ_CPZ24){
for(int j=8;j<16;j++) VirtualFree(p_buf_j[j],BUF_SIZE*sizeof(*p_buf_j[j]),MEM_DECOMMIT);
for(int z=4;z<8 ;z++) VirtualFree(p_buf_z[z],BUF_SIZE*sizeof(*p_buf_z[z]),MEM_DECOMMIT);
}
/*
VirtualFree(p_buf_j1,BUF_SIZE*sizeof(*p_buf_j1),MEM_DECOMMIT);
VirtualFree(p_buf_j2,BUF_SIZE*sizeof(*p_buf_j2),MEM_DECOMMIT);
VirtualFree(p_buf_j3,BUF_SIZE*sizeof(*p_buf_j1),MEM_DECOMMIT);
VirtualFree(p_buf_j4,BUF_SIZE*sizeof(*p_buf_j2),MEM_DECOMMIT);
VirtualFree(p_buf_j5,BUF_SIZE*sizeof(*p_buf_j1),MEM_DECOMMIT);
VirtualFree(p_buf_j6,BUF_SIZE*sizeof(*p_buf_j2),MEM_DECOMMIT);
VirtualFree(p_buf_j7,BUF_SIZE*sizeof(*p_buf_j1),MEM_DECOMMIT);
VirtualFree(p_buf_j8,BUF_SIZE*sizeof(*p_buf_j2),MEM_DECOMMIT);
VirtualFree(p_buf_z1,BUF_SIZE*sizeof(*p_buf_z1),MEM_DECOMMIT);
VirtualFree(p_buf_z2,BUF_SIZE*sizeof(*p_buf_z2),MEM_DECOMMIT);
VirtualFree(p_buf_z3,BUF_SIZE*sizeof(*p_buf_z1),MEM_DECOMMIT);
VirtualFree(p_buf_z4,BUF_SIZE*sizeof(*p_buf_z2),MEM_DECOMMIT);
if(bd.hq_mode==HQ_CPZ24){
VirtualFree(p_buf_j9,BUF_SIZE*sizeof(*p_buf_j9),MEM_DECOMMIT);
VirtualFree(p_buf_j10,BUF_SIZE*sizeof(*p_buf_j10),MEM_DECOMMIT);
VirtualFree(p_buf_j11,BUF_SIZE*sizeof(*p_buf_j11),MEM_DECOMMIT);
VirtualFree(p_buf_j12,BUF_SIZE*sizeof(*p_buf_j12),MEM_DECOMMIT);
VirtualFree(p_buf_j13,BUF_SIZE*sizeof(*p_buf_j13),MEM_DECOMMIT);
VirtualFree(p_buf_j14,BUF_SIZE*sizeof(*p_buf_j14),MEM_DECOMMIT);
VirtualFree(p_buf_j15,BUF_SIZE*sizeof(*p_buf_j15),MEM_DECOMMIT);
VirtualFree(p_buf_j16,BUF_SIZE*sizeof(*p_buf_j16),MEM_DECOMMIT);
VirtualFree(p_buf_z5,BUF_SIZE*sizeof(*p_buf_z5),MEM_DECOMMIT);
VirtualFree(p_buf_z6,BUF_SIZE*sizeof(*p_buf_z6),MEM_DECOMMIT);
VirtualFree(p_buf_z7,BUF_SIZE*sizeof(*p_buf_z7),MEM_DECOMMIT);
VirtualFree(p_buf_z8,BUF_SIZE*sizeof(*p_buf_z8),MEM_DECOMMIT);
} */
dir->Active=FALSE;
data->Active=FALSE;
table_pi2->Close();
fclose(prn);
sio_close(com_jpch);
}
//---------------------------------------------------------------------------
void __fastcall Tform_main::maxmin()
{
const int CE=10; // max车数
const int TAN=10; // max趟数
int tan,ce;
mm_cpz m[CE*TAN];
int miny[CE][4],maxy[CE][4];
int minpzc[CE], maxpzc[CE];
int minwei[CE], maxwei[CE];
int i;
//if(ce>CE){err("maxmin:ce>CE"); return;}
Repaint();
FILE *fd;
char msg[300];
if((fd=fopen(OUTFILE,"rb"))==NULL){err("maxmin:open err");return ;}
for(i=0;i<CE*TAN;i++){
if(fread(&m[i],sizeof(mm_cpz),1,fd)!=1 ) break;
/*
sprintf(msg,"%7.2f%7.2f%7.2f%7.2f%7d%5d %s",m[i].y[0] ,m[i].y[1],
m[i].y[2], m[i].y[3], m[i].wei,m[i].spd,m[i].filename);
Canvas->TextOut(20,30+18*i,msg);*/
}
ce=m[0].ce_cnt;
tan=i/ce;
fclose(fd);
sprintf(msg,"ce=%d tan=%d",ce,tan);
err(msg);
Repaint();
for(int i=0;i<ce;i++){
for(int j=0;j<4;j++){
miny[i][j]=findminy(ce,tan,i,j,&m[0]);
maxy[i][j]=findmaxy(ce,tan,i,j,&m[0]);
}
minpzc[i]=findminpzc(ce,tan,i,&m[0]);
maxpzc[i]=findmaxpzc(ce,tan,i,&m[0]);
minwei[i]=findminwei(ce,tan,i,&m[0]);
maxwei[i]=findmaxwei(ce,tan,i,&m[0]);
}
if((fd=fopen("c:\\cb4\\wingdh\\MAXMIN.txt","wb"))==NULL){err("open maxmin err");return;}
for(int i=0;i<ce;i++){
for(int j=0;j<tan;j++){
char cy[4],cwei,cpzc;
for(int k=0;k<4;k++){
if(maxy[i][k]==j*ce+i) cy[k]='+';
else if(miny[i][k]==j*ce+i) cy[k]='-';
else cy[k]=' ';
}
if(maxwei[i]==j*ce+i) cwei='+';
else if(minwei[i]==j*ce+i) cwei='-';
else cwei=' ';
if(maxpzc[i]==j*ce+i) cpzc='+';
else if(minpzc[i]==j*ce+i) cpzc='-';
else cpzc=' ';
sprintf(msg," %05.02f%c %05.02f%c %05.02f%c %05.02f%c %5d%c %5d%c %2d %s\r\n",
m[j*ce+i].y[0],cy[0], m[j*ce+i].y[1],cy[1],
m[j*ce+i].y[2],cy[2], m[j*ce+i].y[3],cy[3],
m[j*ce+i].wei,cwei, m[j*ce+i].pzc,cpzc, m[j*ce+i].spd, m[j*ce+i].filename );
fwrite(msg,strlen(msg),1,fd);
}
sprintf(msg,"----------------------------------------------------------------------\r\n");
fwrite(msg,strlen(msg),1,fd);
sprintf(msg," %05.02f %05.02f %05.02f %05.02f %5d %5d\r\n",
m[maxy[i][0]].y[0]-m[miny[i][0]].y[0],m[maxy[i][1]].y[1]-m[miny[i][1]].y[1],
m[maxy[i][2]].y[2]-m[miny[i][2]].y[2],m[maxy[i][3]].y[3]-m[miny[i][3]].y[3],
m[maxwei[i]].wei-m[minwei[i]].wei,m[maxpzc[i]].pzc-m[minpzc[i]].pzc);
fwrite(msg,strlen(msg),1,fd);
sprintf(msg,"\r\n");
fwrite(msg,strlen(msg),1,fd);
}
fclose(fd);
/*
for(int i=0;i<ce;i++){
sprintf(msg," %5d(%s)--%5d(%s)--%4d %5d(%s)--%5d(%s)--%4d\r\n",
m[minwei[i]].wei,m[minwei[i]].filename,
m[maxwei[i]].wei,m[maxwei[i]].filename,m[maxwei[i]].wei-m[minwei[i]].wei,
m[minpzc[i]].pzc,m[minpzc[i]].filename,
m[maxpzc[i]].pzc,m[maxpzc[i]].filename,m[maxpzc[i]].pzc-m[minpzc[i]].pzc);
fwrite(msg,strlen(msg),1,fd);
}
sprintf(msg,"\r\n");
fwrite(msg,strlen(msg),1,fd);
for(int i=0;i<ce;i++){
sprintf(msg," %05.02f(%s)--%05.02f(%s)--%05.02f %05.02f(%s)--%05.02f(%s)--%05.02f\r\n",
m[miny[i][0]].y[0],m[miny[i][0]].filename,
m[maxy[i][0]].y[0],m[maxy[i][0]].filename,m[maxy[i][0]].y[0]-m[miny[i][0]].y[0],
m[miny[i][1]].y[1],m[miny[i][1]].filename,
m[maxy[i][1]].y[1],m[maxy[i][1]].filename,m[maxy[i][1]].y[1]-m[miny[i][1]].y[1]);
fwrite(msg,strlen(msg),1,fd);
}
sprintf(msg,"\r\n");
fwrite(msg,strlen(msg),1,fd);
for(int i=0;i<ce;i++){
sprintf(msg," %05.02f(%s)--%05.02f(%s)--%05.02f %05.02f(%s)--%05.02f(%s)--%05.02f\r\n",
m[miny[i][2]].y[2],m[miny[i][2]].filename,
m[maxy[i][2]].y[2],m[maxy[i][2]].filename,m[maxy[i][2]].y[2]-m[miny[i][2]].y[2],
m[miny[i][3]].y[3],m[miny[i][3]].filename,
m[maxy[i][3]].y[3],m[maxy[i][3]].filename,m[maxy[i][3]].y[3]-m[miny[i][3]].y[3]);
fwrite(msg,strlen(msg),1,fd);
//Canvas->TextOut(20,30+18*i,msg);
}
fclose(fd);*/
}
//---------------------------------------------------------------------------
void __fastcall Tform_main::Timer1Timer(TObject *Sender)
{
long now_ad_j1,now_ad_z1,
now_ad_j2,now_ad_z2,
now_ad_j3,now_ad_z3,
now_ad_j4,now_ad_z4,
now_ad_j5,
now_ad_j6,
now_ad_j7,
now_ad_j8;
long tmp_wei;
char str[30];
if(bd.hq_mode==HQ_NEWCPZ){
get_ad_jin_newcpz(now_ad_j1,now_ad_j2,now_ad_z1,now_ad_z2,
now_ad_j3,now_ad_j4,now_ad_z3,now_ad_z4,
now_ad_j5,now_ad_j6,now_ad_j7,now_ad_j8 );
now_ad=( now_ad_j1+now_ad_j2+now_ad_j3+now_ad_j4+
now_ad_j5+now_ad_j6+now_ad_j7+now_ad_j8 )/8*bd.k_j_z +
( now_ad_z1+now_ad_z2+now_ad_z3+now_ad_z4)/4-zero_jin;
}
else if(bd.hq_mode==HQ_CPZ24){
long adj[16],adz[8];
long tmp_j,tmp_z,i;
get_ad_jin_cpz24(adj,adz);
for(i=0,tmp_j=0;i<16;i++) tmp_j+=adj[i];
for(i=0,tmp_z=0;i<8; i++) tmp_z+=adz[i];
now_ad=tmp_j*bd.k_j_z/16+tmp_z/8-zero_jin;
}
else if(bd.hq_mode==HQ_CPZGZ){
long adj[16],adz[8];
long tmp_j,tmp_z,i;
get_ad_jin_cpz24(adj,adz);
for(i=0,tmp_j=0;i<4;i++) tmp_j+=adj[i];
for(i=0,tmp_z=0;i<2; i++) tmp_z+=adz[i];
now_ad=tmp_j*bd.k_j_z/2+tmp_z-zero_jin;
}
else if(bd.hq_mode==HQ_NEWBDG){
long adj[16],adz[8];
long tmp_j,tmp_z,i;
get_ad_jin_cpz24(adj,adz);
for(i=0,tmp_j=0;i<4;i++) tmp_j+=adj[i];
for(i=0,tmp_z=0;i<2; i++) tmp_z+=adz[i];
now_ad=tmp_j*bd.k_j_z/4+tmp_z/2-zero_jin;
}
else{
get_ad_jin(&now_ad_j1,&now_ad_j2,&now_ad_z1,&now_ad_z2);
if(bd.hq_mode==HQ_2J1Z){
now_ad=(now_ad_j1+now_ad_j2)/2*bd.k_j_z +now_ad_z1-zero_jin;
}else if(bd.hq_mode==HQ_DG){
if(bd.fx==1 && bd.pb_mode==PB_WAVE)//wave判别方向需2个重力通道
now_ad=(now_ad_z1+now_ad_z2)/2-zero_jin;
else
now_ad=now_ad_z1-zero_jin;
}else if(bd.hq_mode==HQ_BDG){
if(bd.fx==1 && bd.pb_mode==PB_WAVE)//wave判别方向需2个重力通道
now_ad=now_ad_j1*bd.k_j_z +(now_ad_z1+now_ad_z2)/2-zero_jin;
else
now_ad=now_ad_j1*bd.k_j_z +now_ad_z1-zero_jin;
}else if(bd.hq_mode==HQ_CPZ){
now_ad=((now_ad_j1+now_ad_j2)*bd.k_j_z+now_ad_z1+now_ad_z2)/2-zero_jin;
}else if(bd.hq_mode==HQ_STMDG){
now_ad=now_ad_z1+now_ad_z2-zero_jin;
}else if(bd.hq_mode==HQ_STMBDG||bd.hq_mode==HQ_BDG3){
now_ad=(now_ad_j1+now_ad_j2)*bd.k_j_z+now_ad_z1+now_ad_z2-zero_jin;
}
#ifdef DEBUG
//now_ad=165536;
#endif
}
// now_ad 被 TDonThread::Execute() 使用
if(now_ad<10 && now_ad> -10 && bd.use_status==USE_ZC){ // 零点跟踪
zero_jin+=now_ad;
tmp_wei=0;
}else
tmp_wei=ad_to_wei_jin(now_ad);
// show jin tai
if(bd.use_status==USE_TS){
sprintf(str,"%5.2f",(float)tmp_wei/1000.0);
wei_for_see->Font->Color=clYellow;
wei_for_see->Font->Size=16;
wei_for_see->Caption=str;
}else wei_for_see->Caption=" " ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -