Skip to content

Commit d0337f6

Browse files
committed
add named pdu
1 parent 20d0391 commit d0337f6

File tree

8 files changed

+105
-9
lines changed

8 files changed

+105
-9
lines changed

Runtime/pdu/core/NamedPdu.cs

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using hakoniwa.pdu.interfaces;
3+
4+
public class NamedPdu: INamedPdu
5+
{
6+
private string robotName;
7+
private IPdu pdu;
8+
public NamedPdu(string robot_name, IPdu _pdu)
9+
{
10+
this.robotName = robot_name;
11+
this.pdu = _pdu;
12+
}
13+
public string RobtName => robotName;
14+
public IPdu Pdu => pdu;
15+
public string Name => pdu.Name;
16+
public string TypeName => pdu.TypeName;
17+
public string PackageName => pdu.PackageName;
18+
19+
public T GetData<T>(string field_name)
20+
{
21+
return pdu.GetData<T>(field_name);
22+
}
23+
24+
public T[] GetDataArray<T>(string field_name)
25+
{
26+
return pdu.GetDataArray<T>(field_name);
27+
}
28+
29+
public void SetData<T>(string field_name, T value)
30+
{
31+
pdu.SetData<T>(field_name, value);
32+
}
33+
34+
public void SetData<T>(string field_name, T[] value)
35+
{
36+
pdu.SetData<T>(field_name, value);
37+
}
38+
39+
public void SetData<T>(string field_name, int off, T value)
40+
{
41+
pdu.SetData<T>(field_name, value);
42+
}
43+
}

Runtime/pdu/core/NamedPdu.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Runtime/pdu/core/PduManager.cs

+16
Original file line numberDiff line numberDiff line change
@@ -194,5 +194,21 @@ private void GetPackageTypeName(string robotName, string pduName, out string pac
194194
packageName = parts[0];
195195
typeName = parts[1];
196196
}
197+
198+
public INamedPdu CreateNamedPdu(string robotName, string pduName)
199+
{
200+
var pdu = CreatePdu(robotName, pduName);
201+
return new NamedPdu(robotName, pdu);
202+
}
203+
204+
public string WriteNamedPdu(INamedPdu npdu)
205+
{
206+
return WritePdu(npdu.RobtName, npdu.Pdu);
207+
}
208+
209+
public Task<bool> FlushNamedPdu(INamedPdu npdu)
210+
{
211+
return FlushPdu(npdu.RobtName, npdu.Pdu.Name);
212+
}
197213
}
198214
}

Runtime/pdu/interfaces/INamedpdu.cs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace hakoniwa.pdu.interfaces
2+
{
3+
public interface INamedPdu: IPdu
4+
{
5+
string RobtName { get; }
6+
IPdu Pdu { get; }
7+
}
8+
}

Runtime/pdu/interfaces/INamedpdu.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Runtime/pdu/interfaces/IPduManager.cs

+6
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@ public interface IPduManager
1414
string WritePdu(string robotName, IPdu pdu);
1515
Task<bool> FlushPdu(string key);
1616
Task<bool> FlushPdu(string robotName, string pduName);
17+
1718
IPdu ReadPdu(string robotName, string pduName);
1819
int GetChannelId(string robotName, string pduName);
1920
int GetPduSize(string robotName, string pduName);
21+
22+
INamedPdu CreateNamedPdu(string robotName, string pduName);
23+
string WriteNamedPdu(INamedPdu npdu);
24+
Task<bool> FlushNamedPdu(INamedPdu npdu);
25+
2026
}
2127
}

Tests/tests/hakoniwa.pdu.test/UnitTest.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ public void Ev3PduSensor_Test()
194194
/*
195195
* Create Test.
196196
*/
197-
IPdu pdu = mgr.CreatePdu(robotName, pduName);
198-
Assert.NotNull(pdu);
197+
INamedPdu npdu = mgr.CreateNamedPdu(robotName, pduName);
198+
Assert.NotNull(npdu);
199199

200-
Ev3PduSensor sensor = new Ev3PduSensor(pdu);
200+
Ev3PduSensor sensor = new Ev3PduSensor(npdu.Pdu);
201201

202202
Assert.Equal(2, sensor.color_sensors.Length);
203203
Assert.Equal(2, sensor.touch_sensors.Length);
@@ -220,7 +220,7 @@ public void Ev3PduSensor_Test()
220220
Assert.Equal(2u, sensor.motor_angle[1]);
221221
Assert.Equal(3u, sensor.motor_angle[2]);
222222

223-
mgr.WritePdu(robotName, pdu);
223+
mgr.WriteNamedPdu(npdu);
224224

225225
/*
226226
* Read Test.

Tests/tests/hakoniwa.uc.test/UnitTest.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ public async Task Test_Twist()
9999
/*
100100
* Create Test.
101101
*/
102-
IPdu pdu = mgr.CreatePdu(robotName, pduName);
103-
Assert.NotNull(pdu);
102+
INamedPdu npdu = mgr.CreateNamedPdu(robotName, pduName);
103+
Assert.NotNull(npdu);
104104

105-
Twist twist = new Twist(pdu);
105+
Twist twist = new Twist(npdu.Pdu);
106106
//double x_val = pdu.GetData<IPdu>("linear").GetData<double>("x");
107107
double x_val = twist.linear.x;
108108
Assert.Equal(0, x_val);
@@ -118,10 +118,11 @@ public async Task Test_Twist()
118118
//pdu.GetData<IPdu>("angular").SetData<double>("z", -1.0);
119119
twist.linear.x = 1.0;
120120
twist.angular.z = -1.0;
121-
var key = mgr.WritePdu(robotName, pdu);
121+
var key = mgr.WriteNamedPdu(npdu);
122122

123123
//await mgr.FlushPdu(robotName, pduName);
124-
await mgr.FlushPdu(key);
124+
//await mgr.FlushPdu(key);
125+
await mgr.FlushNamedPdu(npdu);
125126

126127
IPdu tmp = mgr.ReadPdu(robotName, pduName);
127128
Assert.Null(tmp);

0 commit comments

Comments
 (0)