Files
shgx_tz_mes_backend_sync/ZR.Service/Utils/MyMatchPush/Watchup.cs
2025-12-20 15:48:20 +08:00

56 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Infrastructure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DOAN.ServiceCore.MyMatchPush
{
public class Watchup
{
private static int PackageSort = 1;
public static bool StartPush(string message, SocketGatewayServer _socketGateway)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
//发送报警信息
//包头
byte[] packageHeader = { 0x5A };
//包序号
byte[] packsort = { (byte)PackageSort };
PackageSort++;
if (PackageSort > 255)
{
PackageSort = 1;
}
// 地址
byte[] IPaddress = { 0xff, 0xff, 0xff, 0xff };
//命令码
byte[] CommandCode = { 0xE0 };
//数据长
//string message = $"产线:{record.LineCode},\n故障类型{record.FaultDict},\n故障内容:{record.FaultContext},\n报警人:{record.AskPerson}";
// string message = $"产线:{record.LineCode}";
byte[] MessageData = Encoding.GetEncoding("GBK").GetBytes(message);
byte[] MessageLength = { (byte)MessageData.Length };
// === 先拼接除 CRC 之外的所有部分 ===
byte[] dataWithoutCRC =
packageHeader
.Concat(packsort)
.Concat(IPaddress)
.Concat(CommandCode)
.Concat(MessageLength)
.Concat(MessageData).ToArray();
//CRC : 校验和CRC 前面所有数据之和除 256 的余数
byte[] CRC = { SocketGatewayServer.CalculateChecksum(dataWithoutCRC) };
byte[] Body = dataWithoutCRC.Concat(CRC).ToArray();
return _socketGateway.SendToGateway(Body);
}
}
}