📄 main1.cpp
字号:
#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 "SUBFUN.h"
//*****************************
#define key_esc 0
//*******************************
// extern unsigned _stklen = 32768U;
// extern unsigned _heaplen = 1024U;
extern int ReceiveFileChar(unsigned char &C,int delay);
//**********************************************************
void getpstr(char *pstr)
{
char s[10];
char ch;
int i;
for (i=0; i<8; i++) {
do ch=getch();
while (((ch < '0') || (ch > '9')) && (ch!=0x0d));
if (ch==0x0d) {
s[i]=0x0;
i=8;
} else {
// putch('*');
printf("*");
s[i]=ch;
}
}
s[8]=0;
strcpy(pstr, s);
return;
}
//****************************************************************
//***************************************************************}
void AppendRecord (DBF_REC &crecord)
{
fseek(fhandle,4L,0);
long recount;
fread(&recount,sizeof(long),1,fhandle);
recount++;
fseek(fhandle,4L,0);
fwrite(&recount,sizeof(long),1,fhandle);
fseek(fhandle,-1,2);
char buff[38];
buff[0]=0X20;
memcpy(&buff[1],&crecord,38);
fwrite(buff,38,1,fhandle);
fseek(fhandle,0,2);
buff[0]=0x1A;
fwrite(&buff[0],1,1,fhandle);
}
//***************************************************************
void dbfclose(void)
{
fclose(fhandle);
}
void beep(int cnt)
{
int i;
for (i=0; i<cnt; i++)
asm {
mov ax, 0e07h
int 10h
}
}
//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 {
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':
jssj(); //结算点数据;
break;
case '1':
dqsj(); //实时数据;
break;
case '2':
// dbcs() //电表参数;
break;
case '3':
readqd() //窃电数据;
break;
case '4':
// xlsj() //需量数据;
break;
case '5':
// flsd() //费率时段;
break;
case '6': break;
}
}while(sd_kz!='6');
return 0;
}
//自动读数据**********************************************************
int zdcd(void)
{
clrscr();
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 broadcost(void)
{
// char *sdate=new char[1];
char *Addr=new char[8];
struct time t;
char stime[3];
gettime(&t);
stime[0]=t.ti_hour;
stime[1]=t.ti_min;
stime[2]=t.ti_sec;
char * shour= & stime[0];
char * smin = & stime[1];
char * ssec = & stime[2];
struct date d;
char sdate[2];
getdate(&d);
sdate[0]=d.da_year;
sdate[1]=d.da_mon;
sdate[2]=d.da_day;
char * syear = & sdate[0];
char * smon = & sdate[1];
char * sday = & sdate[2];
syear[0]=0;
smon[0]=0;
sday[0]=0;
shour[0]=0;
smin[0]=0;
ssec[0]=0;
Addr[0]=0;
// strcat(writeName, "C331");
// strcat(time, "0800");
// strcat(cost, "01");
//time *ti;//=new time;
// date *da;//=new date;
//stime=gettime(&ti);
//sdate=getdate(&da);
strcat(Addr, "99999999");
clrscr();
getch();
if (Lwritedata(shour,smin,ssec,syear,smon,sday,Addr))
{
// clrscr();
// printf ("%s","success");
getch();
// break;
}
delete []stime;
delete []sdate;
delete []Addr;
return 0;
}
//*******************************************************
//********************************************************
//**************************************************************
//主程序
int main(){
//unsigned char *HexBuff=new unsigned char[30];
//i t Leng=Str2Hex("12345",HexBuff);
FILE * fh;
fh=fopen("D:\\config.ini","rb+");
char password[10];
char s1[10];
fread(password,8,1,fh);
password[8]=0;
int iLoop=0;
while(iLoop<3)
{
clrscr();
printf("输入密码:");
getpstr(s1);
if(strcmp(s1,password)!=0)
{
clrscr();
iLoop++;
printf("密码错误!");
getch();
}
else
break;
}
if(iLoop==3) return 0;
fclose(fh);
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=" 3.修改密码";
mainmenu[4].menubar=" 4.退出";
mainmenu[5].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':
broadcost(); //广播校时
break;
case '2':
sdcd(); //手动读取数据
break;
case '3':
// repassword(); //修改密码
break;
case 0:
break;
}
}while (i!='4');
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -