You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.1 KiB
29 lines
1.1 KiB
namespace leak_test_project.Utils
|
|
{
|
|
/// <summary>
|
|
/// Sentinel C28 전용 CRC-8 계산 유틸리티.
|
|
/// 문서 4페이지의 에러 체크 규격(8-Bit CRC in HEX)을 구현함.
|
|
/// </summary>
|
|
public static class SentinelCrc8
|
|
{
|
|
/// <summary>
|
|
/// 입력된 데이터의 8비트 CRC 값을 HEX 문자열로 계산함.
|
|
/// </summary>
|
|
/// <param name="data">CRC를 계산할 문자열</param>
|
|
/// <returns>2자리의 HEX 문자열 (예: "A5")</returns>
|
|
public static string CalculateHex(string data)
|
|
{
|
|
// PDF 4페이지: 8-Bit CRC in HEX. Used for error checking.
|
|
// 주의: 제조사에서 제공하는 특정 다항식(Polynomial)이 있는 경우,
|
|
// 아래의 간단한 XOR 방식이 아닌 해당 알고리즘으로 교체해야 함.
|
|
byte crc = 0;
|
|
foreach (char c in data)
|
|
{
|
|
crc ^= (byte)c; // 현재는 기본 XOR 기반의 간단한 체크섬 예시
|
|
}
|
|
|
|
// 2자리 16진수 문자열로 반환 (대문자)
|
|
return crc.ToString("X2");
|
|
}
|
|
}
|
|
}
|
|
|