IVisualizationDataProcessor.cs
2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Rcs.Domain.Models.VDA5050;
namespace Rcs.Infrastructure.Mqtt.ProcessorFactory;
/// <summary>
/// 可视化数据处理结果
/// @author zzy
/// </summary>
public class VisualizationProcessResult
{
/// <summary>
/// 处理是否成功
/// </summary>
public bool Success { get; set; }
/// <summary>
/// 处理结果消息
/// </summary>
public string Message { get; set; } = string.Empty;
/// <summary>
/// 位置信息是否已更新
/// </summary>
public bool LocationUpdated { get; set; }
/// <summary>
/// 创建成功结果
/// </summary>
/// <param name="message">结果消息</param>
/// <param name="locationUpdated">位置是否已更新</param>
/// <returns>成功结果实例</returns>
public static VisualizationProcessResult CreateSuccess(string message = "", bool locationUpdated = false)
{
return new VisualizationProcessResult { Success = true, Message = message, LocationUpdated = locationUpdated };
}
/// <summary>
/// 创建失败结果
/// </summary>
/// <param name="message">失败原因</param>
/// <returns>失败结果实例</returns>
public static VisualizationProcessResult CreateFailure(string message)
{
return new VisualizationProcessResult { Success = false, Message = message };
}
}
/// <summary>
/// 可视化数据处理器接口 - 负责将解析后的可视化数据写入缓存/推送前端等后续处理
/// 各厂家实现此接口以处理厂家特有的可视化属性
/// @author zzy
/// </summary>
public interface IVisualizationDataProcessor
{
/// <summary>
/// 处理解析后的可视化数据
/// </summary>
/// <param name="manufacturer">机器人制造商</param>
/// <param name="serialNumber">机器人序列号</param>
/// <param name="visualization">解析后的可视化数据(可能是基类或厂家子类)</param>
/// <returns>处理结果</returns>
Task<VisualizationProcessResult> ProcessAsync(
string manufacturer, string serialNumber, Visualization visualization);
}