📄 function1.cpp
字号:
char * DataName=new char[6];
char * Getval = new char[6000];
char * Addr =new char[10];
char xttime[2];
char xtdate[2];
char dq[20];
//DBF_Tss dbfitem;
DataName[0]=0;
Addr[0]=0;
Getval[0]=0;
i=0;
cont=0;
//取系统时间;
struct date d;
struct time t;
getdate(&d);
gettime(&t);
xttime[0]= t.ti_hour;
xttime[1]= t.ti_min;
xttime[2]= t.ti_sec;
xtdate[0]= d.da_year;
xtdate[1]= d.da_mon;
xtdate[2]= d.da_day;
//数据库;
fhandle=fopen("Tss.dbf","rb+"); //以可读写方式打开数据库;
unsigned tmp;
char fhead[12];
fread(fhead,12,1,fhandle);
fhdsize=fhead[8];
frcsize=fhead[10];
reccount=fhead[4];
//自动读数据;
clrscr();
printf("wait...");
getch();
strcat(DataName,sdbs[0]);
for (i=0;i<16;)
{
for (cont=0;cont<3;)
{
if(ReadData(DataName,Getval,Addr)==0)
{
memcpy(&dq[i],Getval,strlen(Getval));
DataName[0]=0;
Getval[0]=0;
}
else
{
cont++;
}
}//for cont
i++;
strcat(DataName, sdbs[i]);
}//for i
//写数据库;
memcpy(dbfitem_Tss.number,&Addr[3],8);
memcpy(dbfitem_Tss.time,xttime,6);
memcpy(dbfitem_Tss.date,xtdate,6);
memcpy(dbfitem_Tss.lidn,&dq[0],8);
memcpy(dbfitem_Tss.md,&dq[1],6);
memcpy(dbfitem_Tss.glys,&dq[2],6);
memcpy(dbfitem_Tss.axdy,&dq[3],6);
memcpy(dbfitem_Tss.bxdy,&dq[4],6);
memcpy(dbfitem_Tss.cxdy,&dq[5],6);
memcpy(dbfitem_Tss.axdl,&dq[6],6);
memcpy(dbfitem_Tss.bxdl,&dq[7],6);
memcpy(dbfitem_Tss.cxdl,&dq[8],6);
memcpy(dbfitem_Tss.yggl,&dq[9],6);
memcpy(dbfitem_Tss.axgl,&dq[10],6);
memcpy(dbfitem_Tss.bxgl,&dq[11],6);
memcpy(dbfitem_Tss.cxgl,&dq[12],6);
memcpy(dbfitem_Tss.axys,&dq[13],6);
memcpy(dbfitem_Tss.bxys,&dq[14],6);
memcpy(dbfitem_Tss.cxys,&dq[15],6);
AppendRecord1(dbfitem_Tss);
printf("success");
getch();
delete []DataName;
delete []Getval;
delete []Addr;
dbfclose();
return 0;
}
//-------------------------------------------------------------------------------------------
int jssj(void)//结算数据库;
{
static char *sdjs[]={
"9010", //正向有功电能;
"A010", //最大需量;
"B010", //结算时间;
};
int cont,i;
char * DataName=new char[6];
char * Getval = new char[600];
char * Addr =new char[10];
char js[10];
char xttime[2];
char xtdate[2];
// DBF_Tjs dbfitem;
DataName[0]=0;
Addr[0]=0;
Getval[0]=0;
i=0;
cont=0;
//取系统时间;
struct date d;
struct time t;
getdate(&d);
gettime(&t);
xttime[0]= t.ti_hour;
xttime[1]= t.ti_min;
xttime[2]= t.ti_sec;
xtdate[0]= d.da_year;
xtdate[1]= d.da_mon;
xtdate[2]= d.da_day;
//数据库;
fhandle=fopen("Tjs.dbf","rb+");
unsigned tmp;
char fhead[12];
fread(fhead,12,1,fhandle);
fhdsize=fhead[8];
frcsize=fhead[10];
reccount=fhead[4];
clrscr();
printf("%s","wait...");
getch();
strcat(DataName, sdjs[0]);
for (i=0;i<4;)
{
for (cont=0;cont<3;)
{
if(ReadData(DataName,Getval,Addr)==0)
{
memcpy(&js[i],Getval,strlen(Getval));
DataName[0]=0;
Getval[0]=0;
}
else
{
cont++;
}
}//for cont
i++;
strcat(DataName, sdjs[i]);
}//for i
memcpy(dbfitem_Tjs.number,&Addr[3],8);
memcpy(&dbfitem_Tjs.jssj,xtdate,6);
memcpy(&dbfitem_Tjs.ygdn,&js[0],6);
memcpy(&dbfitem_Tjs.ygdn,&js[1],6);
memcpy(&dbfitem_Tjs.fssj,&js[2],12);
AppendRecord2(dbfitem_Tjs);
printf("%s","success");
// break;
delete [] DataName;
delete [] Getval;
delete [] Addr;
dbfclose();
return 0 ;
}
//--------------------------------------------------------------------------------------------
//读窃电
int qdsj(void)
{
clrscr();
#ifdef DEBUG
fhandle=fopen("QDtable.dbf","rb+");
#else
fhandle=fopen("d:\\QDtable.dbf","rb+");
#endif
unsigned tmp;
char fhead[12];
fread(fhead,12,1,fhandle);
fhdsize=fhead[8];
frcsize=fhead[10];
reccount=fhead[4];
DBF_REC dbfitem;
char * DataName=new char[6];
char * Getval = new char[6000];
char * Addr =new char[10];
//char * tr=new char [10];
Getval[0]=0;
DataName[0]=0;
Addr[0]=0;
char * tr=new char [10];
strcat(DataName, "9270");
strcat(Addr,"99999999");
printf("%s","wait...");
getch();
//memcpy ( dbfitem.Meterno,Addr,8);
if (ReadData(DataName,Getval,Addr)==0)
{
char *pStr=Getval;
int i;
char str[3];
char DTStr[3];
memcpy(dbfitem.Meterno,Addr,8); //&Addr[3]
for(i=0;i<20;i++)
{
dbfitem.Flag=(pStr[0]-48)*10+(pStr[1]-48);
dbfitem.StartDateTime[0]=0;
dbfitem.EndDateTime[0]=0;
strcpy(dbfitem.StartDateTime,"20");
strcpy(dbfitem.EndDateTime,"20");
memcpy(&dbfitem.StartDateTime[2],&pStr[2],12);
memcpy(&dbfitem.EndDateTime[2],&pStr[14],12);
pStr+=26;
/*for(j=1;j<=12;j++)
{
Byte2Hex(data[i][j],DTStr);
if(j<=6)
memcpy(&dbfitem.StartDateTime[(j-1)*2+2],DTStr,2);
else
memcpy(&dbfitem.EndDateTime[(j-7)*2+2],DTStr,2);
} //for
*/
AppendRecord(dbfitem);
} //for
getch();
int k=1;
while(strlen(Getval)!=0)
{
memcpy(tr,Getval,10);
tr[10]=0;
printf("%d:%s\n",k,tr);
getch();
Getval+=10;
k++;
}
}
/* else
{
printf("%s","read meter data error\n");
getch();
}*/
delete [] DataName;
delete [] Getval;
delete [] Addr;
delete [] tr;
dbfclose();
return (0);
}
//-------------------------------------------------------------------------------------------
int flwrite() //设置时段费率 ;
{
static char *sdsd[]={
"C331", //时段1;
"C332", //时段2;
"C333", //时段3;
"C334", //时段4;
"C335", //时段5;
"C336", //时段6;
"C337", //时段7;
"C338", //时段8;
};
int i,j,cont;
char *time=new char[3];
char *cost=new char[1];
char *Addr=new char[8];
char *writeName=new char[3];
char fhead[12];
char Td[7][1];
char Mc[1],Mc1[1];
DBF_Tsd dbfitem;
// struct sdk * start;
// struct sdk * last;
struct sdk *find(char * Mc);
struct sdk * info;
writeName[0]=0;
time[0]=0;
cost[0]=0;
Addr[0]=0;
cont=0;
// start = last = NULL;
fhandle=fopen("Tsd.dbf","r");
// if ((fhandle= fopen("Tsd.dbf","r")==NULL) exit[0];
// getc(Mc);
fread(fhead,12,1,fhandle);
fhdsize=fhead[8];
frcsize=fhead[10];
reccount=fhead[4];
Mc[0]=getch();
if (!(info=find(Mc)))
printf("not found\n");
else
{ fread (info,sizeof(struct sdk),1,fhandle);
getdatetime(Td[0],info->Td0);
getdatetime(Td[1],info->Td1);
getdatetime(Td[2],info->Td2);
getdatetime(Td[3],info->Td3);
getdatetime(Td[4],info->Td4);
getdatetime(Td[5],info->Td5);
getdatetime(Td[6],info->Td6);
getdatetime(Td[7],info->Td7);
}
//设定时段;
for (i=0;i<8;)
{
if (strlen(Td[i])!=NULL)
{
strcat(writeName, sdsd[i]);
strcat(Addr, "99999999");
memcpy(time,&Td[i][0],4);
memcpy(cost,&Td[i][1],1);
clrscr();
printf("wait...");
getch();
for (cont=0;cont<3;)
{
if ( writeData(writeName,time,cost,Addr))
{
// clrscr();
printf ("success");
getch();
// break;
writeName[0]=0;
time[0]=0;
//Addr[0]=0;
}
else
{
cont++;
}
}
}
}
//写套数;
strcat(writeName, "E010");
// strcat(time, todt);
// strcat(cost,fl);
strcat(Addr, "99999999");
clrscr();
getch();
if ( writedata1(writeName,Mc,Addr))
{
// clrscr();
printf ("success");
getch();
// break;
}
delete []writeName;
delete []time;
delete []Addr;
dbfclose();
return 0;
}
//-------------------------------------------------------------------------------------------
int flread(void)//读费率电能;
{
static char * sdfl[]={
"9011", //费率1;
"9012", //费率2;
"9013", //费率3;
"9014", //费率4;
"9015", //费率5;
"9016", //费率6;
"9017", //费率7;
"9018", //费率8;
"E010", //时段套数;
} ;
char * Getval = new char[100];
char * Addr =new char[10];
char * DataName=new char[6];
char fl[8];
char lx[1];
int cont,i;
//DBF_Tfl dbfitem;
Getval[0]=0;
Addr[0]=0;
// lx[0]="T";
DataName[0]=0;
i=0;
cont=0;
//数据库;
fhandle=fopen("Tfl.dbf","rb+");
unsigned tmp;
char fhead[12];
fread(fhead,12,1,fhandle);
fhdsize=fhead[8];
frcsize=fhead[10];
reccount=fhead[4];
strcat(DataName, sdfl[0]); //读费率1
strcat(Addr,"99999999");
clrscr();
printf("%s","wait...");
getch();
for (i=0;i<8;)
{
for (cont=0;cont<3;)
{
if(ReadData(DataName,Getval,Addr))
{
memcpy(&fl[i],Getval,strlen(Getval));
DataName[0]=0;
Getval[0]=0;
}
else
{
cont++;
}
}
i++;
strcat(DataName, sdfl[i]);
}//for
memcpy(dbfitem_Tfl.BH,&Addr[3],8);
memcpy(dbfitem_Tfl.DN1,&fl[0],8);
memcpy(dbfitem_Tfl.DN2,&fl[1],8);
memcpy(dbfitem_Tfl.DN3,&fl[2],8);
memcpy(dbfitem_Tfl.DN4,&fl[3],8);
memcpy(dbfitem_Tfl.DN5,&fl[4],8);
memcpy(dbfitem_Tfl.DN6,&fl[5],8);
memcpy(dbfitem_Tfl.DN7,&fl[6],8);
memcpy(dbfitem_Tfl.DN8,&fl[7],8);
memcpy(dbfitem_Tfl.TS,&fl[8],1);
memcpy(dbfitem_Tfl.LX,&lx,1);
AppendRecord3(dbfitem_Tfl);
printf("read data success");
getch();
delete [] DataName;
delete [] Getval;
delete [] Addr;
return 0;
}
//--------------------------------------------------------------------------------
int bcs(void) //读表参数;
{
static char * sdbc[]={
"C032", //表号;
"C034", //设备号;
"C030", //表常数;
"C010", //日期周次;
"C011", //时间;
"B210", //编程时间;
"B211", //清零时间;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -