📄 netweb.cpp
字号:
// netweb.cpp : Implementation of Cnetweb
#include "stdafx.h"
#include "ComServer.h"
#include "netweb.h"
#include "server1.h"
/////////////////////////////////////////////////////////////////////////////
// Cnetweb
STDMETHODIMP Cnetweb::getNetTraceCT(short *count)
{
// TODO: Add your implementation code here
*count=net_trc_ct;
return S_OK;
}
STDMETHODIMP Cnetweb::getNetTrace(short count, short *wno, short *idno, short *rno, DATE *dt, short *addr)
{
// TODO: Add your implementation code here
int i;
for(i=0;i<count;i++)
{
wno[i]=net_trace[i].workno;
idno[i]=net_trace[i].personID;
rno[i]=net_trace[i].reno;
dt[i]=net_trace[i].dt;
addr[i]=net_trace[i].addrno;
}
net_trc_ct-=count;
if(net_trc_ct!=0)
{
for(i=0;i<net_trc_ct;i++)
net_trace[i]=net_trace[count+i];
}
return S_OK;
}
STDMETHODIMP Cnetweb::getNetAlarmtraceCT(short *count)
{
// TODO: Add your implementation code here
*count=net_alm_ct;
return S_OK;
}
STDMETHODIMP Cnetweb::getNetAlarmtrace(short count, short *wno, short *idno, short *rno, DATE *dt, short *addr)
{
// TODO: Add your implementation code here
int i;
for(i=0;i<count;i++)
{
wno[i]=net_alarm[i].workno;
idno[i]=net_alarm[i].personID;
rno[i]=net_alarm[i].reno;
dt[i]=net_alarm[i].dt;
addr[i]=net_alarm[i].addrno;
}
net_alm_ct-=count;
if(net_alm_ct!=0)
{
for(i=0;i<net_alm_ct;i++)
net_alarm[i]=net_alarm[count+i];
}
return S_OK;
}
STDMETHODIMP Cnetweb::getNetUptjCT(short *count)
{
// TODO: Add your implementation code here
*count=net_uptj_ct;
return S_OK;
}
STDMETHODIMP Cnetweb::getNetUptj(short count, short *wno, short *idno, DATE *downdt, DATE *updt,short *dw_rno, short *up_rno,short *tag)
{
// TODO: Add your implementation code here
int i;
for(i=0;i<count;i++)
{
wno[i]=net_uptj[i].workno;
idno[i]=net_uptj[i].personID;
downdt[i]=net_uptj[i].downdtm;
updt[i]=net_uptj[i].updtm;
dw_rno[i]=net_uptj[i].dw_rno;
up_rno[i]=net_uptj[i].up_rno;
tag[i]=net_uptj[i].tag;
}
net_uptj_ct-=count;
for(i=0;i<net_uptj_ct;i++)
net_uptj[i]=net_uptj[count+i];
return S_OK;
}
STDMETHODIMP Cnetweb::getNetLocalCT(short *count)
{
// TODO: Add your implementation code here
int i,j=0;
for(i=0;i<4096;i++)
{
if((perstmb[i].entrytm!=0)||(perstmb[i].exittm!=0))
j++;
}
*count=j;
return S_OK;
}
STDMETHODIMP Cnetweb::getNetLocal(short count,short *rid, short *addr,DATE *loctm,DATE *entm,DATE *extm,
short *dw_rno,short *up_rno, short *lastrno,short *tag)
{
// TODO: Add your implementation code here
int i,j=0;
for(i=0;i<4096;i++)
{
if((perstmb[i].entrytm!=0)||(perstmb[i].exittm!=0))
{
rid[j]=i;
addr[j]=perstmb[i].addrno;
loctm[j]=perstmb[i].localtm;
entm[j]=perstmb[i].entrytm;
extm[j]=perstmb[i].exittm;
dw_rno[j]=perstmb[i].dw_rno;
up_rno[j]=perstmb[i].up_rno;
lastrno[j]=perstmb[i].lastreno;
tag[j]=perstmb[i].tag;
j++;
}
}
return S_OK;
}
STDMETHODIMP Cnetweb::gethotuse(short *rb)
{
// TODO: Add your implementation code here
*rb=comsertype;
return S_OK;
}
STDMETHODIMP Cnetweb::getfzstate(short *st)
{
// TODO: Add your implementation code here
int i;
for(i=0;i<255;i++)
st[i]=stinfo.stinfo[i];
return S_OK;
}
STDMETHODIMP Cnetweb::setfzstate(short *st)
{
// TODO: Add your implementation code here
int i;
for(i=0;i<255;i++)
stinfo.stinfo[i]=st[i];
return S_OK;
}
int Cnetweb::if_leapyear(int year)
{
int leap_year;
if(year % 4==0)
{
if(year%100==0)
{
if(year%400==0)
leap_year=1;
else
leap_year=0;
}
else leap_year=1;
}
else
leap_year=0;
return leap_year;
}
DATE Cnetweb::dateCal(int year,int month,int day,int hour,int minute,int second)
{
int i;
DATE tmpdate=0;
for(i=1900;i<year;i++)
{
if (if_leapyear(i)==1)
tmpdate+=366;
else
tmpdate+=365;
}
tmpdate+=1;
tmpdate+=day;
for(i=1;i<month;i++)
{
if((i==1) || (i==3) || (i==5) || (i==7) || (i==8) || (i==10))
tmpdate+=31;
else if(i==2)
{
if(if_leapyear(year)==1)
tmpdate+=29;
else
tmpdate+=28;
}
else
tmpdate+=30;
}
tmpdate+=(double)hour/24;
tmpdate+=(double)minute/(24*60);
tmpdate+=(double)second/(24*60*60);
return tmpdate;
}
STDMETHODIMP Cnetweb::getNetPasstime(short count, short *wno, short *idno, DATE *downdt, short *dwrno, short *Addr, DATE *localdt, short *rno)
{
// TODO: Add your implementation code here
int i,j;
SYSTEMTIME pdt;
DATE currentdt;
short rfid,rfidbak;
j=0;
GetLocalTime(&pdt);
currentdt=dateCal(pdt.wYear,pdt.wMonth,pdt.wDay,pdt.wHour,pdt.wMinute,pdt.wSecond);
for(i=0;i<prst.count;i++)
{
rfid=prst.pl[i].rfid;
rfidbak=prst.pl[i].rfidbak;
if(perstmb[rfid].entrytm!=0)
{
double ddt=currentdt-perstmb[rfid].entrytm;
if(ddt>=(double)prst.pl[i].validtime/24.0)
{
wno[j]=prst.pl[i].workno;
idno[j]=rfid;
downdt[j]=perstmb[rfid].entrytm;
dwrno[j]=perstmb[rfid].dw_rno;
Addr[j]=perstmb[rfid].addrno;
rno[j]=perstmb[rfid].lastreno;
localdt[j]=perstmb[rfid].localtm;
j++;
}
}
if((perstmb[rfidbak].entrytm!=0)&&(rfidbak!=0))
{
double ddt=currentdt-perstmb[rfidbak].entrytm;
if(ddt>=(double)prst.pl[i].validtime/24.0)
{
wno[j]=prst.pl[i].workno;
idno[j]=rfidbak;
downdt[j]=perstmb[rfidbak].entrytm;
dwrno[j]=perstmb[rfidbak].dw_rno;
Addr[j]=perstmb[rfidbak].addrno;
rno[j]=perstmb[rfidbak].lastreno;
localdt[j]=perstmb[rfidbak].localtm;
j++;
}
}
}
return S_OK;
}
STDMETHODIMP Cnetweb::getNetPasstimeCT(short *count)
{
// TODO: Add your implementation code here
*count=passtmct;
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -