将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。

This commit is contained in:
QI Mingxuan
2026-04-16 17:31:13 +08:00
parent 6ec4c3ddaa
commit 2bd6e566c3
581 changed files with 74600 additions and 222 deletions
@@ -0,0 +1,45 @@
using System.IO;
using XP.Hardware.RaySource.Comet.Messages;
using XP.Hardware.RaySource.Comet.Messages.Responses;
namespace XP.Hardware.RaySource.Comet.Host.Pipe
{
/// <summary>
/// 推送管理器
/// 负责将主动推送消息通过管道发送给主进程
/// </summary>
static class PushNotifier
{
private static StreamWriter _writer;
private static object _writeLock;
/// <summary>
/// 初始化推送管理器
/// </summary>
/// <param name="writer">管道写入器</param>
/// <param name="writeLock">写入锁对象</param>
public static void Initialize(StreamWriter writer, object writeLock)
{
_writer = writer;
_writeLock = writeLock;
}
/// <summary>
/// 发送推送消息给主进程
/// 使用 lock 保护写入,防止与命令响应交错
/// </summary>
/// <param name="response">推送响应对象(IsPush 应为 true</param>
public static void SendPush(RaySourceResponse response)
{
if (_writer == null || _writeLock == null)
return;
response.IsPush = true;
var json = MessageSerializer.Serialize(response);
lock (_writeLock)
{
_writer.WriteLine(json);
}
}
}
}