📄 function.cpp
字号:
// Function.cpp: implementation of the CFunction class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TLhzpro.h"
#include "Function.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CFunction::CFunction()
{
}
CFunction::~CFunction()
{
}
CString CFunction::Gethzdz(char *errcode, char *inBuf)
{
CString qmStr;
char *s=inBuf;
CString sT;
sT=inBuf;
char *e=errcode;
unsigned char qh,wh,qw;
unsigned char tm;
long fh;
long ii;
char mb[4];
CString mm,mm0;
int num=0;
while(*e && num<4)
{ qh=*(e);
qmStr=qh;
mm0=mm0+qmStr;
e++;
num++;
}
num=0;
char *lpReturnedString = new char[100];
LPCTSTR lpKeyName,lpDefault;
DWORD nSize=100;
LPCTSTR lpAppName="区位码";
DWORD nBufferLength=100;
char lpBuffer[100];
memset(lpBuffer,0,sizeof(lpBuffer));
GetCurrentDirectory(
nBufferLength, // size, in characters, of directory buffer
lpBuffer); // pointer to buffer for current directory
lpFileName=lpBuffer;
lpFileName=lpFileName+"\\setup.ini";
int j=0;
while(*s)
{
fh=*(s);
if (fh<0)
{
CString HZ=sT.Mid(j,2);
j+=2;
lpKeyName=HZ;
GetPrivateProfileString(
lpAppName, // points to section name
lpKeyName, // points to key name
lpDefault, // points to default string
lpReturnedString, // points to destination buffer
nSize, // size of destination buffer
lpFileName // points to initialization filename
);
mm=mm+lpReturnedString;
s+=2; //因为一个汉字内码占用两个字节,所以s必须加2
}
else
{
qmStr=*(s);
j++;
lpKeyName=qmStr;
GetPrivateProfileString(
lpAppName, // points to section name
lpKeyName, // points to key name
lpDefault, // points to default string
lpReturnedString, // points to destination buffer
nSize, // size of destination buffer
lpFileName // points to initialization filename
);
mm=mm+lpReturnedString;
s+=1;
}
num=num+1;
}
qmStr.Format("%02d",num);
mm=mm0+qmStr+mm;
return mm;
}
int CFunction::Encode(char *inStr)
{
char inBuf[120];
char outBuf[120];
char *s=inStr;
int num=1;
inBuf[0]='R';
inBuf[1]='P';
int i=0;
while(*s)
{
i++;
char c1=*(s);
char c2=*(s+1);
inBuf[i+1]=CalculateHex(c1)*16+CalculateHex(c2);
s+=2;
}
inBuf[i+2]= 0;
EncodeTextToHostLinkCommand(inBuf, outBuf);
unsigned long writeBytes;
WriteFile(gPLC1ComHandleProc, outBuf, strlen(outBuf), &writeBytes, NULL);
Sleep(100);
ReadFile(gPLC1ComHandleProc, inBuf, writeBytes+num*4, &writeBytes, NULL);
if (inBuf[0]=='O' && inBuf[1]=='K')
{
return 1;
}
else
{
return 0;
}
return 0;
}
int CFunction::Encode(char *error, char *inStr)
{
char inBuf[120];
char outBuf[120];
char errBuf[10];
char *e=error;
char *s=inStr;
int num=1;
errBuf[0]='R';
errBuf[1]='P';
int i=0;
while(*e && i<2)
{
i++;
char c1=*(e);
char c2=*(e+1);
errBuf[i+1]=CalculateHex(c1)*16+CalculateHex(c2);
e+=2;
}
i=0;
while(*s)
{
char c1=*(s);
char c2=*(s+1);
inBuf[i]=CalculateHex(c1)*16+CalculateHex(c2);
s+=2;
i++;
}
inBuf[i]= 0;
// EncodeTextToHostLinkCommand(inBuf, outBuf);
EncodeTextToHostLinkCommandFortl(inBuf,errBuf,outBuf);
unsigned long writeBytes;
WriteFile(gPLC1ComHandleProc, outBuf, strlen(outBuf), &writeBytes, NULL);
Sleep(100);
ReadFile(gPLC1ComHandleProc, inBuf, writeBytes+num*4, &writeBytes, NULL);
if (inBuf[0]=='O' && inBuf[1]=='K')
{
return 1;
}
else
{
return 0;
}
return 0;
}
CString CFunction::Gethzdz(char *inBuf)
{
CString qmStr;
char *s=inBuf;
CString sT;
sT=inBuf;
unsigned char qh,wh,qw;
unsigned char tm;
long fh;
long ii;
char mb[4];
CString mm,mm0;
int num=0;
num=0;
char *lpReturnedString = new char[100];
LPCTSTR lpKeyName,lpDefault;
DWORD nSize=100;
LPCTSTR lpAppName="区位码";
DWORD nBufferLength=100;
char lpBuffer[100];
memset(lpBuffer,0,sizeof(lpBuffer));
GetCurrentDirectory(
nBufferLength, // size, in characters, of directory buffer
lpBuffer); // pointer to buffer for current directory
lpFileName=lpBuffer;
lpFileName=lpFileName+"\\setup.ini";
int j=0;
while(*s)
{
fh=*(s);
if (fh<0)
{
CString HZ=sT.Mid(j,2);
j+=2;
lpKeyName=HZ;
GetPrivateProfileString(
lpAppName, // points to section name
lpKeyName, // points to key name
lpDefault, // points to default string
lpReturnedString, // points to destination buffer
nSize, // size of destination buffer
lpFileName // points to initialization filename
);
mm=mm+lpReturnedString;
s+=2; //因为一个汉字内码占用两个字节,所以s必须加2
}
else
{
qmStr=*(s);
j++;
lpKeyName=qmStr;
GetPrivateProfileString(
lpAppName, // points to section name
lpKeyName, // points to key name
lpDefault, // points to default string
lpReturnedString, // points to destination buffer
nSize, // size of destination buffer
lpFileName // points to initialization filename
);
mm=mm+lpReturnedString;
s+=1;
}
num=num+1;
}
qmStr.Format("%02d",num);
//mm=mm0+qmStr+mm;//old
mm=qmStr+mm;//
return mm;
}
CString CFunction::GetZmdz(char *errcode)
{
CString qmStr;
char *e=errcode;
unsigned char qh,wh,qw;
CString mm0;
int num=0;
while(*e && num<4)
{ qh=*(e);
qmStr=qh;
mm0=mm0+qmStr;
e++;
num++;
}
return mm0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -