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));
}
}
}