求校验和.txt

来自「串口通信中的求校验和」· 文本 代码 · 共 444 行

TXT
444
字号

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}


求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}






求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}










求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}



求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}


求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}






求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}










求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}


求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}


求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}






求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}










求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

求校验和
CString CChecksumDlg::SendNMEAData(CString &strData)
{
	char checksum = 0, cr = 13, ln = 10;
	char c1,c2; //2个半Byte校验值
	for(int i = 0; i < strData.GetLength(); i++)
		checksum = checksum^strData[i];
	c2 = checksum & 0x0f;
	c1 = (checksum >> 4) & 0x0f;
	if(c1 < 10)
		c1 += '0';
	else
		c1 += 'A' - 10;
	if(c2 < 10)
		c2 += '0';
	else
		c2 += 'A' - 10;
	CString str;
	str = '$' + strData +'*'+c1+c2+cr+ln;
	return str;
}

⌨️ 快捷键说明

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