-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathFbsMapper.cs
More file actions
45 lines (41 loc) · 1.64 KB
/
FbsMapper.cs
File metadata and controls
45 lines (41 loc) · 1.64 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
using OpenShock.Common.Models;
using OpenShock.Common.Redis.PubSub;
using OpenShock.Serialization.Gateway;
using OpenShock.Serialization.Types;
namespace OpenShock.LiveControlGateway.Mappers;
public static class FbsMapper
{
public static Serialization.Types.ShockerModelType ToFbsModelType(Common.Models.ShockerModelType type)
{
return type switch
{
Common.Models.ShockerModelType.CaiXianlin => Serialization.Types.ShockerModelType.CaiXianlin,
Common.Models.ShockerModelType.PetTrainer => Serialization.Types.ShockerModelType.Petrainer,
Common.Models.ShockerModelType.Petrainer998DR => Serialization.Types.ShockerModelType.Petrainer998DR,
Common.Models.ShockerModelType.WellturnT330 => Serialization.Types.ShockerModelType.WellturnT330,
_ => throw new NotImplementedException(),
};
}
public static ShockerCommandType ToFbsCommandType(ControlType type)
{
return type switch
{
ControlType.Stop => ShockerCommandType.Stop,
ControlType.Shock => ShockerCommandType.Shock,
ControlType.Vibrate => ShockerCommandType.Vibrate,
ControlType.Sound => ShockerCommandType.Sound,
_ => throw new NotImplementedException(),
};
}
public static ShockerCommand ToFbsShockerCommand(ShockerControlCommand control)
{
return new ShockerCommand
{
Model = ToFbsModelType(control.Model),
Id = control.RfId,
Type = ToFbsCommandType(control.Type),
Intensity = control.Intensity,
Duration = control.Duration
};
}
}