Skip to content

Commit 0e14a02

Browse files
committed
Merge base ARES with updated datamodel to 16.0
2 parents 2ddd462 + 34f8f24 commit 0e14a02

File tree

65 files changed

+3221
-125
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+3221
-125
lines changed

Ares.Core.Grpc/Ares.Core.Grpc.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@
1111

1212
<ItemGroup>
1313
<PackageReference Include="DynamicData" Version="9.4.1" />
14-
<PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
15-
<PackageReference Include="Grpc.HealthCheck" Version="2.71.0" />
14+
<PackageReference Include="Grpc.AspNetCore" Version="2.76.0" />
15+
<PackageReference Include="Grpc.HealthCheck" Version="2.76.0" />
1616
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
17-
<PackageReference Include="System.IO.Ports" Version="10.0.0" />
17+
<PackageReference Include="System.IO.Ports" Version="10.0.1" />
1818
<PackageReference Include="System.Reactive" Version="6.1.0" />
1919
</ItemGroup>
2020

2121
<ItemGroup>
2222
<ProjectReference Include="..\Ares.Core\Ares.Core.csproj" />
23+
<ProjectReference Include="..\AresScript\AresScript.csproj" />
2324
</ItemGroup>
2425
<ItemGroup>
2526
<Compile Update="Properties\Resources.Designer.cs">
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
using System.Threading.Tasks;
2+
using Ares.Services;
3+
using AresScript;
4+
using Grpc.Core;
5+
using System;
6+
using System.Threading.Channels;
7+
using Microsoft.Extensions.Logging;
8+
9+
namespace Ares.Core.Grpc.Services;
10+
11+
public class AresScriptingService : Ares.Services.AresScriptingService.AresScriptingServiceBase
12+
{
13+
private readonly ILogger<AresScriptingService> _logger;
14+
public AresScriptingService(ILogger<AresScriptingService> logger)
15+
{
16+
_logger = logger;
17+
}
18+
public override async Task ExecuteScript(ScriptExecutionRequest request, IServerStreamWriter<ScriptExecutionOutput> responseStream, ServerCallContext context)
19+
{
20+
var channel = Channel.CreateBounded<string>(new BoundedChannelOptions(100));
21+
var runner = new ScriptRunner();
22+
runner.ScriptOutput.Subscribe(output =>
23+
{
24+
if (!channel.Writer.TryWrite(output))
25+
{
26+
_logger.LogWarning("Dropped script output because channel is full. {Output}", output);
27+
}
28+
});
29+
async Task ReadOutputAsync()
30+
{
31+
try
32+
{
33+
await foreach (var val in channel.Reader.ReadAllAsync(context.CancellationToken))
34+
{
35+
await responseStream.WriteAsync(new ScriptExecutionOutput { Output = val });
36+
}
37+
}
38+
catch (OperationCanceledException) when (context.CancellationToken.IsCancellationRequested)
39+
{
40+
_logger.LogInformation("Grpc stream cancelled while sending script output.");
41+
}
42+
catch (RpcException e)
43+
{
44+
_logger.LogError("RpcException while trying to write to the grpc stream: {Exception}", e);
45+
}
46+
catch(Exception e)
47+
{
48+
_logger.LogError($"Exception while reading script output. {e}");
49+
}
50+
}
51+
var readTask = ReadOutputAsync();
52+
53+
try
54+
{
55+
await runner.RunScriptAsync(request.Script, context.CancellationToken);
56+
channel.Writer.TryComplete();
57+
}
58+
catch (Exception e)
59+
{
60+
channel.Writer.TryComplete(e);
61+
_logger.LogError("Script runner failed: {Exception}", e);
62+
throw;
63+
}
64+
await readTask;
65+
}
66+
}

Ares.Core.Tests/Ares.Core.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
<PrivateAssets>all</PrivateAssets>
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
</PackageReference>
16-
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.0" />
16+
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.1" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
1818
<PackageReference Include="Moq" Version="4.20.72" />
1919
<PackageReference Include="NUnit" Version="4.4.0" />
20-
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
20+
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />
2121
<PackageReference Include="NUnit.Analyzers" Version="4.11.2">
2222
<PrivateAssets>all</PrivateAssets>
2323
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

Ares.Core.Tests/Data/Device/TestDeviceInterpreter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Ares.Datamodel;
22
using Ares.Datamodel.Extensions;
3+
using Ares.Datamodel.Factories;
34
using Ares.Datamodel.Templates;
45
using Ares.Device;
56
using Ares.Test;
@@ -58,7 +59,7 @@ private CommandMetadata GetTestMetadata(int idx)
5859
OutputMetadata = new OutputMetadata
5960
{
6061
UniqueId = Guid.NewGuid().ToString(),
61-
DataSchema = AresSchemaHelper.CreateSchema("TestOutput", AresDataType.Number),
62+
DataSchema = AresSchemaBuilder.Create("TestOutput", AresDataType.Number).Build(),
6263
Description = "A test response for the test command",
6364
Index = idx
6465
}

Ares.Core.Tests/Data/TestCampaignProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Ares.Core.Tests.Data.Device;
33
using Ares.Datamodel;
44
using Ares.Datamodel.Extensions;
5+
using Ares.Datamodel.Factories;
56
using Ares.Datamodel.Templates;
67
using Ares.Test;
78

@@ -126,7 +127,7 @@ public static CommandMetadata GetCommandMetadata(string cmdName, string deviceId
126127
public static OutputMetadata GetOutputMetadata(string typeName, int idx = 0)
127128
=> new()
128129
{
129-
DataSchema = AresSchemaHelper.CreateSchema("testCampaignProvider", AresDataType.Number),
130+
DataSchema = AresSchemaBuilder.Create("testCampaignProvider", AresDataType.Number).Build(),
130131
Index = idx,
131132
UniqueId = Guid.NewGuid().ToString()
132133
};

Ares.Core/Ares.Core.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818

1919

2020
<ItemGroup>
21-
<PackageReference Include="ARES.Datamodel" Version="0.15.3-beta.1" />
21+
<PackageReference Include="ARES.Datamodel" Version="0.16.0" />
2222
<PackageReference Include="CsvHelper" Version="33.1.0" />
2323
<PackageReference Include="DynamicData" Version="9.4.1" />
24-
<PackageReference Include="Grpc.Net.Client" Version="2.71.0" />
25-
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.0" />
26-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.0" />
27-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
24+
<PackageReference Include="Grpc.Net.Client" Version="2.76.0" />
25+
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.1" />
26+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.1" />
27+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.1" />
2828
<PackageReference Include="Protobuf.System.Text.Json" Version="1.4.1" />
2929
<PackageReference Include="System.ServiceModel.Primitives" Version="10.0.652802" />
3030
<PackageReference Include="UnitsNet" Version="5.75.0" />

Ares.Core/CoreDevice/AresCoreDeviceCommandInterpreter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Ares.Datamodel;
22
using Ares.Datamodel.Extensions;
3+
using Ares.Datamodel.Factories;
34
using Ares.Datamodel.Templates;
45
using Ares.Device;
56
using UnitsNet.Units;
@@ -27,7 +28,7 @@ protected override CommandMetadata[] CommandsToMetadatas()
2728
Name = AresCoreDeviceCommandParameter.Duration.ToString(),
2829
Index = 0,
2930
Unit = $"{DurationUnit.Millisecond}s",
30-
Schema = AresSchemaHelper.CreateSchemaEntry(AresDataType.Number, false)
31+
Schema = AresSchemaBuilder.Entry(AresDataType.Number).Build()
3132
}
3233
}
3334
},

Ares.Core/Device/Helpers/AresValueExtensions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public static string GetValueAsString(this AresValue value)
1414
AresValue.KindOneofCase.StringArrayValue => "[" + string.Join(", ", value.StringArrayValue.Strings) + "]",
1515
AresValue.KindOneofCase.NumberArrayValue => "[" + string.Join(", ", value.NumberArrayValue.Numbers) + "]",
1616
AresValue.KindOneofCase.BytesValue => Convert.ToBase64String(value.BytesValue.ToByteArray()),
17-
AresValue.KindOneofCase.BoolArrayValue => "[" + string.Join(", ", value.BoolArrayValue.Bools) + "]",
1817
_ => string.Empty,
1918
};
2019
}

Ares.Core/Planning/ManualPlanner.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ public void UpdateSettings(AresStruct settings)
162162
public Task<PlannerServiceCapabilities> GetCapabilities(CancellationToken cancellationToken = default)
163163
{
164164
var response = new PlannerServiceCapabilities() { ServiceName = "Manual Planner", SettingsSchema = new AresDataSchema(), TimeoutSeconds = long.MaxValue };
165+
response.AcceptedTypes.Add(AresDataType.Number);
166+
response.AcceptedTypes.Add(AresDataType.String);
165167
response.AvailablePlanners.AddRange(AvailablePlanners);
166168
return Task.FromResult(response);
167169
}

Ares.Device.Serial.Tests/Ares.Device.Serial.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
1313
<PackageReference Include="Moq" Version="4.20.72" />
1414
<PackageReference Include="NUnit" Version="4.4.0" />
15-
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
15+
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />
1616
<PackageReference Include="NUnit.Analyzers" Version="4.11.2">
1717
<PrivateAssets>all</PrivateAssets>
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)