Files
FT479/WPFWCSDemo/Utilities/Checksum.cs
2026-06-29 14:46:32 +08:00

57 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WPFWCSDemo.Models.Devices.CircleRGVStation;
namespace WPFWCSDemo.Utilities
{
public class Checksum
{
/// <summary>
/// 字节数拆分求和
/// </summary>
/// <returns></returns>
public static short GetChecksum(int number)
{
byte byte1 = (byte)(number >> 24);
byte byte2 = (byte)(number >> 16);
byte byte3 = (byte)(number >> 8);
byte byte4 = (byte)(number);
int sum = byte1 + byte2 + byte3 + byte4;
return (short)sum;
}
public static short GetChecksum(short number)
{
byte byte1 = (byte)(number >> 8);
byte byte2 = (byte)(number);
int sum = byte1 + byte2;
return (short)sum;
}
/// <summary>
/// 获取校验码---字节拆分求和
/// </summary>
/// <param name="circleRGVStationCommand"></param>
/// <returns></returns>
public static short GetChecksum(CircleRGVStationCommand circleRGVStationCommand)
{
return Convert.ToInt16(GetChecksum((short)circleRGVStationCommand.Write_DeviceNumber) +
GetChecksum((short)circleRGVStationCommand.Write_SourceLocation) +
GetChecksum((short)circleRGVStationCommand.Write_TargetLocation) +
GetChecksum((short)circleRGVStationCommand.Write_TaskType) +
GetChecksum(circleRGVStationCommand.Write_TaskNumber) +
GetChecksum((short)1));
}
}
}