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 { /// /// 字节数拆分求和 /// /// 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; } /// /// 获取校验码---字节拆分求和 /// /// /// 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)); } } }