⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.txt

📁 Borland c++编写
💻 TXT
字号:
#include<stdio.h>   //  i/o 函数
#include<string.h>  // 字符函数
#include<conio.h>   //  屏幕操作函数
#include<htxlcd.h> //   液晶显示子函数
#include<htlcd.h>   //  视窗定义.开关窗口.画框.监控电池状态
#include<dos.h>   
#include<commplus.h>   //  通信函数,如调用服务器.收发字符流.读入条形码
#include<cstream.h>
#include "Function.h"
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include "htproces.h"
#include "SUBFUN1.h"
#define _filename       "QDtable.dbf"
#define _filename1       "Tss.dbf";
#define _filename2       "Tjs.dbf";

typedef struct {
  char  Meterno[8];              //表号;
  unsigned char  Flag;           //窃电标识;
  char  StartDateTime[14];       //窃电起始时间;
  char  EndDateTime[14];         //窃电终止时间;
} DBF_REC;
typedef struct {
  char number[8];                 //表号;
  char time[6];                   //当前时间;
  char date[6];                   //当前日期;
  char lidn[8];                   //当前电能;
  char md[6];                     //当前最大需量;
  char glys[5];                   //功率因数;
  char ljxl[6];                   //累计最大需量;
  char axdy[4];                   //A相电压;
  char bxdy[4];                   //B相电压;
  char cxdy[4];                   //C相电压;
  char axdl[4];                   //A相电流;
  char bxdl[4];                   //B相电流;
  char cxdl[4];                   //C相电流;
  char yggl[6];                   //有功功率;
  char axgl[6];                   //A相有功功率;
  char bxgl[6];                   //B相有功功率;
  char cxgl[6];                   //C相有功功率;
  char axys[6];                   //A相功率因数;
  char bxys[6];                   //B相功率因数;
  char cxys[6];                   //C相功率因数;
} DBF_Tss;

typedef struct {
  char  number[8];               //表号;
  char  jssj[6];                 //结算时间;
  char  ygdn[8];                 //有功电能;
  char  zdxl[6];                 //最大需量(当前);
  char  fssj[12];                //最大需量发生时间;
  char  glys[4];                 //功率因数(平均);
  char  qdcs[4];                 //窃电次数;
  char  ljgl[6];                 //累积功率;
  }DBF_Tjs;

extern unsigned _stklen  = 32768U;
extern unsigned _heaplen = 1024U;
extern int ReceiveFileChar(unsigned char &C,int delay);
long fhdsize;
long frcsize;
long reccount;

FILE * fhandle;
FILE * fhandle_Tss;
FILE * fhandle_Tjs;

DBF_REC dbfitem;
DBF_Tss dbfitem_Tss;
DBF_Tjs dbfitem_Tjs;

void zdcd(void); //读自动菜单;
void sdcd(void); //读手动菜单;


// 读手动菜单
int sdcd(void){
MENU_ITM mainmenu[9];
int i;
char sd_kz;
do{
 mainmenu[0].menubar="0.结算点数据";
 mainmenu[1].menubar="1.实时数据";
 mainmenu[2].menubar="2.电表参数";
 mainmenu[3].menubar="3.窃电数据";
 mainmenu[4].menubar="4.需量数据";
 mainmenu[5].menubar="5.电表费率与时段"; 
 mainmenu[6].menubar="6.退出";
 mainmenu[7].menubar=null;
 for(i=0;i<=7;i++) mainmenu[i].menukey=i+48;
do{
	clrscr();
	SetPullMode(0);
	sd_kz=putch((char)menu(mainmenu,"手动抄表",1,1,1));
	SetPullMode(2);
	 if (sd_kz==key_esc) sd_kz='6';
	}while(sd_kz<'0' || sd_kz>'6');

switch (sd_kz){
	case '0':
		jsdsj();        //结算点数据;
		break;
	case '1':
		sssj();         //实时数据;
		break;
	case '2':
		dbcs()        //电表参数;
		break;
	case '3':
		qdsj()          //窃电数据;
		break;
	case '4':
		xlsj()          //需量数据;
		break;
	case '5':
		flsd()          //费率时段;
		break;
	
	case '6';
	        break;		    
	}
}while(sd_kz!='6');
}

//自动读数据
int zdcd(void)
{
   char * DataName=new char[6];
 
   DataName[0]=0;
   strcat(DataName, " ");
   char * Getval = new char[100];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
   if(ReadData(DataName,Getval,Addr))
   {
     printf("%s",Getval);
     getch();
     
   }
   delete [] DataName;

   delete [] Getval;
   delete [] Addr;
   return 1;	
}
//读电能
int readdn(void)
{
   char * DataName=new char[6];
   DataName[0]=0;
   strcat(DataName, "9010");
   char * Getval = new char[100];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
   if(ReadData(DataName,Getval,Addr))
   {
     printf("%s",Getval);
     getch();
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
   return 1;
}
//读窃电
int readqd(void)
(
 fhandle=fopen(_filename,"rb+");
   unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

  //read meter______________________________________________
   char * DataName=new char[6];

   DataName[0]=0;
   strcat(DataName, "9270");
   char * Getval = new char[600];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
  char * TStr=new char [10];
	int k=1;
   if(ReadData(DataName,Getval,Addr)==0)
   {
    
     char data[19][12];
     memcpy(data,Getval,strlen(Getval));
     int i,j;
     char DTStr[3];
     memcpy(dbfitem.Meterno,&Addr[3],8);
     for(i=0;i<20;i++)
     {
       dbfitem.Flag=data[i][0];
      strcpy(dbfitem.StartDateTime,"20");
      strcpy(dbfitem.EndDateTime,"20");
       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();
 }
    else
   {
     printf("%s","read meter data error\n");
     getch();
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
   delete  [] TStr;
  dbfclose();
   return(1);
}








//主程序
int main(){
unsigned char *HexBuff=new unsigned char[30];
int Leng=Str2Hex("12345",HexBuff);
MENU_ITM mainmenu[6];
char returnflag;	
MENU_ITM mainmenu[3];
char i;
int ii;
do{
clrscr();
mainmenu[0].menubar="0.自动抄表";
mainmenu[1].menubar="1.手动抄表";
mainmenu[2].menubar="2.退出";
mainmenu[3].menubar=NULL;
for(ii=0;ii<=2;ii++) mainmenu[ii].menukey=ii+48;
i=putch((char)menu(mainmenu,"主菜单",0,1,1));
switch (i){
	case '0':
		zdcd();  //自动读取数据
		break;
	case '1':
		sdcd();  //手动读取数据
		break;
	case '2':
		return(0);
	}
}while (i!='2');
return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -