gprobecommander.cpp

来自「RS232 user sample with windows API.」· C++ 代码 · 共 102 行

CPP
102
字号
// GProbeCommander.cpp :
//

#include "stdafx.h"
#include "GProbeCommander.h"

void GProbeRegisterWrite(enum GProbeInterface Interface, USHORT sRegAddr, USHORT sRegVal,UCHAR *ucpBuffer)
{

	ucpBuffer[0] = 7;
	ucpBuffer[1] = RegisterWrite;
	ucpBuffer[2] = (UCHAR)(sRegAddr >> 8);
	ucpBuffer[3] = (UCHAR)sRegAddr;

	ucpBuffer[4] = (UCHAR)(sRegVal >> 8);
	ucpBuffer[5] = (UCHAR)sRegVal;
	ucpBuffer[6] = (UCHAR)CalcGProbeCRC(Interface, ucpBuffer);
}

void GProbeRegisterRead(enum GProbeInterface Interface, USHORT sRegAddr, UCHAR *ucpBuffer)
{

	ucpBuffer[0] = 5;
	ucpBuffer[1] = RegisterRead;
	ucpBuffer[2] = (UCHAR)(sRegAddr >> 8);
	ucpBuffer[3] = (UCHAR)sRegAddr;
	ucpBuffer[4] = (UCHAR)CalcGProbeCRC(Interface, ucpBuffer);
}

BYTE CalcGProbeCRC(enum GProbeInterface Interface, UCHAR *ucpBuffer)
{
	BYTE bChksum; 
	BYTE i;

	bChksum = 0;

	if(ucpBuffer[0] < 1)
	{
		return 0;
	}

	for ( i = 0; i < (ucpBuffer[0]-1); ++i ) 
		bChksum += ucpBuffer[i]; 
	
	bChksum = ~bChksum + 1; 

	return bChksum;
}

void GProbeAppsTestParam(enum GProbeInterface Interface, BYTE bIndex, DWORD dwValue, UCHAR *ucpBuffer)
{
	ucpBuffer[0] = 8;
	ucpBuffer[1] = AppsTestParam;
	ucpBuffer[2] = bIndex;
	ucpBuffer[3] = (UCHAR)(dwValue >> 24);
	ucpBuffer[4] = (UCHAR)(dwValue >> 16);
	ucpBuffer[5] = (UCHAR)(dwValue >> 8);
	ucpBuffer[6] = (UCHAR)(dwValue);
	ucpBuffer[7] = CalcGProbeCRC(Interface, ucpBuffer);
}

void GProbeAppsTest(enum GProbeInterface Interface, BYTE bAppstestNum, UCHAR *ucpBuffer)
{

	ucpBuffer[0] = 4;
	ucpBuffer[1] = AppsTest;
	ucpBuffer[2] = bAppstestNum;
	ucpBuffer[3] = CalcGProbeCRC(Interface, ucpBuffer);
}

UCHAR* SearchGProbeStr(UCHAR *ucpBuffer, DWORD dwSize, UCHAR *ucpStr)
{
	
	DWORD i;
	UCHAR *p, *ucpLoc;

	i = 0;

	do
	{
				
		if(dwSize < (i+ ucpBuffer[i]))
		{
			return NULL;
		}
		
		p = ucpBuffer + i;

		if((ucpLoc = (UCHAR *)strstr((char *)p, (char *)ucpStr)) != NULL)
		{
			return ucpLoc;
		}
				
		if(dwSize == (i+ ucpBuffer[i]))
		{
			return NULL;
		}
		
		i += ucpBuffer[i]; 

	} while(1);
}

⌨️ 快捷键说明

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