체크섬 계산에 도움이 필요합니다. 이 (! 나의 코드)하지만 사양 http://www.leupamed.at/?wpdmact=process&did=NC5ob3RsaW5rC# 2 바이트 계산 체크섬
private void CalcCheckSum(string msg, out byte checksum1, out byte checksum2)
{
byte cs1 = 0;
byte cs2 = 0;
// Always use "\n" as line break when calculating the checksum.
msg = msg.Replace("\r\n", "\n"); // Find and replace CR LF with LF
msg = msg.Replace("\r", "\n"); // Find and replace CR with LF.
for (int i = 0; i < msg.Length; i++)
{
cs1 += (byte) msg[i];
cs2 += cs1;
}
checksum1 = cs1;
checksum2 = cs2;
}
에서이 같은 패킷 만들어야합니다
<!--:Begin:Chksum:1:--><!--:Ack:Msg:3:0:--><!--:End:Chksum:1:184:62:-->
문자열 <!--:Ack:Msg:3:0:-->
는 실제 데이터, 내가 두를 계산해야합니다 체크섬 바이트 (184 및 62)를 생성하고 이들을 최종 패킷에 삽입합니다 (위에서 볼 수 있듯이).
그러나 계산에서 내 결과가 10이고
var msg = "<!--:Ack:Msg:3:0:-->";
byte checksum1 = 0;
byte checksum2 = 0;
CalcCheckSum(msg, out checksum1, out checksum2);
(62) 지금은 어떻게 올바른 체크섬 값을 계산하지 않습니다. 응답에 대한 체크섬입니다. 요청을 확인하는 것이 아닙니다. 낮은 평판 때문에 이미지를 업로드 할 수 없으므로 사양의 마지막 줄을보십시오. https://drive.google.com/file/d/0B_Gs9q9SJteadVRwSVc1a2FmUTg/edit?usp=sharing 이 확인 메시지는 요청에 따라 독립적입니다. 요청 메시지 ID 3에 대한 응답이어야합니다.
솔루션? 체크섬 계산 후
:
checksum1 = 256 - 이제, 문제없이 통신 = 62
장치 (10 + 62) = 184
checksum2.
어쩌면 구문을 설명하고 정확히 무엇이 문제인지 말해야합니다. 샘플 입출력은 많은 도움이됩니다. –
CalcCheckSum은 2 바이트의 문자열을 계산해야하는 함수입니다. 은 계산 된 문자열이지만 문서에서 예제로 출력 바이트 (cs1 = 184, cs2 = 62)를 사용할 수 없습니다. – bisi
나는 아직도 그것을 얻지 않는다. –